workflow issue with "dir"

8,249 views
Skip to first unread message

James Nord (jnord)

unread,
Aug 15, 2014, 1:03:06 PM8/15/14
to jenkin...@googlegroups.com

Hi all,

 

There seems to be an issue with the workflow “Change Directory” step (or me…)

 

With the following workflow

node() {

  sh 'rm -fr -- *'

  sh 'mkdir foobar'

  echo 'about to change dir'

  dir 'foobar'

  echo 'changed dir'

}

 

I get the following output

 

Running: Allocate node : Start

Running on master in /opt/jenkins/data/jobs/changedir/workspace

Running: Allocate node : Body : Start

Running: Shell Script

[workspace] $ nohup sh -c "'/opt/jenkins/data/jobs/changedir/workspace/.8e7bf62b/script.sh' > '/opt/jenkins/data/jobs/changedir/workspace/.8e7bf62b/jenkins-log.txt' 2>&1; echo $? > '/opt/jenkins/data/jobs/changedir/workspace/.8e7bf62b/jenkins-result.txt'"

+ rm -fr -- '*'

Running: Shell Script

[workspace] $ nohup sh -c "'/opt/jenkins/data/jobs/changedir/workspace/.22ea1fbb/script.sh' > '/opt/jenkins/data/jobs/changedir/workspace/.22ea1fbb/jenkins-log.txt' 2>&1; echo $? > '/opt/jenkins/data/jobs/changedir/workspace/.22ea1fbb/jenkins-result.txt'"

+ mkdir foobar

Running: Print Message

about to change dir

Running: Change Directory

Running in /opt/jenkins/data/jobs/changedir/workspace/foobar

Running: Allocate node : Body : End

Running: Allocate node : End

Running: End of Workflow

java.lang.IllegalStateException: There's no body to invoke

  at org.jenkinsci.plugins.workflow.cps.CpsStepContext.invokeBodyLater(CpsStepContext.java:226)

  at org.jenkinsci.plugins.workflow.cps.CpsStepContext.invokeBodyLater(CpsStepContext.java:217)

  at org.jenkinsci.plugins.workflow.steps.PushdStep$Execution.start(PushdStep.java:77)

  at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:131)

  at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:79)

  at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)

  at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)

  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)

  at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:15)

  at Script1.run(Script1.groovy:5)

  at Unknown.Unknown(Unknown)

  at ___cps.transform___(Native Method)

  at com.cloudbees.groovy.cps.impl.ContinuationGroup$1.call(ContinuationGroup.java:66)

  at com.cloudbees.groovy.cps.impl.ContinuationGroup$1.call(ContinuationGroup.java:62)

  at sun.reflect.GeneratedMethodAccessor366.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke(Method.java:606)

  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)

  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)

  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1079)

  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)

  at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:44)

  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)

  at com.cloudbees.groovy.cps.CategorySupport$_use_closure1.doCall(CategorySupport.groovy:15)

  at sun.reflect.GeneratedMethodAccessor365.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke(Method.java:606)

  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)

  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)

  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)

  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)

  at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)

  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)

  at com.cloudbees.groovy.cps.CategorySupport$_use_closure1.doCall(CategorySupport.groovy)

  at sun.reflect.GeneratedMethodAccessor364.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke(Method.java:606)

  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)

  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)

  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)

  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)

  at groovy.lang.Closure.call(Closure.java:415)

  at groovy.lang.Closure.call(Closure.java:409)

  at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:106)

  at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$400(GroovyCategorySupport.java:64)

  at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:246)

  at org.codehaus.groovy.runtime.GroovyCategorySupport$use.call(Unknown Source)

  at com.cloudbees.groovy.cps.CategorySupport.use(CategorySupport.groovy:14)

  at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:62)

  at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:100)

  at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:76)

  at sun.reflect.GeneratedMethodAccessor290.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:53)

  at com.cloudbees.groovy.cps.Next.run(Next.java:44)

  at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:109)

  at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:155)

  at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:252)

  at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:68)

  at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:168)

  at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:166)

  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

 

I’m not entirely sure what’s wrong here..

 

/James

Daniel Beck

unread,
Aug 15, 2014, 1:35:46 PM8/15/14
to jenkin...@googlegroups.com
From the error message, it seems "dir" requires a block containing the commands to run in the specified directory. Try something like

dir ('foobar') {
sh 'pwd'
> --
> You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

James Nord (jnord)

unread,
Aug 18, 2014, 1:38:50 PM8/18/14
to jenkin...@googlegroups.com
Yes - that fixed it.
Thanks Daniel.

> -----Original Message-----
> From: jenkin...@googlegroups.com [mailto:jenkinsci-
> d...@googlegroups.com] On Behalf Of Daniel Beck
> Sent: 15 August 2014 18:33
> To: jenkin...@googlegroups.com
> Subject: Re: workflow issue with "dir"
>
> From the error message, it seems "dir" requires a block containing the
> commands to run in the specified directory. Try something like
>
> dir ('foobar') {
> sh 'pwd'
> }
>
> On 15.08.2014, at 19:02, James Nord (jnord) <jn...@cisco.com> wrote:
>
> > Hi all,
> >
> > There seems to be an issue with the workflow "Change Directory" step (or
> me...)
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(Cl
> osureMetaClass.java:272)
> > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
> > at
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoM
> etaClassSite.java:66)
> > at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCal
> lSite.java:141)
> > at
> com.cloudbees.groovy.cps.CategorySupport$_use_closure1.doCall(Category
> Support.groovy)
> > at sun.reflect.GeneratedMethodAccessor364.invoke(Unknown Source)
> > at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
> > at java.lang.reflect.Method.invoke(Method.java:606)
> > at
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
> 90)
> > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
> > at
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(Cl
> sorImpl.java:43)
> > at java.lang.reflect.Method.invoke(Method.java:606)
> > at
> com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(C
Reply all
Reply to author
Forward
0 new messages