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

Random failure to find bash on Windows/Cygwin slave

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • cygpath-plugin
    • None
    • Hudson 1.383
      Master: Ubuntu, glassfish
      Slave: Windows XP, Cygwin, running via JNLP

      It looks like either cygpath sometimes does not return the right information, or Hudson does not use the cygpath information to find /bin/bash. The log snippet below shows a few things:

      • Timing - It found bash twice within 10 seconds, and then the 3rd time it failed to find it
      • When it worked, Hudson called C:\cygwin\bin\bash. When it failed, Hudson called /bin/bash. This is what makes me think that it didn't use the cygpath value

      I found one thread in the forums which suggested just using bash instead of /bin/bash in the shell environment variable. Would that take care of something like this?

      The two success cases:

      09:56:19  $ C:\cygwin\bin\cygpath -w /bin/bash
      09:56:19  [spectrum_tap2] $ C:\cygwin\bin\bash -xe C:\DOCUME~1\OR-ENG~1\LOCALS~1\Temp\hudson3300316933213918666.sh
      ...
      09:56:19  $ C:\cygwin\bin\cygpath -w /bin/bash
      09:56:20  [spectrum_tap2] $ C:\cygwin\bin\bash -xe C:\DOCUME~1\OR-ENG~1\LOCALS~1\Temp\hudson2834466993129794225.sh
      09:56:20  + '[' '' '!=' true ']'
      09:56:20  + echo 'Build description: Build skipped'
      09:56:20  Build description: Build skipped
      

      And the failure, 3 seconds later:

      09:56:23  $ C:\cygwin\bin\cygpath -w /bin/bash
      09:56:27  [spectrum_tap2] $ /bin/bash -xe C:\DOCUME~1\OR-ENG~1\LOCALS~1\Temp\hudson5829219388252082290.sh
      09:56:29  FATAL: command execution failed
      09:56:29  java.io.IOException: Cannot run program "/bin/bash" (in directory "C:\Hudson\workspace\spectrum_tap2"): CreateProcess error=3, The system cannot find the path specified
      09:56:29  	at java.lang.ProcessBuilder.start(Unknown Source)
      09:56:29  	at hudson.Proc$LocalProc.<init>(Proc.java:192)
      09:56:29  	at hudson.Proc$LocalProc.<init>(Proc.java:164)
      09:56:29  	at hudson.Launcher$LocalLauncher.launch(Launcher.java:638)
      09:56:29  	at hudson.Launcher$ProcStarter.start(Launcher.java:273)
      09:56:29  	at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:793)
      09:56:29  	at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:767)
      09:56:29  	at hudson.remoting.UserRequest.perform(UserRequest.java:114)
      09:56:29  	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      09:56:29  	at hudson.remoting.Request$2.run(Request.java:270)
      09:56:29  	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      09:56:29  	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      09:56:29  	at java.util.concurrent.FutureTask.run(Unknown Source)
      09:56:29  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      09:56:29  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      09:56:29  	at hudson.remoting.Engine$1$1.run(Engine.java:58)
      09:56:29  	at java.lang.Thread.run(Unknown Source)
      09:56:29  Caused by: java.io.IOException: CreateProcess error=3, The system cannot find the path specified
      09:56:29  	at java.lang.ProcessImpl.create(Native Method)
      09:56:29  	at java.lang.ProcessImpl.<init>(Unknown Source)
      09:56:29  	at java.lang.ProcessImpl.start(Unknown Source)
      09:56:29  	... 17 more
      

      I don't know what component this should be, so I set it to 'core'.

            Unassigned Unassigned
            sauravsengupta sauravsengupta
            Votes:
            5 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: