No longer able to use PVCS plugin after upgrade.  Stack trace below.  Job fails almost imeadiatly.

       

      Build #101 Console [Jenkins]
      21:41:11 FATAL: null*21:41:11* java.lang.NullPointerException*21:41:11* at hudson.plugins.pvcs_scm.PvcsScm.checkout(PvcsScm.java:235)21:41:11 at hudson.model.AbstractProject.checkout(AbstractProject.java:1203)21:41:11 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)21:41:11 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)21:41:11 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)21:41:11 at hudson.model.Run.execute(Run.java:1727)21:41:11 at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)21:41:11 at hudson.model.ResourceController.execute(ResourceController.java:97)21:41:11 at hudson.model.Executor.run(Executor.java:429)

          [JENKINS-49024] Version 2.102 JEP-200 breaks PVCS plugin 1.1

          Oleg Nenashev added a comment -

          It is a defect in the plugin.

          Oleg Nenashev added a comment - It is a defect in the plugin. https://github.com/jenkinsci/pvcs_scm-plugin/blob/master/src/main/java/hudson/plugins/pvcs_scm/PvcsScm.java#L235 - is a logger logger is persisted on the disk: https://github.com/jenkinsci/pvcs_scm-plugin/blob/master/src/main/java/hudson/plugins/pvcs_scm/PvcsScm.java#L50 The logger's type is org.apache.commons.logging . I see no sane reason to store it on the disk

          Oleg Nenashev added a comment -
          • The plugin is even not listed on plugins.jenkins.io
          • last release was in 2010
          • maintainer is no longer active in the Jenkins project
          • Repository contains some tests, so we could verify it

          Oleg Nenashev added a comment - The plugin is even not listed on plugins.jenkins.io last release was in 2010 maintainer is no longer active in the Jenkins project Repository contains some tests, so we could verify it

          Jesse Glick added a comment -

          Filed a pull request, but this plugin is so old I cannot even build it from sources any more. I would suggest you just uninstall it and move on, unless someone can be found to adopt it.

          Jesse Glick added a comment - Filed a pull request, but this plugin is so old I cannot even build it from sources any more. I would suggest you just uninstall it and move on, unless someone can be found to adopt it.

          JMLFDC OPERATIONS added a comment - - edited

          jglick,

          Unfortunately we are still using PVCS for some source code and I believe this is the only plugin that will allow Jenkins to work with PVCS.  We are not able to migrate all projects from this source control at this time.

          JMLFDC OPERATIONS added a comment - - edited jglick , Unfortunately we are still using PVCS for some source code and I believe this is the only plugin that will allow Jenkins to work with PVCS.  We are not able to migrate all projects from this source control at this time.

          Jesse Glick added a comment -

          this is the only plugin that will allow Jenkins to work with PVCS

          With full integration, probably so. In general you can configure projects to check out sources from any SCM you like as a plain build step; you then lose certain integration features such as changelogs, polling / webhooks, etc. Whether or not that is tolerable depends on the setup.

          Jesse Glick added a comment - this is the only plugin that will allow Jenkins to work with PVCS With full integration, probably so. In general you can configure projects to check out sources from any SCM you like as a plain build step; you then lose certain integration features such as changelogs, polling / webhooks, etc. Whether or not that is tolerable depends on the setup.

          Oleg Nenashev added a comment -

          jmlfdc_opsif you are still using this plugin, my proposal would to consider taking its ownership. I can help with reviews of initial facelifting PRs, but a maintainer should be really able to run the stuff against a real server. WDYT?

          Oleg Nenashev added a comment - jmlfdc_ops if you are still using this plugin, my proposal would to consider taking its ownership. I can help with reviews of initial facelifting PRs, but a maintainer should be really able to run the stuff against a real server. WDYT?

          oleg_nenashev,  We have reached out to Serena, who is the vendor of PVCS to get some feedback from them.  We have asked if they can help with this plugin.  Not sure if they can or not, but I would like to hear from them first.  Thank you for your  help.  I will follow up when we hear back.  We have a service contract with them, so it should not be too long of a wait.

          JMLFDC OPERATIONS added a comment - oleg_nenashev ,  We have reached out to Serena, who is the vendor of PVCS to get some feedback from them.  We have asked if they can help with this plugin.  Not sure if they can or not, but I would like to hear from them first.  Thank you for your  help.  I will follow up when we hear back.  We have a service contract with them, so it should not be too long of a wait.

          Jesse Glick added a comment -

          I updated the PR to at least make the plugin buildable again, and attached a resulting snapshot build. Completely untested, YMMV.

          Jesse Glick added a comment - I updated the PR to at least make the plugin buildable again, and attached a resulting snapshot build. Completely untested, YMMV.

          Oleg Nenashev added a comment -

          jmlfdc_ops if you confirm that the version from jglick works on your instance, we could release this plugin without taking ownership.

          Oleg Nenashev added a comment - jmlfdc_ops if you confirm that the version from jglick works on your instance, we could release this plugin without taking ownership.

          oleg_nenashev,

          We have just grabbed the version that jglick crated and it is working.  Feel free to release it.  Thank you for your  assistance and quick response.  Very much appreciated.  

          JMLFDC OPERATIONS added a comment - oleg_nenashev , We have just grabbed the version that jglick crated and it is working.  Feel free to release it.  Thank you for your  assistance and quick response.  Very much appreciated.  

          THis gets much further now, but we are getting this error several hours into the job:

           

          java.io.IOException: java.lang.RuntimeException: Failed to serialize hudson.model.AbstractBuild#scm for class hudson.maven.MavenModuleSetBuild

                         at hudson.XmlFile.write(XmlFile.java:201)

                         at hudson.model.Run.save(Run.java:1923)

                         at hudson.maven.MavenModuleSetBuild.setMavenVersionUsed(MavenModuleSetBuild.java:445)

                         at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:647)

                         at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)

                         at hudson.model.Run.execute(Run.java:1727)

                         at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)

                         at hudson.model.ResourceController.execute(ResourceController.java:97)

                         at hudson.model.Executor.run(Executor.java:429)

          Caused by: java.lang.RuntimeException: Failed to serialize hudson.model.AbstractBuild#scm for class hudson.maven.MavenModuleSetBuild

                         at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:256)

                         at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:224)

                         at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)

                         at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209)

                         at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150)

                         at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)

                         at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)

                         at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)

                         at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)

                         at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)

                         at com.thoughtworks.xstream.XStream.marshal(XStream.java:1026)

                         at com.thoughtworks.xstream.XStream.marshal(XStream.java:1015)

                         at com.thoughtworks.xstream.XStream.toXML(XStream.java:988)

                         at hudson.XmlFile.write(XmlFile.java:194)

                         ... 8 more

          Caused by: java.lang.RuntimeException: Failed to serialize hudson.plugins.pvcs_scm.PvcsChangeLogParser#logger for class hudson.plugins.pvcs_scm.PvcsChangeLogParser

                         at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:256)

                         at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:224)

                         at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)

                         at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209)

                         at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150)

                         at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)

                         at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)

                         at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)

                         at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:265)

                         at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:252)

                         ... 21 more

          Caused by: java.lang.UnsupportedOperationException: Refusing to marshal org.apache.commons.logging.impl.SLF4JLocationAwareLog for security reasons; see https://jenkins.io/redirect/class-filter/

                         at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:530)

                         at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)

                         at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)

                         at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)

                         at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:265)

                         at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:252)

          JMLFDC OPERATIONS added a comment - THis gets much further now, but we are getting this error several hours into the job:   java.io.IOException: java.lang.RuntimeException: Failed to serialize hudson.model.AbstractBuild#scm for class hudson.maven.MavenModuleSetBuild                at hudson.XmlFile.write(XmlFile.java:201)                at hudson.model.Run.save(Run.java:1923)                at hudson.maven.MavenModuleSetBuild.setMavenVersionUsed(MavenModuleSetBuild.java:445)                at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:647)                at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)                at hudson.model.Run.execute(Run.java:1727)                at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)                at hudson.model.ResourceController.execute(ResourceController.java:97)                at hudson.model.Executor.run(Executor.java:429) Caused by: java.lang.RuntimeException: Failed to serialize hudson.model.AbstractBuild#scm for class hudson.maven.MavenModuleSetBuild                at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:256)                at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:224)                at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)                at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209)                at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150)                at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)                at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)                at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)                at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)                at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)                at com.thoughtworks.xstream.XStream.marshal(XStream.java:1026)                at com.thoughtworks.xstream.XStream.marshal(XStream.java:1015)                at com.thoughtworks.xstream.XStream.toXML(XStream.java:988)                at hudson.XmlFile.write(XmlFile.java:194)                ... 8 more Caused by: java.lang.RuntimeException: Failed to serialize hudson.plugins.pvcs_scm.PvcsChangeLogParser#logger for class hudson.plugins.pvcs_scm.PvcsChangeLogParser                at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:256)                at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:224)                at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)                at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209)                at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150)                at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)                at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)                at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)                at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:265)                at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:252)                ... 21 more Caused by: java.lang.UnsupportedOperationException: Refusing to marshal org.apache.commons.logging.impl.SLF4JLocationAwareLog for security reasons; see  https://jenkins.io/redirect/class-filter/                at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:530)                at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)                at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)                at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)                at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:265)                at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:252)

          JMLFDC OPERATIONS added a comment - - edited

          oleg_nenashev

           

          This is also cross referenced in JENKINS-47736, and I have added that label.  We have made the workaround change on the server and it is moving forward (https://jenkins.io/blog/2018/01/13/jep-200/)

          JMLFDC OPERATIONS added a comment - - edited oleg_nenashev   This is also cross referenced in  JENKINS-47736 , and I have added that label.  We have made the workaround change on the server and it is moving forward ( https://jenkins.io/blog/2018/01/13/jep-200/ )

          Jesse Glick added a comment -

          jmlfdc_ops I uploaded a new build that ought to fix that issue; please try it.

          Jesse Glick added a comment - jmlfdc_ops I uploaded a new build that ought to fix that issue; please try it.

          jglick,

               We have installed your updated version and are re-running the job now.  It takes a couple hours to complete, but I will provide the feedback.  We have also removed the work around.  Thanks for your quick response.

          JMLFDC OPERATIONS added a comment - jglick ,      We have installed your updated version and are re-running the job now.  It takes a couple hours to complete, but I will provide the feedback.  We have also removed the work around.  Thanks for your quick response.

          jglick, job as completed successfully with the changes.  This plugin looks good now.  Thank you for your assistance.  I would suggest that you merge the branch and I will re-install the plugin with the normal plugin manager upgrade.

          JMLFDC OPERATIONS added a comment - jglick , job as completed successfully with the changes.  This plugin looks good now.  Thank you for your assistance.  I would suggest that you merge the branch and I will re-install the plugin with the normal plugin manager upgrade.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          src/main/java/hudson/plugins/pvcs_scm/PvcsScm.java
          http://jenkins-ci.org/commit/pvcs_scm-plugin/17fde895278ac9151a5637590def876a78f7868e
          Log:
          [JEP-200] JENKINS-49024 Possible fix for serialization error.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/hudson/plugins/pvcs_scm/PvcsScm.java http://jenkins-ci.org/commit/pvcs_scm-plugin/17fde895278ac9151a5637590def876a78f7868e Log: [JEP-200] JENKINS-49024 Possible fix for serialization error.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          .gitignore
          Jenkinsfile
          pom.xml
          src/main/java/hudson/plugins/pvcs_scm/PvcsChangeLogParser.java
          src/main/java/hudson/plugins/pvcs_scm/PvcsLogReader.java
          src/main/java/hudson/plugins/pvcs_scm/PvcsScm.java
          src/main/resources/hudson/plugins/pvcs_scm/PvcsChangeLogSet/digest.jelly
          src/main/resources/hudson/plugins/pvcs_scm/PvcsChangeLogSet/index.jelly
          src/main/resources/hudson/plugins/pvcs_scm/PvcsScm/config.jelly
          src/main/resources/hudson/plugins/pvcs_scm/PvcsScm/global.jelly
          src/main/resources/index.jelly
          src/test/java/hudson/plugins/pvcs_scm/TestPvcsChangeLogParser.java
          http://jenkins-ci.org/commit/pvcs_scm-plugin/5ebf9683c48e9d2f61a864348c85d9f45d3c7724
          Log:
          Merge pull request #2 from jglick/JENKINS-49024

          [JEP-200] JENKINS-49024 Possible fix for serialization error

          Compare: https://github.com/jenkinsci/pvcs_scm-plugin/compare/305b397c473c...5ebf9683c48e

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: .gitignore Jenkinsfile pom.xml src/main/java/hudson/plugins/pvcs_scm/PvcsChangeLogParser.java src/main/java/hudson/plugins/pvcs_scm/PvcsLogReader.java src/main/java/hudson/plugins/pvcs_scm/PvcsScm.java src/main/resources/hudson/plugins/pvcs_scm/PvcsChangeLogSet/digest.jelly src/main/resources/hudson/plugins/pvcs_scm/PvcsChangeLogSet/index.jelly src/main/resources/hudson/plugins/pvcs_scm/PvcsScm/config.jelly src/main/resources/hudson/plugins/pvcs_scm/PvcsScm/global.jelly src/main/resources/index.jelly src/test/java/hudson/plugins/pvcs_scm/TestPvcsChangeLogParser.java http://jenkins-ci.org/commit/pvcs_scm-plugin/5ebf9683c48e9d2f61a864348c85d9f45d3c7724 Log: Merge pull request #2 from jglick/ JENKINS-49024 [JEP-200] JENKINS-49024 Possible fix for serialization error Compare: https://github.com/jenkinsci/pvcs_scm-plugin/compare/305b397c473c...5ebf9683c48e

          Jesse Glick added a comment -

          Released as 1.2 and should be on the update center today.

          Jesse Glick added a comment - Released as 1.2 and should be on the update center today.

            jglick Jesse Glick
            jmlfdc_ops JMLFDC OPERATIONS
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: