[JIRA] (JENKINS-41189) [Pipeline] Some non-CPS transformable code will not throw errors

1 view
Skip to first unread message

ssutherland@ea.com (JIRA)

unread,
Jan 18, 2017, 6:23:01 PM1/18/17
to jenkinsc...@googlegroups.com
Sean Sutherland created an issue
 
Jenkins / Bug JENKINS-41189
[Pipeline] Some non-CPS transformable code will not throw errors
Issue Type: Bug Bug
Assignee: Unassigned
Components: workflow-cps-plugin
Created: 2017/Jan/18 11:22 PM
Environment: CloudBees Jenkins Enterprise 2.7.19.1-rolling
Workflow CPS plugin 2.23
Priority: Minor Minor
Reporter: Sean Sutherland

The groovy cps documentation does warn that some loop constructs are not cps transformable.
However, when they are used, they will behave incorrectly (and silently) rather than throwing an error.

repro case

println (["dog", "cat"].findAll{it.contains("dog")})

In a regular groovy shell, this will return ["dog"], as you would expect. In a pipeline job, this will return true.

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

jglick@cloudbees.com (JIRA)

unread,
Feb 1, 2017, 4:49:01 PM2/1/17
to jenkinsc...@googlegroups.com
Jesse Glick resolved as Cannot Reproduce
 

In a fresh 2.7.19.1 instance:

Started by user admin
[Pipeline] End of Pipeline
java.lang.UnsupportedOperationException: Calling public static java.util.List org.codehaus.groovy.runtime.DefaultGroovyMethods.findAll(java.util.List,groovy.lang.Closure) on a CPS-transformed closure is not yet supported (JENKINS-26481); encapsulate in a @NonCPS method, or use Java-style loops
	at org.jenkinsci.plugins.workflow.cps.GroovyClassLoaderWhitelist.checkJenkins26481(GroovyClassLoaderWhitelist.java:86)
	at org.jenkinsci.plugins.workflow.cps.GroovyClassLoaderWhitelist.permitsStaticMethod(GroovyClassLoaderWhitelist.java:56)
	at …
	at WorkflowScript.run(WorkflowScript:1)
	at …
Finished: FAILURE
Change By: Jesse Glick
Status: Open Resolved
Resolution: Cannot Reproduce

jglick@cloudbees.com (JIRA)

unread,
Feb 1, 2017, 4:51:01 PM2/1/17
to jenkinsc...@googlegroups.com
Jesse Glick commented on Bug JENKINS-41189
 
Re: [Pipeline] Some non-CPS transformable code will not throw errors

Note that this check only happens in sandbox mode currently.

ssutherland@ea.com (JIRA)

unread,
Feb 1, 2017, 5:56:01 PM2/1/17
to jenkinsc...@googlegroups.com

What is the reason for this check not occurring in non-sandbox mode? If the CPS transformation isnt going to happen either way, I still need to know about it even if I'm not using the sandbox

jglick@cloudbees.com (JIRA)

unread,
Feb 15, 2017, 2:37:01 PM2/15/17
to jenkinsc...@googlegroups.com

What is the reason for this check not occurring in non-sandbox mode?

Because that is where the current implementation lies; there is no such hook without a sandbox.

Reply all
Reply to author
Forward
0 new messages