Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 454286

Summary: WorkspaceServlet should not be synchronizing all workspace accesses
Product: [ECD] Orion Reporter: John Arthorne <john.arthorne>
Component: ServerAssignee: John Arthorne <john.arthorne>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: ahunter.eclipse, pwebster
Version: unspecified   
Target Milestone: 8.0   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description John Arthorne CLA 2014-12-05 13:44:57 EST
WorkspaceServlet synchronizes all accesses to workspace metadata. This is too coarse-grained - only one user can access workspace metadata at a time. Now that we have locking at the file level this should not be needed. 

Also if metadata access needs to be serialized, then this isn't accomplishing that for a multi-instance Orion cluster environment. So it's not helping us.
Comment 1 John Arthorne CLA 2014-12-05 22:36:40 EST
Fix:

http://git.eclipse.org/c/orion/org.eclipse.orion.server.git/commit/?id=3422ce293090e973838edbb681e23ec64e30d84d

Need to do a bit more review. For example is there a race condition if multiple concurrent requests come from same user to create a workspace? What if it is the first ever access for that user?
Comment 2 John Arthorne CLA 2014-12-08 15:17:07 EST
I have left the synchronization in place for workspace creation, as I believe there is otherwise a race condition if two requests attempt to create the same workspace concurrently. We would need to lock at the user level to handle that. However removing sync for workspace *access* is a significant improvement so I will leave the current patch in master.