Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Not A Defect
-
Jenkins version: 2.121.1
Java version: 1.8.171
workflow-job version: 2.21
workflow-multibranch: 2.19
linux version: ubuntu 16
Description
Hi guys,
I have a complex workflow with multiple stage and step (some of them run in parallel).
All worked fine until last month.
Now when I launch my job in different github branch (with a multiple pipeline job), I get the following error (not every time)
java.io.NotSerializableException: org.jenkinsci.plugins.workflow.job.WorkflowJob
Here are steps of the stage which fails:
Stage : Start - (13 sec in block) Configuration Success
Configuration - (11 sec in block) Success
Shell Script - (1.8 sec in self) mkdir -p logs cache/container cache/dev cache/test Console Output Success
Shell Script - (1.7 sec in self) cp alk_service_auth/application/config/parameters_test.yml.dist alk_service_auth/application/config/parameters_test.yml ||: Console Output
Success
Bind credentials to variables : Start - (6.6 sec in block) Console Output Success
Bind credentials to variables : Body : Start - (4.2 sec in block) Success
Shell Script - (1.3 sec in self) Console Output Success
Shell Script - (1.7 sec in self) sed -i s/DB_SCHEMA/alk_auth_b1267c9d/g alk_service_auth/application/config/parameters_test.yml Console Output Success
Stage : Start - (4 min 13 sec in block) Build & Test Success
Build & Test - (4 min 11 sec in block) Success
Verify if file exists in workspace - (1.7 sec in self) /var/www/service-auth.alkemics.com/shared/env Success
Shell Script - (1.7 sec in self) Console Output Success
Shell Script - (14 sec in self) /var/www/service-auth.alkemics.com/shared/env/bin/pip install -e .[test] --process-dependency-links Console Output Success
Shell Script - (3.3 sec in self) /var/www/service-auth.alkemics.com/shared/env/bin/pip check Console Output Success
Shell Script - (2.1 sec in self) Console Output Success
Shell Script - (2.8 sec in self) Console Output Success
Shell Script - (3.6 sec in self) Console Output Success
Shell Script - (4.4 sec in self) /var/www/service-auth.alkemics.com/shared/env/bin/flake8 alk_service_auth Console Output Success
Shell Script - (3 sec in self) Console Output Success
Shell Script - (3 min 21 sec in self) /var/www/service-auth.alkemics.com/shared/env/bin/nosetests --nologcapture --verbose --with-xunit --xunit-file=xunit.xml
alk_service_auth Console Output Success
Shell Script - (6.2 sec in self) Console Output Success
Shell Script - (2.2 sec in self) Console Output Success
Shell Script - (1.7 sec in self) Console Output Success
Error signal - (0.39 sec in self) Python unit tests failed: java.io.NotSerializableException: org.jenkinsci.plugins.workflow.job.WorkflowJob Failed
Print Message - (1.6 sec in self) hudson.AbortException: Python unit tests failed: java.io.NotSerializableException: org.jenkinsci.plugins.workflow.job.WorkflowJob
It cuts unit tests step without obvious reasons.
Do you have any idea about it ?
kiva I think that it is something in your Pipeline library. " Python unit tests failed" ... there is no such text patterns in the Jenkins codebase. My guess is that datadog.endStep() is a Pipeline library method, which accesses the WorkflowJob class using whitelisted Java API and saves it to a local variable. This logic happens in a method without NonCPS annotation, so Pipeline tries to save the context and legitimately fails since the class must not be serialized in such way.
Please check your Pipeline lib to verify my theory