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

Git plugin 1.1.10 fails to parse author information

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Blocker
    • Resolution: Fixed
    • git-plugin
    • None
    • 25 slaves, 2 executors on each, matrix job with 228 combinations, all combinations finish very quickly

    Description

      Jenkins fails to properly parse the commit's authorship in some step after archiving artifacts. There was a similar bug in 1.1.9 wrt whitespace in email addresses, but this issue presented itself first in 1.1.10. I've downgraded to 1.1.9 to see if it happens there, and will report back. Suspect this may be a race condition as roughly all 50 executors finishing their job at the same time, in my current configuration.

      Archiving artifacts
      FATAL: No author in changeset caf6decf068e67382437f2afd58456e7a4de18e5
      java.lang.RuntimeException: No author in changeset caf6decf068e67382437f2afd58456e7a4de18e5
      	at hudson.plugins.git.GitChangeSet.getAuthor(GitChangeSet.java:240)
      	at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:281)
      	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:582)
      	at hudson.model.Run.run(Run.java:1386)
      	at hudson.matrix.MatrixRun.run(MatrixRun.java:137)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:145)
      

      The info in this commit:

      $ git cat-file -p caf6decf068e67382437f2afd58456e7a4de18e5
      tree 30085be0afbb6e8e57f3f0c3602d7532ecf3c183
      parent d516daf04c94ea5c6fb401bf276301dd03d99a2d
      author Jenkins on bot-001 <jenkins@xxxxxxxxxxx.org> 1311284960 -0700
      committer Jenkins on bot-001 <jenkins@xxxxxxxxxxx.org> 1311284960 -0700
      
      v0.9.6-463-g52d1377: vc - mad900_cif.y4m @ 450 kbit
      
      

      Attachments

        Activity

          dmx Dmytro added a comment -

          BUILD SUCCESSFUL
          Total time: 4 minutes 27 seconds
          FATAL: No author in changeset 59dade5a63276fd0489fa9187e4a0d15ed819fa0tree
          java.lang.RuntimeException: No author in changeset 59dade5a63276fd0489fa9187e4a0d15ed819fa0tree
          at hudson.plugins.git.GitChangeSet.getAuthor(GitChangeSet.java:323)
          at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:350)
          at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:346)
          at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:687)
          at hudson.model.Run.execute(Run.java:1770)
          at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
          at hudson.model.ResourceController.execute(ResourceController.java:89)
          at hudson.model.Executor.run(Executor.java:240)

          Reproducing always. Is it possible just to return emty string instead of exception, whatever? No matter what the 'author' in build logs or reports, but failed build discards all efforts that was done to setup complete CI staff with Jenkins((

          dmx Dmytro added a comment - BUILD SUCCESSFUL Total time: 4 minutes 27 seconds FATAL: No author in changeset 59dade5a63276fd0489fa9187e4a0d15ed819fa0tree java.lang.RuntimeException: No author in changeset 59dade5a63276fd0489fa9187e4a0d15ed819fa0tree at hudson.plugins.git.GitChangeSet.getAuthor(GitChangeSet.java:323) at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:350) at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:346) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:687) at hudson.model.Run.execute(Run.java:1770) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:89) at hudson.model.Executor.run(Executor.java:240) Reproducing always. Is it possible just to return emty string instead of exception, whatever? No matter what the 'author' in build logs or reports, but failed build discards all efforts that was done to setup complete CI staff with Jenkins((

          Code changed in jenkins
          User: Mark Waite
          Path:
          src/main/java/hudson/plugins/git/GitChangeSet.java
          src/test/java/hudson/plugins/git/GitChangeSetEmptyTest.java
          src/test/java/hudson/plugins/git/GitChangeSetEuroTest.java
          src/test/java/hudson/plugins/git/GitChangeSetSimpleTest.java
          src/test/java/hudson/plugins/git/GitChangeSetTest.java
          http://jenkins-ci.org/commit/git-plugin/287e5434d790c9a1c7204e38a09cb843b209a3d7
          Log:
          [Fix JENKINS-16737] and [Fix JENKINS-10434] - no exception if author not found

          Return unknown user rather than throwing exception in GitChangeSet

          Refer to JENKINS-16737 and JENKINS-10434 for two cases where a
          GitChangeSet cannot find an author and throws a RuntimeException when
          it would be much better to report an unknown user and allow execution
          to continue.

          Added a Polish character to the accented character test

          Use more diacritics in the latin accented character test

          Use parameterized GitChangeSet test to better cover cases

          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Mark Waite Path: src/main/java/hudson/plugins/git/GitChangeSet.java src/test/java/hudson/plugins/git/GitChangeSetEmptyTest.java src/test/java/hudson/plugins/git/GitChangeSetEuroTest.java src/test/java/hudson/plugins/git/GitChangeSetSimpleTest.java src/test/java/hudson/plugins/git/GitChangeSetTest.java http://jenkins-ci.org/commit/git-plugin/287e5434d790c9a1c7204e38a09cb843b209a3d7 Log: [Fix JENKINS-16737] and [Fix JENKINS-10434] - no exception if author not found Return unknown user rather than throwing exception in GitChangeSet Refer to JENKINS-16737 and JENKINS-10434 for two cases where a GitChangeSet cannot find an author and throws a RuntimeException when it would be much better to report an unknown user and allow execution to continue. Added a Polish character to the accented character test Use more diacritics in the latin accented character test Use parameterized GitChangeSet test to better cover cases

          Code changed in jenkins
          User: Mark Waite
          Path:
          src/main/java/hudson/plugins/git/GitChangeSet.java
          src/test/java/hudson/plugins/git/GitChangeSetEmptyTest.java
          src/test/java/hudson/plugins/git/GitChangeSetEuroTest.java
          src/test/java/hudson/plugins/git/GitChangeSetSimpleTest.java
          src/test/java/hudson/plugins/git/GitChangeSetTest.java
          http://jenkins-ci.org/commit/git-plugin/cb6f13a3e3158332f76a45e853b3766fe83d5828
          Log:
          [Fix JENKINS-16737] and [Fix JENKINS-10434] - no exception if author not found

          Return unknown user rather than throwing exception in GitChangeSet

          Refer to JENKINS-16737 and JENKINS-10434 for two cases where a
          GitChangeSet cannot find an author and throws a RuntimeException when
          it would be much better to report an unknown user and allow execution
          to continue.

          Added a Polish character to the accented character test

          Use more diacritics in the latin accented character test

          Use parameterized GitChangeSet test to better cover cases

          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Mark Waite Path: src/main/java/hudson/plugins/git/GitChangeSet.java src/test/java/hudson/plugins/git/GitChangeSetEmptyTest.java src/test/java/hudson/plugins/git/GitChangeSetEuroTest.java src/test/java/hudson/plugins/git/GitChangeSetSimpleTest.java src/test/java/hudson/plugins/git/GitChangeSetTest.java http://jenkins-ci.org/commit/git-plugin/cb6f13a3e3158332f76a45e853b3766fe83d5828 Log: [Fix JENKINS-16737] and [Fix JENKINS-10434] - no exception if author not found Return unknown user rather than throwing exception in GitChangeSet Refer to JENKINS-16737 and JENKINS-10434 for two cases where a GitChangeSet cannot find an author and throws a RuntimeException when it would be much better to report an unknown user and allow execution to continue. Added a Polish character to the accented character test Use more diacritics in the latin accented character test Use parameterized GitChangeSet test to better cover cases
          markewaite Mark Waite added a comment -

          Fix should be in git plugin 2.2.8, preventing the plugin from throwing an exception even if it finds a case where the changeset author is null. It will return an unknown user rather than throwing an exception.

          Unfortunately, because I can't duplicate the problem, I can't be 100% confident that will resolve the problem entirely, but I am reasonably confident that getAuthorName will no longer throw a RuntimeException.

          markewaite Mark Waite added a comment - Fix should be in git plugin 2.2.8, preventing the plugin from throwing an exception even if it finds a case where the changeset author is null. It will return an unknown user rather than throwing an exception. Unfortunately, because I can't duplicate the problem, I can't be 100% confident that will resolve the problem entirely, but I am reasonably confident that getAuthorName will no longer throw a RuntimeException.
          markewaite Mark Waite added a comment -

          Fix released in git plugin 2.3 10 Nov 2014

          markewaite Mark Waite added a comment - Fix released in git plugin 2.3 10 Nov 2014

          People

            markewaite Mark Waite
            jkoleszar John Koleszar
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: