Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
Jenkins 1.446, Linux CentOS
Description
I've had a KillStuckPolling.groovy job running for about 6 months without problems, but on January 4th it stopped working with the below stack trace. This matches with the release of Jenkins 1.446, which is currently installed. I have tried to restart the server without any effect.
Killing all stuck SCM polls using ~/bin/KillStuckPolling.groovy log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter). log4j:WARN Please initialize the log4j system properly. java.io.IOException: Remote call on CLI channel from /[ip] failed at hudson.remoting.Channel.call(Channel.java:690) at hudson.cli.GroovyCommand.loadScript(GroovyCommand.java:106) at hudson.cli.GroovyCommand.run(GroovyCommand.java:93) at hudson.cli.CLICommand.main(CLICommand.java:205) at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:274) at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:255) at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:215) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:287) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ExceptionInInitializerError at java.io.ObjectStreamClass.hasStaticInitializer(Native Method) at java.io.ObjectStreamClass.computeDefaultSUID(Unknown Source) at java.io.ObjectStreamClass.access$100(Unknown Source) at java.io.ObjectStreamClass$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.io.ObjectStreamClass.getSerialVersionUID(Unknown Source) at java.io.ObjectStreamClass.initNonProxy(Unknown Source) at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) at java.io.ObjectInputStream.readClassDesc(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at hudson.remoting.UserRequest.deserialize(UserRequest.java:182) at hudson.remoting.UserRequest.perform(UserRequest.java:98) ... 8 more Caused by: java.lang.NullPointerException at hudson.cli.CLICommand.<clinit>(CLICommand.java:448) ... 26 more Build step 'Execute shell' marked build as failure
The groovy script is as follows:
KillStuckPolling.groovy
Thread.getAllStackTraces().keySet().each() { item -> println "Checking item" + item.getName(); if (item.getName().contains("SCM polling") && item.getName().contains("waiting for hudson.remoting")) { println " Interrupting thread " + item.getId(); item.interrupt() } }
And the bash script used to start it is as follows
KillStuckPolling.sh
#!/bin/bash -e echo "## Kills stuck polling jobs on Jenkins" if [ -z "$JENKINS_URL" ]; then echo "ERROR: This script must be run on Jenkins. It cannot be run manually" exit 1 fi echo "Getting latest Jenkins CLI from ${JENKINS_URL}" if [ -w jenkins-cli.jar ]; then rm jenkins-cli.jar fi wget ${JENKINS_URL}jnlpJars/jenkins-cli.jar echo "Killing all stuck SCM polls using ~/bin/KillStuckPolling.groovy" java -jar jenkins-cli.jar -s ${JENKINS_URL}/ groovy ~/bin/KillStuckPolling.groovy
Attachments
Issue Links
- is related to
-
JENKINS-5413 SCM polling getting hung
-
- Open
-
Integrated in
jenkins_main_trunk #1540
[FIXED JENKINS-12302] Refactor anonymout class for loading groovy script into separate class as static block (due to inheritance of outer class from CLICommand) initialization leads to NPE (namely in Jenkins.getInstance Jenkins.getInstance().getPluginManager()) (Revision 7bdc1790166198de93b2b7c58286d9554be967b4)
Result = SUCCESS
Vojtech Juranek : 7bdc1790166198de93b2b7c58286d9554be967b4
Files :