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

Changelists whose files are only partially represented in client spec breaks syncing and polling

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Critical
    • Resolution: Duplicate
    • Component/s: p4-plugin
    • Labels:
      None
    • Environment:
      Perforce Plugin 1.2.8
    • Similar Issues:

      Description

      When a CL contains files that are only partially in a client spec, polling and syncing appear to fail. I.e. if there is a CL with files //depot/a/foo.txt and //depot/b/foo.txt, then a job with a client spec containing only /depot/a/... will always have polling fail and will fail when syncing.

      I don't have an example log of polling (already rolled back to 1.2.6). Here's a bleached log of a bad sync:

      [foo] $ "C:\Program Files\Perforce\p4.exe" counter change
      [foo] $ "C:\Program Files\Perforce\p4.exe" -s changes //jenkins-foo/...@12345,@12347
      [foo] $ "C:\Program Files\Perforce\p4.exe" describe -s 12346
      [foo] $ "C:\Program Files\Perforce\p4.exe" -G where //depot/a/foo.txt
      [foo] $ "C:\Program Files\Perforce\p4.exe" -G where //depot/b/foo.txt
      FATAL: null
      java.lang.NullPointerException
      	at hudson.plugins.perforce.PerforceSCMHelper.parseWhereMapping(PerforceSCMHelper.java:133)
      	at com.tek42.perforce.parse.Changes.calculateWorkspacePaths(Changes.java:78)
      	at com.tek42.perforce.parse.Changes.getChangelist(Changes.java:67)
      	at com.tek42.perforce.parse.Changes.getChangelistsFromNumbers(Changes.java:403)
      	at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:628)
      	at hudson.model.AbstractProject.checkout(AbstractProject.java:1181)
      	at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:536)
      	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
      	at hudson.model.Run.run(Run.java:1374)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:145)
      

        Attachments

          Issue Links

            Activity

            oeuftete oeuftete created issue -
            oeuftete oeuftete made changes -
            Field Original Value New Value
            Description When a CL contains files that are only partially in a client spec, polling and syncing appear to fail. I.e. if there is a CL with files{{//depot/a/foo.txt}} and {{//depot/b/foo.txt}}, then a job with a client spec containing only {{/depot/a/...}} will always have polling fail and will fail when syncing.

            I don't have an example log of polling (already rolled back to 1.2.6). Here's a bleached log of a bad sync:

            {noformat}
            [foo] $ "C:\Program Files\Perforce\p4.exe" counter change
            [foo] $ "C:\Program Files\Perforce\p4.exe" -s changes //jenkins-foo/...@12345,@12347
            [foo] $ "C:\Program Files\Perforce\p4.exe" describe -s 12346
            [foo] $ "C:\Program Files\Perforce\p4.exe" -G where //depot/a/foo.txt
            [foo] $ "C:\Program Files\Perforce\p4.exe" -G where //depot/b/foo.txt
            FATAL: null
            java.lang.NullPointerException
            at hudson.plugins.perforce.PerforceSCMHelper.parseWhereMapping(PerforceSCMHelper.java:133)
            at com.tek42.perforce.parse.Changes.calculateWorkspacePaths(Changes.java:78)
            at com.tek42.perforce.parse.Changes.getChangelist(Changes.java:67)
            at com.tek42.perforce.parse.Changes.getChangelistsFromNumbers(Changes.java:403)
            at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:628)
            at hudson.model.AbstractProject.checkout(AbstractProject.java:1181)
            at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:536)
            at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
            at hudson.model.Run.run(Run.java:1374)
            at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
            at hudson.model.ResourceController.execute(ResourceController.java:88)
            at hudson.model.Executor.run(Executor.java:145)
            {noformat}
            When a CL contains files that are only partially in a client spec, polling and syncing appear to fail. I.e. if there is a CL with files {{//depot/a/foo.txt}} and {{//depot/b/foo.txt}}, then a job with a client spec containing only {{/depot/a/...}} will always have polling fail and will fail when syncing.

            I don't have an example log of polling (already rolled back to 1.2.6). Here's a bleached log of a bad sync:

            {noformat}
            [foo] $ "C:\Program Files\Perforce\p4.exe" counter change
            [foo] $ "C:\Program Files\Perforce\p4.exe" -s changes //jenkins-foo/...@12345,@12347
            [foo] $ "C:\Program Files\Perforce\p4.exe" describe -s 12346
            [foo] $ "C:\Program Files\Perforce\p4.exe" -G where //depot/a/foo.txt
            [foo] $ "C:\Program Files\Perforce\p4.exe" -G where //depot/b/foo.txt
            FATAL: null
            java.lang.NullPointerException
            at hudson.plugins.perforce.PerforceSCMHelper.parseWhereMapping(PerforceSCMHelper.java:133)
            at com.tek42.perforce.parse.Changes.calculateWorkspacePaths(Changes.java:78)
            at com.tek42.perforce.parse.Changes.getChangelist(Changes.java:67)
            at com.tek42.perforce.parse.Changes.getChangelistsFromNumbers(Changes.java:403)
            at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:628)
            at hudson.model.AbstractProject.checkout(AbstractProject.java:1181)
            at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:536)
            at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
            at hudson.model.Run.run(Run.java:1374)
            at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
            at hudson.model.ResourceController.execute(ResourceController.java:88)
            at hudson.model.Executor.run(Executor.java:145)
            {noformat}
            oeuftete oeuftete made changes -
            Status Open [ 1 ] Resolved [ 5 ]
            Resolution Duplicate [ 3 ]
            oeuftete oeuftete made changes -
            Link This issue duplicates JENKINS-7618 [ JENKINS-7618 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 140514 ] JNJira + In-Review [ 189098 ]
            ircbot Jenkins IRC Bot made changes -
            Component/s p4-plugin [ 19224 ]
            Component/s perforce-plugin [ 15506 ]

              People

              • Assignee:
                Unassigned
                Reporter:
                oeuftete oeuftete
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: