[JIRA] (JENKINS-40034) Remote file operations fail on Windows slave depending on user

5 views
Skip to first unread message

j.r.hodgson@gmail.com (JIRA)

unread,
Nov 25, 2016, 5:30:05 AM11/25/16
to jenkinsc...@googlegroups.com
Jon Hodgson created an issue
 
Jenkins / Bug JENKINS-40034
Remote file operations fail on Windows slave depending on user
Issue Type: Bug Bug
Assignee: Unassigned
Components: pipeline
Created: 2016/Nov/25 10:29 AM
Environment: jenkins 2.33 java 1.8.0_111, Windows 7, OSX 10.10, Debian Linux
Labels: pipeline groovy windows
Priority: Major Major
Reporter: Jon Hodgson

My setup currently has a Linux master, and an OSX and Windows build slave.

I have a pipeline job

If I trigger a build, either from the start build url, or using the replay button on a previously executed job, then everything works fine.

If anybody else tries the same thing, the build will work as expected on the OSX slave, but it will crash on the Windows slave.

I was getting this error

java.io.IOException: Failed to mkdirs: C:\Jenkins\workspace\WPF\TryBuild\Hugo Brangwyn\PluginWrapper@tmp\durable-fffd693e
        at hudson.FilePath.mkdirs(FilePath.java:1169)
        at org.jenkinsci.plugins.durabletask.FileMonitoringTask$FileMonitoringController.<init>(FileMonitoringTask.java:101)
        at org.jenkinsci.plugins.durabletask.WindowsBatchScript$BatchController.<init>(WindowsBatchScript.java:94)
        at org.jenkinsci.plugins.durabletask.WindowsBatchScript$BatchController.<init>(WindowsBatchScript.java:92)
        at org.jenkinsci.plugins.durabletask.WindowsBatchScript.doLaunch(WindowsBatchScript.java:60)
        at org.jenkinsci.plugins.durabletask.FileMonitoringTask.launchWithCookie(FileMonitoringTask.java:66)
        at org.jenkinsci.plugins.durabletask.FileMonitoringTask.launch(FileMonitoringTask.java:61)
        at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.start(DurableTaskStep.java:158)
        at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:184)
        at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126)
        at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108)
        at groovy.lang.GroovyObject$invokeMethod$8.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
        at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)
        at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)
        at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)
        at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103)
        at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
        at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
        at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16)
        at gforce.Mercurial.cleanupWorkingCopy(file:/var/lib/jenkins/jobs/WPF/jobs/TryBuild/builds/461/libs/gforce/src/gforce/Mercurial.groovy:16)
        at gforce.Mercurial.tryCheckOutWithPatch(file:/var/lib/jenkins/jobs/WPF/jobs/TryBuild/builds/461/libs/gforce/src/gforce/Mercurial.groovy:32)
        at gforce.Mercurial.tryCheckOut(file:/var/lib/jenkins/jobs/WPF/jobs/TryBuild/builds/461/libs/gforce/src/gforce/Mercurial.groovy:58)
        at gforce.Mercurial.checkoutBuild(file:/var/lib/jenkins/jobs/WPF/jobs/TryBuild/builds/461/libs/gforce/src/gforce/Mercurial.groovy:93)
        at Script1.buildAll(Script1.groovy:198)
        at ___cps.transform___(Native Method)
        at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
        at sun.reflect.GeneratedMethodAccessor515.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:103)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
        at sun.reflect.GeneratedMethodAccessor515.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
        at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:60)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
        at sun.reflect.GeneratedMethodAccessor515.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
        at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
        at com.cloudbees.groovy.cps.Next.step(Next.java:58)
        at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
        at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
        at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
        at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
        at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
        at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
        at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:163)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:324)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:78)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:224)
        at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
        at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Finished: FAILURE

Then I cleaned out the relevant workspace folder and tried again, and got

java.io.IOException: remote file operation failed: C:\Jenkins\workspace\WPF\TryBuild\Hugo Brangwyn\PluginWrapper at hudson.remoting.Channel@6b81cdda:Channel to /82.39.249.244: java.io.IOException: Failed to extract changes.patch.tar.gz
        at hudson.FilePath.act(FilePath.java:992)
        at hudson.FilePath.act(FilePath.java:974)
        at hudson.FilePath.untar(FilePath.java:527)
        at org.jenkinsci.plugins.workflow.flow.StashManager.unstash(StashManager.java:122)
        at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:64)
        at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:54)

So it looks to me like the issue in both cases is file operations. I've tried this with two user accounts, both of which I gave jenkins admin permissions to in case that was somehow the issue.

I've tried launching the slave from the webpage, and from the coomand line.

I've updated java to the same version on master and slave.

It's not down to the specifics of the build, if I replay a build with my login. it works, if I do it with somebody else's login, it fails.

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

j.r.hodgson@gmail.com (JIRA)

unread,
Dec 13, 2016, 5:06:01 PM12/13/16
to jenkinsc...@googlegroups.com
Jon Hodgson resolved as Duplicate
 

It seems the user issue was a red herring. The problem actually occurs if the folder to be created has no existing parent. Since the job I was testing with creates folders with the username in the path, and the problem manifested itself after I'd run the job with my userid (and thus created the folder structure already) this resulted in the false correlation of the issue with different user names.

So I'm closing this issue and have opened https://issues.jenkins-ci.org/browse/JENKINS-40424?filter=-2

Change By: Jon Hodgson
Status: Open Resolved
Resolution: Duplicate
Reply all
Reply to author
Forward
0 new messages