Quantcast

[JIRA] (JENKINS-15368) Deadlock: View.getACL → View.getProperties vs. ListView.doCreateItem → Jenkins.save

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-15368) Deadlock: View.getACL → View.getProperties vs. ListView.doCreateItem → Jenkins.save

JIRA noreply@jenkins-ci.org
Issue Type: Bug Bug
Assignee: Unassigned
Components: core
Created: 01/Oct/12 2:57 PM
Description:

Encountered repeated deadlocks between a thread handling GET /view/something/:

at hudson.model.View.getProperties(View.java:258)
- waiting to lock <0x00000000c944da28> (a hudson.plugins.view.dashboard.Dashboard)
at <some AuthorizationStrategy>.getACL(…)
at hudson.model.View.getACL(View.java:495)
at hudson.model.View.hasPermission(View.java:503)
at hudson.model.ViewGroupMixIn.getViews(ViewGroupMixIn.java:115)
at jenkins.model.Jenkins.getViews(Jenkins.java:1406)
- locked <0x00000000c7e605f8> (a hudson.model.Hudson)
…

and a thread handling POST /view/somethingelse/createItem:

at jenkins.model.Jenkins.save(Jenkins.java:2551)
- waiting to lock <0x00000000c7e605f8> (a hudson.model.Hudson)
at hudson.model.ListView.doCreateItem(ListView.java:202)
- locked <0x00000000c944da28> (a hudson.plugins.view.dashboard.Dashboard)
…

Unclear whether the authorization plugin should be restricted in what it may call during getACL (in this case there is no apparent way to avoid using View.getProperties), but that aside:

  1. Jenkins.getViews is synchronized for no clear reason. Other methods working on viewGroupMixIn such as addView are not; and views is already a CopyOnWriteArrayList which ought to thread-safe.
  2. View.getProperties synchronizes on this when it could use a finer-grained lock.
Environment: 1.466.2 with custom AuthorizationStrategy plugin (CloudBees RBAC).
Project: Jenkins
Labels: threads
Priority: Major Major
Reporter: Jesse Glick
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-15368) Deadlock: View.getACL → View.getProperties vs. ListView.doCreateItem → Jenkins.save

JIRA noreply@jenkins-ci.org
Change By: Jesse Glick (01/Oct/12 2:57 PM)
Assignee: Jesse Glick
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-15368) Deadlock: View.getACL → View.getProperties vs. ListView.doCreateItem → Jenkins.save

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org
Jesse Glick commented on Bug JENKINS-15368

Problem #1 already fixed in d2699b4.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-15368) Deadlock: View.getACL → View.getProperties vs. ListView.doCreateItem → Jenkins.save

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org

Code changed in jenkins
User: Jesse Glick
Path:
changelog.html
core/src/main/java/hudson/model/View.java
http://jenkins-ci.org/commit/jenkins/7a552e8e0209043e6b03951699dcbc16dfbbe082
Log:
[FIXED JENKINS-15368] Make View.getProperties synchronize on a safer monitor.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-15368) Deadlock: View.getACL → View.getProperties vs. ListView.doCreateItem → Jenkins.save

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org
Change By: SCM/JIRA link daemon (01/Oct/12 3:35 PM)
Status: Open Resolved
Resolution: Fixed
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-15368) Deadlock: View.getACL → View.getProperties vs. ListView.doCreateItem → Jenkins.save

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org
dogfood commented on Bug JENKINS-15368

Integrated in jenkins_main_trunk #1962
[FIXED JENKINS-15368] Make View.getProperties synchronize on a safer monitor. (Revision 7a552e8e0209043e6b03951699dcbc16dfbbe082)

Result = SUCCESS
Jesse Glick : 7a552e8e0209043e6b03951699dcbc16dfbbe082
Files :

  • core/src/main/java/hudson/model/View.java
  • changelog.html
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Loading...