-
Bug
-
Resolution: Fixed
-
Major
-
None
Create pipeline job that uses following Jenkinsfile via "Pipeline script from SCM":
pipeline { agent { label 'master' } stages { stage("Repro") { steps { script { sh "pwd" sh "ls -l" sh "if [ -e this_should_be_cleaned_up ]; then false; else true; fi" input(message: "Fake input to reproduce, please DO NOT proceed, just start another build of this job", parameters: [booleanParam(defaultValue: false, description: "", name: "Mocked choice")]) sh "touch this_should_be_cleaned_up" } } } } }
Perform following test:
- Start job, wait until it asks for input, DO NOT PROCEED
- Start the job again, it will go to input stage
- Proceed on both builds (by entering text in console)
- Start job again, wait until it asks for input, DO NOT PROCEED
- Start the job again it will immediately FAIL, because file "~jenkins/workspace/JOB_NAME@2/this_should_be_cleaned_up" was not deleted during the checkout stage
From now on, you can repeat steps 4 and 5, it will reproduce every time.
Different workspaces are used for the parallel jobs but 'JOB_NAME@2' is not cleaned up in this scenario.
Code changed in jenkins
User: Paul Allen
Path:
src/main/java/org/jenkinsci/plugins/p4/client/ClientHelper.java
http://jenkins-ci.org/commit/p4-plugin/9dd03e221cf9556f6cf942fd15b055c07ef366bd
Log:
Use Decoded URL path for local delete.
Local client syntax uses URL @ encoding, but the local filesystem needs
the decoded path.
JENKINS-45339