[ https://issues.jenkins-ci.org/browse/JENKINS-12302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=158778#comment-158778 ]
Franck Gilliers commented on JENKINS-12302: ------------------------------------------- This bug is still there in Jenkins ver. 1.450 > Remote call on CLI channel from [ip] failed > ------------------------------------------- > > Key: JENKINS-12302 > URL: https://issues.jenkins-ci.org/browse/JENKINS-12302 > Project: Jenkins > Issue Type: Bug > Components: cli, groovy > Affects Versions: current > Environment: Jenkins 1.446, Linux CentOS > Reporter: Markus Hjerto > Assignee: vjuranek > > 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. > {noformat} > 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 > {noformat} > The groovy script is as follows: > {code:title=KillStuckPolling.groovy|borderStyle=solid} > 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() > } > } > {code} > And the bash script used to start it is as follows > {code:title=KillStuckPolling.sh|borderStyle=solid|xml} > #!/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 > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira