-
Bug
-
Resolution: Fixed
-
Minor
-
Jenkins ver. 1.580.3
Version Number Plug-In 1.4.1
Parameterized Trigger plugin 2.25
Recreation
Have 2 jobs:
Job 1 triggers Job 2 using the "Trigger/call builds on other projects"
Uses "Predefined parameter": test_loop=${test_loop}
Job 2 uses "Create a formatted version number" where:
"Environment Variable Name": test_loop
"Version Number Format String": ${test_loop}
Outcome
This causes the Job 2 to be stuck in an endless loop as test_loop keeps getting translated into ${test_loop} and tries to be translated again and again...
threadDump looks as follows:
Executor #0 for master : executing test_endless_loop #5 "Executor #0 for master : executing test_endless_loop #5" Id=116 Group=main RUNNABLE at org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder.formatVersionNumber(VersionNumberBuilder.java:341) at org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder.setUp(VersionNumberBuilder.java:364) ...
I stumbled on this by accident and this configuration should be avoided, but still it causes a job to be stuck in an endless loop which could not be stopped.
Stopping it was only by restarting the server.
Code changed in jenkins
User: Deniz Bahadir
Path:
src/main/java/org/jvnet/hudson/tools/versionnumber/VersionNumberCommon.java
http://jenkins-ci.org/commit/versionnumber-plugin/6fcbe020d318bccf33739344c4a063203f79b825
Log:
JENKINS-26729Fixed infinite loop.In some situations where an environment variable resolves to itself it
the plugin could get stuck in an infinite loop.
This is fixed now, because the plugin now checks for such situations and
then does not resolve such bad envionrment variables.