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

Git plugin fails on remote Poll

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • git-plugin
    • None

      If you enable remote polling in the Git Plugin, the project will never poll successfully, and stops other projects polling as well.

      In GitSCM, requiresWorkspaceForPolling() returns false if remotePoll is enabled.
      https://github.com/jenkinsci/git-plugin/blob/git-1.1.12/src/main/java/hudson/plugins/git/GitSCM.java#L582

      This mean that in the jenkins-core AbstractProject (at least on the LTS branch), a null value is passed in for the workspace parameter to SCM.poll()
      https://github.com/jenkinsci/jenkins/blob/jenkins-1.409.1/core/src/main/java/hudson/model/AbstractProject.java#L1305

      This ends up in 'compareRemoteRevisionWith' back in GitSCM. At line 651, the call to 'workingDirectory(workspace)' returns null - because null was passed in as a param from AbstractProject. This means that at line 657, the call to !!workingDirectory.exists() results in a null pointer.

      Suggested fix: remove the remotePoll, or make it require a workspace to do the polling.

      Stacktrace:
      Sep 2, 2011 2:41:50 PM hudson.triggers.SCMTrigger$Runner runPolling
      SEVERE: Failed to record SCM polling
      java.lang.NullPointerException
      at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:657)
      at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:354)
      at hudson.scm.SCM.poll(SCM.java:371)
      at hudson.model.AbstractProject.poll(AbstractProject.java:1305)
      at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:420)
      at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:449)
      at hudson.triggers.SCMTrigger.run(SCMTrigger.java:103)
      at hudson.triggers.SCMTrigger.run(SCMTrigger.java:83)
      at hudson.triggers.Trigger$1.run(Trigger.java:229)
      at hudson.DependencyRunner.run(DependencyRunner.java:73)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)

            kohsuke Kohsuke Kawaguchi
            robertdw robertdw
            Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: