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 [email protected].
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.