Kohsuke Kawaguchi created JENKINS-13581:
-------------------------------------------
Summary: Race condition between RetentionStrategy and Executor
Key: JENKINS-13581
URL: https://issues.jenkins-ci.org/browse/JENKINS-13581
Project: Jenkins
Issue Type: Bug
Components: core
Reporter: Kohsuke Kawaguchi
{{RetentionStrategy}} doesn't really get any stop-the-world consistent view of
the world when it makes a decision to terminate the node, and from there to the
actual termination of the node, the rest of the world can also change. More
specifically, an {{Executor}} can go from idle to busy.
This ends up aborting the build that's newly started, as the node is removed
and executors interrupted. This isn't a fatal problem, but it's an annoyance.
Because we generally do not restrict how {{RetentionStrategy}} makes a
decision, we cannot really stop the world for it. But it seems prudent to hold
executors still (at least no idle->busy transition) while the check is done ---
either the core will do so before calling into the {{check}} method, or make it
easy for {{RetentionStrategy}} to do so if it wants.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira