Bug 159237 - CVS Checkouts require the workspace rule and hence block operations on other projects
Summary: CVS Checkouts require the workspace rule and hence block operations on other ...
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Resources (show other bugs)
Version: 3.3   Edit
Hardware: All All
: P5 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Platform-Resources-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted
: 233665 (view as bug list)
Depends on: 128709
Blocks:
  Show dependency tree
 
Reported: 2006-09-29 03:46 EDT by Max Gilead CLA
Modified: 2019-09-06 15:32 EDT (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Max Gilead CLA 2006-09-29 03:46:00 EDT
CVS operations should not block all other types of operations. On slow links CVS operations can take eg. an hour or so. It is a blocking operation so eg. I can't be commiting changes in one project AND work on another one. This works fine if I open another Eclipse window so why not make it possible in one window? Interesting thing is, if I edit a file in Eclipse window where CVS operation is running, then open the file in another window, copy/paste changes to that window and save file 'changed' marker disappears in first window as well so it's not completely blocked. Beginners may not know about opening another window and be stuck with this problem.
Comment 1 Michael Valenta CLA 2006-09-29 08:39:09 EDT
In general CVS operations only lock the project that is being operated on. If you know of a particular scenario where this does not appear to be happening, please log a bug (or reopen this one) with the exact steps you took to produce the problem so we can try and reproduce it.
Comment 2 Max Gilead CLA 2006-11-12 17:01:56 EST
I noticed two new/different examples of blocking CVS behavior:

Example 1: start CVS project checkout and try to open another project while first one is being checked out. What I get is 'Open Project (Waiting)' task instead of opened project. The two projects are unrelated directly (they both use a library project in the same workspace).

Example 2: start CVS project checkout, edit and try to save a file in another project. A modal window blocking entire Eclipse interface pops up with all tasks waiting for CVS checkout to complete. This is what I described in comment #1 but now I don't know why but the solution I described above (open new window) doesn't work anymore -- it blocks just as in the same window.

Eclipse 3.3M3 Linux/GTK
Comment 3 Max Gilead CLA 2006-11-12 17:03:54 EST
I forgot to add that bug as described comment #1 was filed against Eclipse running on Windows XP.
Comment 4 Michael Valenta CLA 2006-11-15 11:04:10 EST
This is a restriction of the Resources plug-in. Creating projects requires the workspace lock.
Comment 5 Philipe Mulet CLA 2008-07-02 06:51:08 EDT
Slightly different usecase:
I noticed that when deleting a project in my workspace, if a checkout is in progress, the project deletion is entirely on hold.
I assume this comes from the scheduling rule on workspace root there.

Shouldn't the project deletion be allowed still to clear its content, and only take the root lock when about to discard the (empty) project folder ?
This would allow to better parallelize the operation...
Comment 6 Philipe Mulet CLA 2008-07-02 06:53:45 EDT
To clarify:
I think the parent lock is needed each time you intend to add/delete a child. What I was trying to say is that for folder/project deletion, emptying the folder doesn't require a lock on the parent already. So basically it could lock on the folder (which wouldn't collide with other project checkout any longer), and it would only grab the parent lock when physically deleting the (empty) folder.
Comment 7 John Arthorne CLA 2008-07-02 12:21:01 EDT
Philippe, I think you should open a separate bug for your case. The resources API doesn't lock the workspace root for project deletion, this must be coming from LTK or someone else calling delete.
Comment 8 Szymon Brandys CLA 2008-07-03 06:26:51 EDT
I raised bug 239404 for the LTK issue.

I debugged the example 2 from comment 2. In this case file save and cvs checkout use non-conflicting rules. However checkout blocks save snapshot operation which uses the workspace root rule. And save snapshot actually blocks file save.

So we have
cvs checkout (1) with the project rule
save snaphot (2) with the workspace root rule, blocked by cvs checkout
file save (3) with the file rule, non-conflicting with the cvs checkout rule

I came to the situation when (1) is running, (2) is blocked by (1), (3) is blocked by (2). And actually all workspace operations are blocked by the save snapshot operation.

Maybe we should pre-empt snapshot job in this case?
Comment 9 Szymon Brandys CLA 2008-07-03 06:27:58 EDT
I think that Resources is more appropriate place for it. 
Comment 10 Tomasz Zarna CLA 2008-07-15 08:38:32 EDT
*** Bug 233665 has been marked as a duplicate of this bug. ***
Comment 11 Eclipse Webmaster CLA 2019-09-06 15:32:16 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.