-
-
Notifications
You must be signed in to change notification settings - Fork 8.9k
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
[JENKINS-68122] Avoid deadlock involving RingBufferLogHandler.LogRecordRef
class loading (II)
#6446
Conversation
…ordRef` class loading (II)
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.
As explained in the bug, I have a slight preference for doing this in the static initializer than in the constructor as in basil@38efb0b, but I do not feel strongly about this.
I have a strong preference for adding an explanatory comment (e.g., the "Preload the LogRecordRef
class…" comment from basil@38efb0b), as without such a comment future readers may not understand the reason why this is necessary.
Just file your commit then. Happy to approve it. Most important is field validation that whichever fix works. |
(and getting this in trunk soon so that it makes it into 2.332.3) |
Agreed that there is no need to delay this further based on a mild preference. I am not going to file a PR. It would be nice to get a response to my feedback regarding the explanatory comment. |
Just filed your commit as #6449—simpler than negotiating text of a comment. |
My point is that the comment should not only state what we are doing (i.e., preloading the class) but also why we are doing it (i.e., to avoid a deadlock), because in my opinion this is not obvious and therefore likely to be misunderstood in the future by someone without the context that we now have. |
True, it is not obvious and going into |
The operative word in that example is "because", indicating that causal reasoning is about to follow. I suggest we add that causal reasoning to a comment in this PR. |
#6449 was specifically tested so let us go with that. |
See JENKINS-68122. Amends #6018 + #6044. Alternative to #6444.
Effectiveness still being validated. Suggested by @roband7 (hope the GitHub and Jira ids align). I think the problem is in
jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java
Lines 1062 to 1092 in 71d5dd5
basil@38efb0b is another variant.
jenkinsci/remoting#527 might offer a hotfix for those who cannot easily change the core (controller) version.
Proposed changelog entries
Maintainer checklist
Before the changes are marked as
ready-for-merge
:Proposed changelog entries
are accurate, human-readable, and in the imperative moodupgrade-guide-needed
label is set and there is aProposed upgrade guidelines
section in the PR title. (example)lts-candidate
to be considered (see query).