-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More concurrent modification exception avoidance #610
More concurrent modification exception avoidance #610
Conversation
…esources() Signed-off-by: Jim Klimov <[email protected]>
…sources Signed-off-by: Jim Klimov <[email protected]>
…urrentResourcesStatus() to iterate this.resources under a lock on this.syncResources Signed-off-by: Jim Klimov <[email protected]>
Signed-off-by: Jim Klimov <[email protected]>
Hi, may you pls try this changes |
Ok, will give that branch a shot. Not sure if I'd have much to tell until (if ever) it crashes, though :) |
That the reason, why it is still not merged. Because it runs in our environment, but it does not mean, that it runs elsewhere too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks so, that this changes are no more necessary
Closing for now (maybe forever) :) |
See #604, #601 and similar efforts.
This PR adds synchronization for operations done with LRM resources property, because during a Jenkins start with recent plugin version I've still occasionally got that ConcurrentModificationException. My best guess is that
freePostMortemResources()
(explicitly mentioned in the starting page stack trace) and perhapsdeleteNotExistingNodes()
locked horns.The XML mentioned a number of resources, all are
ephemeral=true
(probably saved with a graceful shutdown, then slated for deletion during start-up as no living jobs referenced them). On that system, there are no lockable resources defined persistently.Testing done
Deployed into the Jenkins instance that suffered the issue. It started and seems to work correctly (gotta run some builds that lock/unlock stuff, to be more sure), and cleaned away many of the ephemeral resources.
On one restart I saw two remaining (one claimed locked by a job that was aborted by the restart), on another one remained and did not disappear after I claimed and released it via UI.
Proposed upgrade guidelines
N/A
Localizations
Submitter checklist
@NoExternalUse
. In case it is used by non java code theUsed by {@code <panel>.jelly}
Javadocs are annotated.eval
to ease the future introduction of Content Security Policy (CSP) directives (see documentation).Maintainer checklist
Before the changes are marked as
ready-for-merge
:upgrade-guide-needed
label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).