[JIRA] (JENKINS-54940) brokenBuildSuspects() returns empty list in pipeline script

2 views
Skip to first unread message

joerg.baeuerle@berthold.com (JIRA)

unread,
Nov 29, 2018, 7:06:03 AM11/29/18
to jenkinsc...@googlegroups.com
Joerg Baeuerle created an issue
 
Jenkins / Bug JENKINS-54940
brokenBuildSuspects() returns empty list in pipeline script
Issue Type: Bug Bug
Assignee: David van Laatum
Components: email-ext-plugin
Created: 2018-11-29 12:05
Environment: System Properties
Name ↓

Value
awt.toolkit sun.awt.windows.WToolkit
BUILD_TIMESTAMP 20181129_123416
executable-war C:\Program Files (x86)\Jenkins\jenkins.war
file.encoding Cp1252
file.encoding.pkg sun.io
file.separator \
hudson.lifecycle hudson.lifecycle.WindowsServiceLifecycle
java.awt.graphicsenv sun.awt.Win32GraphicsEnvironment
java.awt.headless true
java.awt.printerjob sun.awt.windows.WPrinterJob
java.class.path C:\Program Files (x86)\Jenkins\jenkins.war
java.class.version 52.0
java.endorsed.dirs C:\Program Files (x86)\Jenkins\jre\lib\endorsed
java.ext.dirs C:\Program Files (x86)\Jenkins\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
java.home C:\Program Files (x86)\Jenkins\jre
java.library.path C:\Program Files (x86)\Jenkins\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseSVN\bin;C:\bin;C:\Program Files\7-Zip;C:\Program Files\dotnet\;C:\Program Files (x86)\SEGGER\JLink_V614h;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\intelFPGA_lite\17.1\quartus\bin64;.
java.runtime.name Java(TM) SE Runtime Environment
java.runtime.version 1.8.0_144-b01
java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 1.8
java.vendor Oracle Corporation
java.vendor.url http://java.oracle.com/
java.vendor.url.bug http://bugreport.sun.com/bugreport/
java.version 1.8.0_144
java.vm.info mixed mode
java.vm.name Java HotSpot(TM) Client VM
java.vm.specification.name Java Virtual Machine Specification
java.vm.specification.vendor Oracle Corporation
java.vm.specification.version 1.8
java.vm.vendor Oracle Corporation
java.vm.version 25.144-b01
jenkins.branch.WorkspaceLocatorImpl.PATH_MAX 25
jetty.git.hash 27208684755d94a92186989f695db2d7b21ebc51
jna.loaded true
line.separator
mail.smtp.sendpartial true
mail.smtps.sendpartial true
os.arch x86
os.name Windows Server 2012 R2
os.version 6.3
path.separator ;
sun.arch.data.model 32
sun.awt.enableExtraMouseButtons true
sun.boot.class.path C:\Program Files (x86)\Jenkins\jre\lib\resources.jar;C:\Program Files (x86)\Jenkins\jre\lib\rt.jar;C:\Program Files (x86)\Jenkins\jre\lib\sunrsasign.jar;C:\Program Files (x86)\Jenkins\jre\lib\jsse.jar;C:\Program Files (x86)\Jenkins\jre\lib\jce.jar;C:\Program Files (x86)\Jenkins\jre\lib\charsets.jar;C:\Program Files (x86)\Jenkins\jre\lib\jfr.jar;C:\Program Files (x86)\Jenkins\jre\classes
sun.boot.library.path C:\Program Files (x86)\Jenkins\jre\bin
sun.cpu.endian little
sun.cpu.isalist pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
sun.desktop windows
sun.io.unicode.encoding UnicodeLittle
sun.java.command C:\Program Files (x86)\Jenkins\jenkins.war --httpPort=8080 --webroot=C:\Program Files (x86)\Jenkins\war
sun.java.launcher SUN_STANDARD
sun.jnu.encoding Cp1252
sun.management.compiler HotSpot Client Compiler
sun.os.patch.level
svnkit.http.methods Digest,Basic,NTLM,Negotiate
svnkit.ssh2.persistent false
user.country US
user.country.format DE
user.dir C:\Program Files (x86)\Jenkins
user.language en
user.language.format de
user.script
user.timezone Europe/Berlin
user.variant
Environment Variables
Name ↓

Value
ALLUSERSPROFILE C:\ProgramData
BASE C:\Program Files (x86)\Jenkins
CommonProgramFiles C:\Program Files (x86)\Common Files
CommonProgramFiles(x86) C:\Program Files (x86)\Common Files
CommonProgramW6432 C:\Program Files\Common Files
ComSpec C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK NO
GHS_LMHOST @license2
IEPATH C:\GHS\v800423\v850e
JENKINS_HOME C:\Program Files (x86)\Jenkins
LB47xCU_DeviceSimulationPath C:\ws\_master-URVJ6YJDASKXB7HPV\DuoXpert_CU\_DeviceSimulation
NUMBER_OF_PROCESSORS 8
OS Windows_NT
Path C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseSVN\bin;C:\bin;C:\Program Files\7-Zip;C:\Program Files\dotnet\;C:\Program Files (x86)\SEGGER\JLink_V614h;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\intelFPGA_lite\17.1\quartus\bin64
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE x86
PROCESSOR_ARCHITEW6432 AMD64
PROCESSOR_IDENTIFIER Intel64 Family 6 Model 37 Stepping 1, GenuineIntel
PROCESSOR_LEVEL 6
PROCESSOR_REVISION 2501
ProgramData C:\ProgramData
ProgramFiles C:\Program Files (x86)
ProgramFiles(x86) C:\Program Files (x86)
ProgramW6432 C:\Program Files
PSModulePath C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC C:\Users\Public
QUARTUS_ROOTDIR C:\intelFPGA_lite\17.1\quartus
SERVICE_ID Jenkins
SOPC_KIT_NIOS2 C:\intelFPGA_lite\17.1\nios2eds
SystemDrive C:
SystemRoot C:\Windows
VCTargetsPath C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
VS120COMNTOOLS C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
VS140COMNTOOLS C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
windir C:\Windows
WINSW_EXECUTABLE C:\Program Files (x86)\Jenkins\jenkins.exe
WINSW_SERVICE_ID Jenkins
Plugins
Name ↓

Version

Enabled
ace-editor 1.1 true
analysis-collector 1.52 true
analysis-core 1.95 true
ant 1.9 true
antisamy-markup-formatter 1.5 true
apache-httpcomponents-client-4-api 4.5.5-3.0 true
authentication-tokens 1.3 true
badge 1.6 true
blueocean 1.9.0 true
blueocean-autofavorite 1.2.2 true
blueocean-bitbucket-pipeline 1.9.0 true
blueocean-commons 1.9.0 true
blueocean-config 1.9.0 true
blueocean-core-js 1.9.0 true
blueocean-dashboard 1.9.0 true
blueocean-display-url 2.2.0 true
blueocean-events 1.9.0 true
blueocean-git-pipeline 1.9.0 true
blueocean-github-pipeline 1.9.0 true
blueocean-i18n 1.9.0 true
blueocean-jira 1.9.0 true
blueocean-jwt 1.9.0 true
blueocean-personalization 1.9.0 true
blueocean-pipeline-api-impl 1.9.0 true
blueocean-pipeline-editor 1.9.0 true
blueocean-pipeline-scm-api 1.9.0 true
blueocean-rest 1.9.0 true
blueocean-rest-impl 1.9.0 true
blueocean-web 1.9.0 true
bouncycastle-api 2.17 true
branch-api 2.0.20 true
build-monitor-plugin 1.12+build.201809061734 true
build-timeout 1.19 true
build-timestamp 1.0.3 true
built-on-column 1.1 true
cloudbees-bitbucket-branch-source 2.2.15 true
cloudbees-folder 6.7 true
cobertura 1.13 true
code-coverage-api 1.0.5 true
command-launcher 1.2 true
conditional-buildstep 1.3.6 true
copyartifact 1.41 true
credentials 2.1.18 true
credentials-binding 1.17 true
dashboard-view 2.10 true
display-url-api 2.3.0 true
docker-commons 1.13 true
docker-workflow 1.17 true
durable-task 1.28 true
email-ext 2.63 true
envinject 2.1.6 true
envinject-api 1.5 true
external-monitor-job 1.7 true
favorite 2.3.2 true
FilteredReverseBuildTrigger 0.0.2 true
git 3.9.1 true
git-client 2.7.4 true
git-server 1.7 true
github 1.29.3 true
github-api 1.92 true
github-branch-source 2.4.1 true
gradle 1.29 true
greenballs 1.15 true
groovy-postbuild 2.4.3 true
handlebars 1.1.1 true
handy-uri-templates-2-api 2.1.6-1.0 true
htmlpublisher 1.17 true
http_request 1.8.22 true
jackson2-api 2.9.7.1 true
javadoc 1.4 true
jdk-tool 1.1 true
jenkins-design-language 1.9.0 true
jenkins-multijob-plugin 1.31 true
jira 3.0.5 true
job-restrictions 0.8 true
jquery-detached 1.2.1 true
jsch 0.1.54.2 true
junit 1.26.1 true
ldap 1.20 true
lockable-resources 2.3 true
mailer 1.22 true
mapdb-api 1.0.9.0 true
matrix-auth 2.3 true
matrix-project 1.13 true
maven-plugin 3.1.2 true
mercurial 2.4 true
momentjs 1.1.1 true
nunit 0.23 true
pam-auth 1.4 true
parameterized-trigger 2.35.2 true
pipeline-build-step 2.7 true
pipeline-graph-analysis 1.9 true
pipeline-input-step 2.8 true
pipeline-milestone-step 1.3.1 true
pipeline-model-api 1.3.2 true
pipeline-model-declarative-agent 1.1.1 true
pipeline-model-definition 1.3.2 true
pipeline-model-extensions 1.3.2 true
pipeline-rest-api 2.10 true
pipeline-stage-step 2.3 true
pipeline-stage-tags-metadata 1.3.2 true
pipeline-stage-view 2.10 true
pipeline-utility-steps 2.2.0 true
plain-credentials 1.4 true
promoted-builds 3.2 true
pubsub-light 1.12 true
resource-disposer 0.12 true
run-condition 1.2 true
scm-api 2.3.0 true
script-security 1.48 true
sloccount 1.24 true
sse-gateway 1.16 true
ssh-credentials 1.14 true
ssh-slaves 1.29.1 true
structs 1.17 true
subversion 2.12.1 true
timestamper 1.8.10 true
token-macro 2.5 true
trilead-api 1.0.1 true
variant 1.1 true
vectorcast-coverage 0.10 true
vectorcast-execution 0.36 true
warnings 4.68 true
windows-slaves 1.3.1 true
workflow-aggregator 2.6 true
workflow-api 2.33 true
workflow-basic-steps 2.12 true
workflow-cps 2.60 true
workflow-cps-global-lib 2.12 true
workflow-durable-task-step 2.26 true
workflow-job 2.29 true
workflow-multibranch 2.20 true
workflow-scm-step 2.7 true
workflow-step-api 2.16 true
workflow-support 2.22 true
ws-cleanup 0.36 true
xunit 2.3.1 true
Priority: Critical Critical
Reporter: Joerg Baeuerle

I created an empty git repository, added the following Jenkinsfile and created a Multibranch Pipeline for said repository:

node
{
    try
    {
        stage('Build') 
        {
            echo 'starting build...'
            // foobar // uncomment to make it fail!!!
            echo 'build finished'
        }
    }
    catch(any)
    {
        currentBuild.result = 'FAILURE'

        emailext body: 'Someone broke your build.', mimeType: 'text/html', to: 'deve...@mycompany.com', subject: 'Someone broke $PROJECT_NAME - Build $BUILD_NUMBER: $BUILD_STATUS'

        emailext body: 'You broke the build!', mimeType: 'text/html', recipientProviders: [brokenBuildSuspects()], subject: 'You broke $PROJECT_NAME - Build $BUILD_NUMBER: $BUILD_STATUS'
        throw any
    }

}

When the pipeline is run, the build succeeds. Then I uncomment the line "foobar", commit the repo and the triggered build fails with the following console output:

Branch event
Obtained Jenkinsfile from c49176e59c4d55c9f08c43b0994ea883e42d4c81
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on Jenkins in c:\ws\_master-DDKNEXKCSJHP2UWJJ
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
starting build...
[Pipeline] }
[Pipeline] // stage
[Pipeline] emailext
Sending email to: deve...@mycompany.com
[Pipeline] emailext
An attempt to send an e-mail to empty list of recipients, ignored.
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
[Bitbucket] Notifying commit build result
[Bitbucket] Build result notified
groovy.lang.MissingPropertyException: No such property: foobar for class: groovy.lang.Binding
	at groovy.lang.Binding.getVariable(Binding.java:63)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:264)
	at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:288)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:292)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:268)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:268)
	at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
	at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
	at WorkflowScript.run(WorkflowScript:8)
	at ___cps.transform___(Native Method)
	at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)
	at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
	at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)
	at sun.reflect.GeneratedMethodAccessor336.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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:83)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:129)
	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:268)
	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$101(SandboxContinuable.java:34)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.lambda$run0$0(SandboxContinuable.java:59)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:58)
	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:182)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Finished: FAILURE

As a result the first email to deve...@mycompany.com is sent, but not the second mail to the suspects, because brokenBuildSuspects() seems to return an empty list. Likewise, culprits() returns an empty list, too.

What am I doing wrong?

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

joerg.baeuerle@berthold.com (JIRA)

unread,
Nov 30, 2018, 3:32:01 AM11/30/18
to jenkinsc...@googlegroups.com

joerg.baeuerle@berthold.com (JIRA)

unread,
Dec 18, 2018, 2:48:02 AM12/18/18
to jenkinsc...@googlegroups.com

Any update on this? The mail notification feature for broken-build-suspects is crucial for us.

 

DuAell@gmail.com (JIRA)

unread,
Mar 4, 2019, 8:28:01 AM3/4/19
to jenkinsc...@googlegroups.com

slide.o.mix@gmail.com (JIRA)

unread,
Jul 17, 2019, 10:44:03 AM7/17/19
to jenkinsc...@googlegroups.com
Change By: Alex Earl
Status: Open Fixed but Unreleased
Assignee: David van Laatum Alex Earl
Resolution: Fixed
Reply all
Reply to author
Forward
0 new messages