[
https://issues.jenkins-ci.org/browse/JENKINS-12302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=161842#comment-161842
]
dogfood commented on JENKINS-12302:
-----------------------------------
Integrated in !http://ci.jenkins-ci.org/images/16x16/blue.png!
[jenkins_ui-changes_branch
#21|http://ci.jenkins-ci.org/job/jenkins_ui-changes_branch/21/]
[JENKINS-12302] (Revision 7110ddb7d2a2f141a6887ffe352526db91046867)
Result = SUCCESS
Kohsuke Kawaguchi :
[7110ddb7d2a2f141a6887ffe352526db91046867|https://github.com/jenkinsci/jenkins/commit/7110ddb7d2a2f141a6887ffe352526db91046867]
Files :
* core/src/main/java/hudson/cli/CLICommand.java
> 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