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

Failure on Git Polling Log when using Linux Master and Windows Slave

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Major Major

      I have a Master and Two slaves. The Linux Slave is behaving very well.

      The problem is only related to the Windows Slave. It works nicely, till the problem happens. The only way to fix it is restarting Jenkins. Its a real problem, and affecting my teamwork. People ask me why the build was not triggered, and I then ask them to commit something else, after I quickly reboot Jenkins.

      While the error is happening, I get:

      Git Polling Log
      Started on Jul 3, 2014 3:10:24 PM
      Using strategy: Default
      [poll] Last Built Revision: Revision 8ae038f280a0faa58243ec1df7af64d961a951c8 (origin/master)
      using GIT_SSH to set credentials
      > C:\git\cmd\git.exe ls-remote -h git@gitlab:group/repo.git master
      FATAL: hudson.plugins.git.GitException: Error performing command: C:\git\cmd\git.exe ls-remote -h git@gitlab:group/repo.git master
      hudson.util.IOException2: hudson.plugins.git.GitException: Error performing command: C:\git\cmd\git.exe ls-remote -h git@gitlab:group/repo.git master
      at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:459)
      at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:356)
      at hudson.scm.SCM.poll(SCM.java:373)
      at hudson.model.AbstractProject._poll(AbstractProject.java:1584)
      at hudson.model.AbstractProject.poll(AbstractProject.java:1493)
      at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:462)
      at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:491)
      at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:679)
      Caused by: hudson.plugins.git.GitException: Error performing command: C:\git\cmd\git.exe ls-remote -h git@gitlab:group/repo.git master
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1332)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1186)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1110)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1101)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getHeadRev(CliGitAPIImpl.java:1788)
      at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:492)
      at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:457)
      ... 13 more
      Caused by: java.io.IOException: Cannot run program "C:\git\cmd\git.exe": java.io.IOException: error=2, No such file or directory
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:488)
      at hudson.Proc$LocalProc.<init>(Proc.java:244)
      at hudson.Proc$LocalProc.<init>(Proc.java:216)
      at hudson.Launcher$LocalLauncher.launch(Launcher.java:773)
      at hudson.Launcher$ProcStarter.start(Launcher.java:353)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1321)
      ... 19 more
      Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
      at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
      at java.lang.ProcessImpl.start(ProcessImpl.java:81)
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:470)
      ... 24 more
      Done. Took 68 ms
      No changes

      I know, it looks like git.exe is not there. But it is, really is. After restarting Jenkins, this happens (on another repo I was able to see the same error, and not I can push something).

      Started on Jul 3, 2014 4:04:40 PM
      Polling SCM changes on WINMACHINE
      Using strategy: Default
      [poll] Last Built Revision: Revision 62e80167e7067ede25727c3cb96885551694c860 (origin/master)
      > C:\git\cmd\git.exe rev-parse --is-inside-work-tree
      Fetching changes from the remote Git repositories
      > C:\git\cmd\git.exe config remote.origin.url git@gitlab:tools/repo.git
      Fetching upstream changes from git@gitlab:tools/repo.git
      > C:\git\cmd\git.exe --version
      using GIT_SSH to set credentials
      > C:\git\cmd\git.exe fetch --tags --progress git@gitlab:tools/repo.git +refs/heads/:refs/remotes/origin/
      Polling for changes in
      Seen branch in repository origin/master
      Seen 1 remote branch
      > C:\git\cmd\git.exe log --full-history --no-abbrev --format=raw -M -m --raw 62e80167e7067ede25727c3cb96885551694c860..bb82f97faa7e27ba53c600050c8bef66df7fe5d0
      Done. Took 18 sec
      Changes found

      Interesting is that now, right below the date, it says:
      "Polling SCM changes on WINMACHINE"
      This was not available on previous information...
      It cannot be trying to go to the wrong machine... or "no-machine"? Its odd...

      And I am using "branches to build" = */master

      Another interesting thing... when not works, I can see this line:
      at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
      Why I got an UNUXProcess error, if I am running it on a WinMachine? Does it make sense?

      As per the checklist:

      • I was not running git --version as build step, but was using git log. I already changed my pre-build script, which affects all jobs. Cannot force the error to happen, so I need to wait will next time the problem happen
      • All Projects are restricted to run or on Linux or on Windows Slave machines. In this case, it affects only projects tied to Windows Slave.
      • My GitPolling is configured as @yearly, since my GitLab installation does the trigger to the polling.
      • I am not forcing pulling. I could not understood why I should use this, and on its description, we can read: "If this option is selected, polling will require a workspace and might trigger unwanted builds (see JENKINS-10131)."

      The only fix I can do is rebooting Jenkins. Then everything starts to work again, for a while.

      Lovato

            Unassigned Unassigned
            maglovato Marco Lovato
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: