Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-20192

CVS Plugin crashes in matrix job on slave machines

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • cvs-plugin
    • Jenkins CVS Plug-in 2.10; Jenkins 1.536; OSX 10.7.5

      cvs rlog crashes on all slaves of a matrix job (except when the slave is the same as the master):

      cvs rlog -S -d22 Oct 2013 10:41:01 -0600<22 Oct 2013 11:04:09 -0600 MyProject
      hudson.util.IOException2: remote file operation failed: C:\Users\admin\.jenkins\workspace\Project\label\windows at hudson.remoting.Channel@591e356b:WinBuilder1
      at hudson.FilePath.act(FilePath.java:908)
      at hudson.FilePath.act(FilePath.java:885)
      at hudson.scm.AbstractCvs.getRemoteLogForModule(AbstractCvs.java:678)
      at hudson.scm.AbstractCvs.calculateChangeLog(AbstractCvs.java:774)
      at hudson.scm.AbstractCvs.postCheckout(AbstractCvs.java:793)
      at hudson.scm.CVSSCM.checkout(CVSSCM.java:351)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
      at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652)
      at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:557)
      at hudson.model.Run.execute(Run.java:1665)
      at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:230)
      Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@573b8157
      at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
      at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
      at hudson.remoting.Channel.call(Channel.java:713)
      at hudson.FilePath.act(FilePath.java:901)
      ... 13 more
      Caused by: java.io.NotSerializableException: java.io.PrintStream
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
      at hudson.remoting.UserRequest._serialize(UserRequest.java:155)
      at hudson.remoting.UserRequest.serialize(UserRequest.java:164)

          [JENKINS-20192] CVS Plugin crashes in matrix job on slave machines

          Chris Shearer Cooper created issue -
          Michael Clarke made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Michael Clarke made changes -
          Assignee New: Michael Clarke [ mc1arke ]

          Simon Strauch added a comment - - edited

          I have the same stacktrace on all normal job (not a matrix job) that run on slave nodes. CVS Plug-in Version is 2.10. Jenkins Version is 1.534.

          Simon Strauch added a comment - - edited I have the same stacktrace on all normal job (not a matrix job) that run on slave nodes. CVS Plug-in Version is 2.10. Jenkins Version is 1.534.

          Simon Strauch added a comment -

          Downgrade the Jenkins CVS Plug-in to 2.9 is a workaround.

          Simon Strauch added a comment - Downgrade the Jenkins CVS Plug-in to 2.9 is a workaround.

          Code changed in jenkins
          User: Michael Clarke
          Path:
          src/main/java/hudson/scm/AbstractCvs.java
          src/main/java/hudson/scm/CVSChangeLogSet.java
          src/main/java/hudson/scm/CvsChangeSet.java
          http://jenkins-ci.org/commit/cvs-plugin/18c7ccc7f56856139eaa4c2d66e492b5fe7eb862
          Log:
          [FIXED JENKINS-20192] Parse CVS log on slave and return parsed output

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Michael Clarke Path: src/main/java/hudson/scm/AbstractCvs.java src/main/java/hudson/scm/CVSChangeLogSet.java src/main/java/hudson/scm/CvsChangeSet.java http://jenkins-ci.org/commit/cvs-plugin/18c7ccc7f56856139eaa4c2d66e492b5fe7eb862 Log: [FIXED JENKINS-20192] Parse CVS log on slave and return parsed output
          SCM/JIRA link daemon made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: In Progress [ 3 ] New: Resolved [ 5 ]

          Would one of you be good enough to check that the snapshot build (https://jenkins.ci.cloudbees.com/job/plugins/job/cvs-plugin/200/org.jenkins-ci.plugins$cvs/artifact/org.jenkins-ci.plugins/cvs/2.11-SNAPSHOT/cvs-2.11-SNAPSHOT.hpi) fixes your issue? If so then I'll perform a release as version 2.10.1 of the plugin.

          Thanks

          Michael Clarke added a comment - Would one of you be good enough to check that the snapshot build ( https://jenkins.ci.cloudbees.com/job/plugins/job/cvs-plugin/200/org.jenkins-ci.plugins$cvs/artifact/org.jenkins-ci.plugins/cvs/2.11-SNAPSHOT/cvs-2.11-SNAPSHOT.hpi ) fixes your issue? If so then I'll perform a release as version 2.10.1 of the plugin. Thanks

          Simon Strauch added a comment - - edited

          I take the Test-Task for the Snapshot on my TODO list. I must wait until our Jenkins is idle and can be restarted.

          Is it correct to follow the steps of Deploying a custom build of a core plugin this way?

          1. /etc/init.d/jenkins stop
          2. cd $JENKINS_HOME/plugins
          3. mv cvs.jpi cvs.bak
          4. rm -rf cvs
          5. wget 'https://jenkins.ci.cloudbees.com/job/plugins/job/cvs-plugin/202/org.jenkins-ci.plugins$cvs/artifact/org.jenkins-ci.plugins/cvs/2.11-SNAPSHOT/cvs-2.11-SNAPSHOT.hpi'
          6. mv cvs-2.11-SNAPSHOT.hpi cvs.jpi
          7. test -f cvs.jpi.pinned && echo "cvs.jpi.pinned exists" || (echo "pinned" > cvs.jpi.pinned && echo "cvs.jpi.pinned touched")
          8. /etc/init.d/jenkins start

          After testing I would revert to the 2.09 version of the CVS Plug-in via Plugin-Manager and restart Jenkins.

          I didn't test a snapshot before. Will this steps work?

          EDIT:

          • touch pinned file
          • remove expaned cvs plugin directory
          • single quote URL (and fix a typo)
          • update snapshot to #202

          Simon Strauch added a comment - - edited I take the Test-Task for the Snapshot on my TODO list. I must wait until our Jenkins is idle and can be restarted. Is it correct to follow the steps of Deploying a custom build of a core plugin this way? /etc/init.d/jenkins stop cd $JENKINS_HOME/plugins mv cvs.jpi cvs.bak rm -rf cvs wget 'https://jenkins.ci.cloudbees.com/job/plugins/job/cvs-plugin/202/org.jenkins-ci.plugins$cvs/artifact/org.jenkins-ci.plugins/cvs/2.11-SNAPSHOT/cvs-2.11-SNAPSHOT.hpi' mv cvs-2.11-SNAPSHOT.hpi cvs.jpi test -f cvs.jpi.pinned && echo "cvs.jpi.pinned exists" || (echo "pinned" > cvs.jpi.pinned && echo "cvs.jpi.pinned touched") /etc/init.d/jenkins start After testing I would revert to the 2.09 version of the CVS Plug-in via Plugin-Manager and restart Jenkins. I didn't test a snapshot before. Will this steps work? EDIT: touch pinned file remove expaned cvs plugin directory single quote URL (and fix a typo) update snapshot to #202

          After step 5, if you don't already have a cvs.jpi.pinned file, then:
          5.a. echo 'pinned' > cvs.jpi.pinned

          Otherwise this looks good.

          Michael Clarke added a comment - After step 5, if you don't already have a cvs.jpi.pinned file, then: 5.a. echo 'pinned' > cvs.jpi.pinned Otherwise this looks good.

            mc1arke Michael Clarke
            cscooper Chris Shearer Cooper
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: