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

Recent Changes / changelog not shown correctly by P4 Plugin

      When using p4 plugin version 1.7.4, changes are shown correctly.

      In more recent versions of the plugin, "No changes" is always reported (both in the project view when selecting Recent Changes and in the build view).

      I double-checked the changelog.xml and it is not empty.

      Insofar I understand, it is the SCM plugin which parses the changelog.xml ?

      A slightly redacted version of the changelog.xml (strings 'anonymized' to either 'abc' or 'xyz'):

       

      <?xml version='1.0' encoding='UTF-8'?>
      <changelog>
              <entry>
                      <changenumber><changeInfo>4171234</changeInfo>
                      <clientId>abc_xyz</clientId>
                      <msg>abc-&gt;xyz [4170123]: abcxyz
      </msg>
                      <changeUser>abc</changeUser>
                      <changeTime>2018-01-08 16:17:48</changeTime>
                      <shelved>false</shelved>
                      <files>
                      <file endRevision="#42" action="EDIT" depot="%2F%2Fdepot%2Fabc%2Fabc%2Fabc%2Fabc%2Fxyz.xml" />
                      <file endRevision="#560" action="EDIT" depot="%2F%2Fdepot%2Fabc%2Fabc%2Fabc%2Fabc%2Fabc%2Fabc%2Fabc%2Fabc.dita" />
                      </files>
                      <jobs>
                      </jobs>
                      </changenumber>
              </entry>
      </changelog>
      

          [JENKINS-48845] Recent Changes / changelog not shown correctly by P4 Plugin

          Philip Arickx added a comment - - edited

          Found these issues (repeated many times) in jenkins.log, which almost certainly are about this case. The 'unknown command' seems to point to an issue with older server versions (we're running at 2012.1, an upgrade is apparently planned this year).

          My guess is that ConnectionHelper.getSwarm(ConnectionHelper.java:597) is not supported by 2012.1 and will always fail.

          --------- Issue 1 ----------

          INFO: getBuildChange:return:4173514
          Jan 08, 2018 12:04:50 PM hudson.model.AbstractBuild calcChangeSet
          WARNING: Failed to parse /home/jenkins/jobs/[...snip...]/builds/1/changelog.xml
          org.xml.sax.SAXException: Could not parse perforce changelog:
          com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.
          
                  at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:53)
                  at hudson.scm.ChangeLogParser.parse(ChangeLogParser.java:57)
                  at hudson.model.AbstractBuild.calcChangeSet(AbstractBuild.java:875)
                  at hudson.model.AbstractBuild.access$500(AbstractBuild.java:103)
                  at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:586)
                  at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
                  at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
                  at hudson.model.Run.execute(Run.java:1724)
                  at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
                  at hudson.model.ResourceController.execute(ResourceController.java:97)
                  at hudson.model.Executor.run(Executor.java:421)
          Caused by: com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.
          
                  at com.perforce.p4java.impl.mapbased.server.cmd.ResultMapParser.handleErrorStr(ResultMapParser.java:145)
                  at com.perforce.p4java.impl.mapbased.server.cmd.ResultListBuilder.buildNonNullObjectListFromCommandResultMaps(ResultListBuilder.java:36)
                  at com.perforce.p4java.impl.mapbased.server.cmd.PropertyDelegator.getProperty(PropertyDelegator.java:75)
                  at com.perforce.p4java.impl.mapbased.server.Server.getProperty(Server.java:2278)
                  at org.jenkinsci.plugins.p4.client.ConnectionHelper.getSwarm(ConnectionHelper.java:597)
                  at org.jenkinsci.plugins.p4.changes.P4ChangeParser$ChangeLogHandler.<init>(P4ChangeParser.java:73)
                  at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:48)
                  ... 10 more

           

          --------- Issue 2 ----------

          Jan 08, 2018 1:04:30 PM hudson.model.AbstractBuild calcChangeSet
          WARNING: Failed to parse /home/jenkins/jobs/[...snip...]/builds/1/changelog.xml
          org.xml.sax.SAXException: Could not parse perforce changelog:
          com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.
          
                  at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:53)
                  at hudson.scm.ChangeLogParser.parse(ChangeLogParser.java:57)
                  at hudson.model.AbstractBuild.calcChangeSet(AbstractBuild.java:875)
                  at hudson.model.AbstractBuild.getChangeSet(AbstractBuild.java:843)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                  at java.lang.reflect.Method.invoke(Method.java:498)
                  at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
                  at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
                  at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
                  at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
                  at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
                  at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
                  at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
                  at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
                  at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:69)
                  at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:122)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
                  at hudson.plugins.emailext.plugins.content.JellyScriptContent.convert(JellyScriptContent.java:91)
                  at hudson.plugins.emailext.plugins.content.JellyScriptContent.renderContent(JellyScriptContent.java:82)
                  at hudson.plugins.emailext.plugins.content.JellyScriptContent.evaluate(JellyScriptContent.java:54)
                  at hudson.plugins.emailext.plugins.content.AbstractEvalContent.evaluate(AbstractEvalContent.java:76)
                  at org.jenkinsci.plugins.tokenmacro.DataBoundTokenMacro.evaluate(DataBoundTokenMacro.java:202)
                  at org.jenkinsci.plugins.tokenmacro.Parser.processToken(Parser.java:306)
                  at org.jenkinsci.plugins.tokenmacro.Action$KiHW1UeqOdqAwZul.run(Unknown Source)
                  at org.parboiled.matchers.ActionMatcher.match(ActionMatcher.java:96)
                  at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
                  at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)
                  at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
                  at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
                  at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)
                  at org.parboiled.matchers.FirstOfMatcher.match(FirstOfMatcher.java:41)
                  at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
                  at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)
                  at org.parboiled.matchers.FirstOfMatcher.match(FirstOfMatcher.java:41)
                  at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
                  at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)
                  at org.parboiled.matchers.ZeroOrMoreMatcher.match(ZeroOrMoreMatcher.java:39)
                  at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
                  at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)
                  at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)
                  at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)
                  at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)
                  at org.parboiled.parserunners.BasicParseRunner.run(BasicParseRunner.java:72)
                  at org.parboiled.parserunners.ReportingParseRunner.runBasicMatch(ReportingParseRunner.java:86)
                  at org.parboiled.parserunners.ReportingParseRunner.run(ReportingParseRunner.java:66)
                  at org.parboiled.parserunners.AbstractParseRunner.run(AbstractParseRunner.java:81)
                  at org.parboiled.parserunners.AbstractParseRunner.run(AbstractParseRunner.java:76)
                  at org.jenkinsci.plugins.tokenmacro.Parser.process(Parser.java:68)
                  at org.jenkinsci.plugins.tokenmacro.TokenMacro.expand(TokenMacro.java:204)
                  at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:234)
                  at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:80)
                  at hudson.plugins.emailext.ExtendedEmailPublisher.addContent(ExtendedEmailPublisher.java:862)
                  at hudson.plugins.emailext.ExtendedEmailPublisher.createMail(ExtendedEmailPublisher.java:741)
                  at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:451)
                  at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:441)
                  at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:349)
                  at org.jenkinsci.plugins.emailext_template.ExtendedEmailTemplatePublisher.perform(ExtendedEmailTemplatePublisher.java:73)
                  at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
                  at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
                  at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
                  at hudson.model.Build$BuildExecution.post2(Build.java:186)
                  at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
                  at hudson.model.Run.execute(Run.java:1749)
                  at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
                  at hudson.model.ResourceController.execute(ResourceController.java:97)
                  at hudson.model.Executor.run(Executor.java:421)
          Caused by: com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.
          
                  at com.perforce.p4java.impl.mapbased.server.cmd.ResultMapParser.handleErrorStr(ResultMapParser.java:145)
                  at com.perforce.p4java.impl.mapbased.server.cmd.ResultListBuilder.buildNonNullObjectListFromCommandResultMaps(ResultListBuilder.java:36)
                  at com.perforce.p4java.impl.mapbased.server.cmd.PropertyDelegator.getProperty(PropertyDelegator.java:75)
                  at com.perforce.p4java.impl.mapbased.server.Server.getProperty(Server.java:2278)
                  at org.jenkinsci.plugins.p4.client.ConnectionHelper.getSwarm(ConnectionHelper.java:597)
                  at org.jenkinsci.plugins.p4.changes.P4ChangeParser$ChangeLogHandler.<init>(P4ChangeParser.java:73)
                  at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:48)
                  ... 69 more
          

           

           

           

          Philip Arickx added a comment - - edited Found these issues (repeated many times) in jenkins.log, which almost certainly are about this case. The 'unknown command' seems to point to an issue with older server versions (we're running at 2012.1, an upgrade is apparently planned this year). My guess is that ConnectionHelper.getSwarm(ConnectionHelper.java:597) is not supported by 2012.1 and will always fail. --------- Issue 1 ---------- INFO: getBuildChange: return :4173514 Jan 08, 2018 12:04:50 PM hudson.model.AbstractBuild calcChangeSet WARNING: Failed to parse /home/jenkins/jobs/[...snip...]/builds/1/changelog.xml org.xml.sax.SAXException: Could not parse perforce changelog: com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.         at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:53)         at hudson.scm.ChangeLogParser.parse(ChangeLogParser.java:57)         at hudson.model.AbstractBuild.calcChangeSet(AbstractBuild.java:875)         at hudson.model.AbstractBuild.access$500(AbstractBuild.java:103)         at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:586)         at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)         at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)         at hudson.model.Run.execute(Run.java:1724)         at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)         at hudson.model.ResourceController.execute(ResourceController.java:97)         at hudson.model.Executor.run(Executor.java:421) Caused by: com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.         at com.perforce.p4java.impl.mapbased.server.cmd.ResultMapParser.handleErrorStr(ResultMapParser.java:145)         at com.perforce.p4java.impl.mapbased.server.cmd.ResultListBuilder.buildNonNullObjectListFromCommandResultMaps(ResultListBuilder.java:36)         at com.perforce.p4java.impl.mapbased.server.cmd.PropertyDelegator.getProperty(PropertyDelegator.java:75)         at com.perforce.p4java.impl.mapbased.server.Server.getProperty(Server.java:2278)         at org.jenkinsci.plugins.p4.client.ConnectionHelper.getSwarm(ConnectionHelper.java:597)         at org.jenkinsci.plugins.p4.changes.P4ChangeParser$ChangeLogHandler.<init>(P4ChangeParser.java:73)         at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:48)         ... 10 more   --------- Issue 2 ---------- Jan 08, 2018 1:04:30 PM hudson.model.AbstractBuild calcChangeSet WARNING: Failed to parse /home/jenkins/jobs/[...snip...]/builds/1/changelog.xml org.xml.sax.SAXException: Could not parse perforce changelog: com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.         at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:53)         at hudson.scm.ChangeLogParser.parse(ChangeLogParser.java:57)         at hudson.model.AbstractBuild.calcChangeSet(AbstractBuild.java:875)         at hudson.model.AbstractBuild.getChangeSet(AbstractBuild.java:843)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)         at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)         at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)         at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)         at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)         at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)         at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)         at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)         at org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:69)         at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory$ExpressionSupportLocal.evaluate(JexlExpressionFactory.java:122)         at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)         at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)         at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)         at hudson.plugins.emailext.plugins.content.JellyScriptContent.convert(JellyScriptContent.java:91)         at hudson.plugins.emailext.plugins.content.JellyScriptContent.renderContent(JellyScriptContent.java:82)         at hudson.plugins.emailext.plugins.content.JellyScriptContent.evaluate(JellyScriptContent.java:54)         at hudson.plugins.emailext.plugins.content.AbstractEvalContent.evaluate(AbstractEvalContent.java:76)         at org.jenkinsci.plugins.tokenmacro.DataBoundTokenMacro.evaluate(DataBoundTokenMacro.java:202)         at org.jenkinsci.plugins.tokenmacro.Parser.processToken(Parser.java:306)         at org.jenkinsci.plugins.tokenmacro.Action$KiHW1UeqOdqAwZul.run(Unknown Source)         at org.parboiled.matchers.ActionMatcher.match(ActionMatcher.java:96)         at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)         at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)         at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)         at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)         at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)         at org.parboiled.matchers.FirstOfMatcher.match(FirstOfMatcher.java:41)         at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)         at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)         at org.parboiled.matchers.FirstOfMatcher.match(FirstOfMatcher.java:41)         at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)         at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)         at org.parboiled.matchers.ZeroOrMoreMatcher.match(ZeroOrMoreMatcher.java:39)         at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)         at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)         at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46)         at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77)         at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)         at org.parboiled.parserunners.BasicParseRunner.run(BasicParseRunner.java:72)         at org.parboiled.parserunners.ReportingParseRunner.runBasicMatch(ReportingParseRunner.java:86)         at org.parboiled.parserunners.ReportingParseRunner.run(ReportingParseRunner.java:66)         at org.parboiled.parserunners.AbstractParseRunner.run(AbstractParseRunner.java:81)         at org.parboiled.parserunners.AbstractParseRunner.run(AbstractParseRunner.java:76)         at org.jenkinsci.plugins.tokenmacro.Parser.process(Parser.java:68)         at org.jenkinsci.plugins.tokenmacro.TokenMacro.expand(TokenMacro.java:204)         at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:234)         at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:80)         at hudson.plugins.emailext.ExtendedEmailPublisher.addContent(ExtendedEmailPublisher.java:862)         at hudson.plugins.emailext.ExtendedEmailPublisher.createMail(ExtendedEmailPublisher.java:741)         at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:451)         at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:441)         at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:349)         at org.jenkinsci.plugins.emailext_template.ExtendedEmailTemplatePublisher.perform(ExtendedEmailTemplatePublisher.java:73)         at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)         at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)         at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)         at hudson.model.Build$BuildExecution.post2(Build.java:186)         at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)         at hudson.model.Run.execute(Run.java:1749)         at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)         at hudson.model.ResourceController.execute(ResourceController.java:97)         at hudson.model.Executor.run(Executor.java:421) Caused by: com.perforce.p4java.exception.RequestException: Unknown command.  Try 'p4 help' for info.         at com.perforce.p4java.impl.mapbased.server.cmd.ResultMapParser.handleErrorStr(ResultMapParser.java:145)         at com.perforce.p4java.impl.mapbased.server.cmd.ResultListBuilder.buildNonNullObjectListFromCommandResultMaps(ResultListBuilder.java:36)         at com.perforce.p4java.impl.mapbased.server.cmd.PropertyDelegator.getProperty(PropertyDelegator.java:75)         at com.perforce.p4java.impl.mapbased.server.Server.getProperty(Server.java:2278)         at org.jenkinsci.plugins.p4.client.ConnectionHelper.getSwarm(ConnectionHelper.java:597)         at org.jenkinsci.plugins.p4.changes.P4ChangeParser$ChangeLogHandler.<init>(P4ChangeParser.java:73)         at org.jenkinsci.plugins.p4.changes.P4ChangeParser.parse(P4ChangeParser.java:48)         ... 69 more      

          Philip Arickx added a comment - - edited

          One way to fix this backwards-compatibility issue might be to harden lines 72-77 in P4ChangeParser for backwards compatibility, from the current :

          if (browser == null) {
              String url = p4.getSwarm();
              if (url != null) {
                  this.browser = new SwarmBrowser(url);
              }
          }
          

          into :

          if (browser == null) {
              try {
                  String url = p4.getSwarm();
                  if (url != null) {
                      this.browser = new SwarmBrowser(url);
                  }
              } catch(RequestException re) {
                  if(re.getMessage() != null && !re.getMessage().contains("Unknown command")) {
                      throw re;
                  }
                  // else : Ignore, the command is not supported by older versions
              }
          }
          
          

          Philip Arickx added a comment - - edited One way to fix this backwards-compatibility issue might be to harden lines 72-77 in P4ChangeParser for backwards compatibility, from the current : if (browser == null ) {      String url = p4.getSwarm();      if (url != null ) {          this .browser = new SwarmBrowser(url);     } } into : if (browser == null ) { try {      String url = p4.getSwarm();       if (url != null ) {          this .browser = new SwarmBrowser(url);      } } catch (RequestException re) { if (re.getMessage() != null && !re.getMessage().contains( "Unknown command" )) { throw re; } // else : Ignore, the command is not supported by older versions } }

          Philip Arickx added a comment - - edited

          I forked p4-plugin, fixed and created a pull request

          I tested by applying this fix to a 1.8.4 release tarball, building and deploying on our production system, where it works nicely.

          Philip Arickx added a comment - - edited I forked p4-plugin, fixed and created a pull request I tested by applying this fix to a 1.8.4 release tarball, building and deploying on our production system, where it works nicely.

          Paul Allen added a comment -

          Hi Philip,

          Great work, thank you for the PR - I'll get that merged in. 

          It looks like the 'p4 property' command used by Swarm to get the URL is the issue (it was introduced in 2013.1).  Is there anything we could do to help with the upgrade? 2012.1 is kind of old.

          Kind regards,

          Paul

          Paul Allen added a comment - Hi Philip, Great work, thank you for the PR - I'll get that merged in.  It looks like the 'p4 property' command used by Swarm to get the URL is the issue (it was introduced in 2013.1).  Is there anything we could do to help with the upgrade? 2012.1 is kind of old. Kind regards, Paul

          Philip Arickx added a comment -

          Hi Paul,

          Thanks for the quick turnaround, I'm looking forward to the next release.

          I'm not responsible for maintaining our P4 servers. I was in touch with our P4 team, and they are planning the upgrade, but apparently the situation is non-trivial, so it might take some time.

          Best regards,

          Philip

          Philip Arickx added a comment - Hi Paul, Thanks for the quick turnaround, I'm looking forward to the next release. I'm not responsible for maintaining our P4 servers. I was in touch with our P4 team, and they are planning the upgrade, but apparently the situation is non-trivial, so it might take some time. Best regards, Philip

          Paul Allen added a comment -

          Ready for release.

          Paul Allen added a comment - Ready for release.

          Paul Allen added a comment -

          Released in 1.8.5

          Paul Allen added a comment - Released in 1.8.5

          Roberta T guo added a comment -

          We are using P4 pluginin v1.8.7. In jenkins.log, we saw a lot of such exceptions threw when the plugin executed silently in Jenkin master for the SCM-perforce related jobs, even they are not running and even was disabled. Sometimes when there are many Jenkins jobs are triggered, this could cause the 'java.lang.OutOfMemoryError: GC overhead limit exceeded' error in Jenkins master.

          How should we workaround this issus? Is this a direct cause for our Jenkins went dead today?

          Thanks

           

          Roberta T guo added a comment - We are using P4 pluginin v1.8.7. In jenkins.log, we saw a lot of such exceptions threw when the plugin executed silently in Jenkin master for the SCM-perforce related jobs, even they are not running and even was disabled. Sometimes when there are many Jenkins jobs are triggered, this could cause the 'java.lang.OutOfMemoryError: GC overhead limit exceeded' error in Jenkins master. How should we workaround this issus? Is this a direct cause for our Jenkins went dead today? Thanks  

            p4paul Paul Allen
            phrx Philip Arickx
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: