I tried a couple of experiments today.

Launching a cmd windows as an administrator and running the slave from 
there... no difference.

Manually created the pipeline-test2@tmp directory - build was successful

Deleted both pipeline-test2 and pipeline-test2@tmp and ran build - jenkins 
recreated pipeline-test2 but failed to create pipeline-test2@tmp

Tried running the slave on a different windows machine (running WIndows 10, 
it's my development laptop) - build was successful

This has me confused. The fact that it's different on two different 
machines makes me think permisssions.

But if permissions allow the creation of pipeline-test2 by the slave, they 
should also allow the creation of pipeline-test2@tmp right next to it 
surely?

On Thursday, December 8, 2016 at 5:59:15 PM UTC, Jonathan Hodgson wrote:
>
> Hi,
>
> I've been experiementing trying to get some information which might give a 
> clue to the issues I'm having with my Windows slave.
>
> It's rather confusing, since to start with it worked fine. and the errors 
> aren't consistent (looking for past logs I see an error with unstashing 
> which I don't seem to be getting now).
>
> Anyway, I created a pipeline with this groovy script
>
> @NonCPS def printException(err)
> {
>     message = err.getMessage()
>     stacktrace = err.getStackTrace()
>     stacktrace.each { stackElem ->
>     message += "\n" + stackElem.toString()
>     }
>     print message
> }
>
> def batch(platform)
> {
>     try {
>         if (isUnix())
>         {
>             sh script:"echo running shell script"
>         }
>         else
>         {
>             bat script:"echo running batch script"
>         }
>         echo "Batch file ran ok"
>     }
>     catch (Exception err)
>     {
>         echo "Failed to run batch file on $platform"
>         printException(err)
>     }    
> }
>
> def dirStep(platform)
> {
>     try {
>         dir ("mySubDirectory")
>         {
>             echo "In subdirectory"
>             writeFile file:"mySubFile.txt", text:"this is a file in 
> $platform"
>         }
>     }
>     catch (Exception err)
>     {
>         echo "Failed enter subdirectory on $platform"
>         printException(err)
>     }     
> }
>
> def writeFileStep(platform)
> {
>     try {
>         writeFile file:"myFile.txt", text:"this is a file in $platform"
>         echo "wrote File on $platform"
>     }
>     catch (Exception err)
>     {
>         echo "Failed to create file on $platform"
>         printException(err)
>     }   
> }
>
> def testUnstash(platform)
> {
>      try {
>         unstash "myStash"
>         echo "instashed on $platform"
>     }
>     catch (Exception err)
>     {
>         echo "Failed to unstash on $platform"
>         printException(err)
>     }      
> }
>
> def runTests(nodeID)
> {
>     node (nodeID)
>     {
>         batch(nodeID)
>         writeFileStep(nodeID)
>         dirStep(nodeID)
>         testUnstash(nodeID)
>     }
> }
>
> stage("testing")
> {
>     node ("master")
>     {
>         writeFile file:"toStash.txt",text:"Testing stashing and unstashing"
>         stash name:"myStash", include:"toStash.txt"
>     }
>     runTests("master")
>     runTests("XCode")
>     runTests("VS2013")
> }
>
>
> And when I run it, everything seems to work fine, except for the batch 
> file step on windows. which gives an error related to MkDir
>
> Started by user Jonathan Hodgson 
> <http://cranetechnology.dynalias.net/jenkins/user/Jon>[Pipeline] 
> stage[Pipeline] { (testing)[Pipeline] nodeRunning on master in 
> /var/lib/jenkins/workspace/pipeline-test2[Pipeline] {[Pipeline] 
> writeFile[Pipeline] stashStashed 3 file(s)[Pipeline] }[Pipeline] // 
> node[Pipeline] nodeRunning on master in 
> /var/lib/jenkins/workspace/pipeline-test2[Pipeline] {[Pipeline] 
> isUnix[Pipeline] sh[pipeline-test2] Running shell script
> + echo running shell script
> running shell script[Pipeline] echoBatch file ran ok[Pipeline] 
> writeFile[Pipeline] echowrote File on master[Pipeline] dirRunning in 
> /var/lib/jenkins/workspace/pipeline-test2/mySubDirectory[Pipeline] 
> {[Pipeline] echoIn subdirectory[Pipeline] writeFile[Pipeline] }[Pipeline] // 
> dir[Pipeline] unstash[Pipeline] echoinstahsed on master[Pipeline] }[Pipeline] 
> // node[Pipeline] nodeRunning on iMac in 
> /Users/jon/jenkins/workspace/pipeline-test2[Pipeline] {[Pipeline] 
> isUnix[Pipeline] sh[pipeline-test2] Running shell script
> + echo running shell script
> running shell script[Pipeline] echoBatch file ran ok[Pipeline] 
> writeFile[Pipeline] echowrote File on XCode[Pipeline] dirRunning in 
> /Users/jon/jenkins/workspace/pipeline-test2/mySubDirectory[Pipeline] 
> {[Pipeline] echoIn subdirectory[Pipeline] writeFile[Pipeline] }[Pipeline] // 
> dir[Pipeline] unstash[Pipeline] echoinstahsed on XCode[Pipeline] }[Pipeline] 
> // node[Pipeline] nodeRunning on Asus K51 in 
> C:\Jenkins\workspace\pipeline-test2[Pipeline] {[Pipeline] isUnix[Pipeline] 
> bat[Pipeline] echoFailed to run batch file on VS2013[Pipeline] echoFailed to 
> mkdirs: C:\Jenkins\workspace\pipeline-test2@tmp\durable-97381953
> hudson.FilePath.mkdirs(FilePath.java:1169)
> org.jenkinsci.plugins.durabletask.FileMonitoringTask$FileMonitoringController.<init>(FileMonitoringTask.java:101)
> org.jenkinsci.plugins.durabletask.WindowsBatchScript$BatchController.<init>(WindowsBatchScript.java:94)
> org.jenkinsci.plugins.durabletask.WindowsBatchScript$BatchController.<init>(WindowsBatchScript.java:92)
> org.jenkinsci.plugins.durabletask.WindowsBatchScript.doLaunch(WindowsBatchScript.java:60)
> org.jenkinsci.plugins.durabletask.FileMonitoringTask.launchWithCookie(FileMonitoringTask.java:66)
> org.jenkinsci.plugins.durabletask.FileMonitoringTask.launch(FileMonitoringTask.java:61)
> org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.start(DurableTaskStep.java:158)
> org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:184)
> org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126)
> org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108)
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
> com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:18)
> WorkflowScript.batch(WorkflowScript:20)
> WorkflowScript.runTests(WorkflowScript:77)
> ___cps.transform___(Native Method)
> com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
> com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
> com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
> sun.reflect.GeneratedMethodAccessor365.invoke(Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> java.lang.reflect.Method.invoke(Method.java:498)
> com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
> com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.dispatch(CollectionLiteralBlock.java:55)
> com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.item(CollectionLiteralBlock.java:45)
> sun.reflect.GeneratedMethodAccessor385.invoke(Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> java.lang.reflect.Method.invoke(Method.java:498)
> com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
> com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
> com.cloudbees.groovy.cps.Next.step(Next.java:58)
> com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
> org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:163)
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:324)
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:78)
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236)
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:224)
> org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63)
> java.util.concurrent.FutureTask.run(FutureTask.java:266)
> hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
> jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> java.util.concurrent.FutureTask.run(FutureTask.java:266)
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> java.lang.Thread.run(Thread.java:745)[Pipeline] writeFile[Pipeline] echowrote 
> File on VS2013[Pipeline] dirRunning in 
> C:\Jenkins\workspace\pipeline-test2\mySubDirectory[Pipeline] {[Pipeline] 
> echoIn subdirectory[Pipeline] writeFile[Pipeline] }[Pipeline] // 
> dir[Pipeline] unstash[Pipeline] echoinstahsed on VS2013[Pipeline] }[Pipeline] 
> // node[Pipeline] }[Pipeline] // stage[Pipeline] End of PipelineFinished: 
> SUCCESS
>
>
> I tried deleteing the pipeline-test2 folder, and it gets recreated fine, 
> as does its subdirectory, but the tmp folder breaks everything.
>
> If anyone has any suggestions they would be gratefully received, since 
> Jenkins is largely useless to me until I get this working again, and I've 
> invested a LOT of time in getting this far.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/481f6971-ba6f-4ac3-b96c-e556da522ac6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to