« Return to Thread: [Issue 1425] New - Deadlock when commiting and updating at same time

[Issue 1425] New - Deadlock when commiting and updating at same time

by heikoboettger :: Rate this Message:

Reply (Restricted by the Administrator) | View in Thread

http://subclipse.tigris.org/issues/show_bug.cgi?id=1425
                 Issue #|1425
                 Summary|Deadlock when commiting and updating at same time
               Component|subclipse
                 Version|1.8.x
                Platform|All
              OS/Version|All
                     URL|
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|core
             Assigned to|issues@subclipse
             Reported by|heikoboettger






------- Additional comments from heikoboettger@... Tue Jun 12 00:26:12 -0700 2012 -------
Sometimes I give the update command first and immediately after that the commit
command (I know there is no one else working on that package). If the update
has not finished before sending the commit, eclipse almost everytime never
finishes the update. There is no way to cancel the update. I never tried if
this is problem also occures if only one project is committed/updated at a
time.

Looking at the stack traces I can see the following two subclipse related
stacks:


Worker-522 [WAITING] CPU time: 0:00
java.lang.Object.wait(long)
java.lang.Object.wait()
org.tigris.subversion.subclipse.core.util.ReentrantLock.acquire()
org.tigris.subversion.subclipse.core.client.OperationManager.beginOperation
(ISVNClientAdapter)
org.tigris.subversion.subclipse.core.client.OperationManager.beginOperation
(ISVNClientAdapter, OperationProgressNotifyListener)
org.tigris.subversion.subclipse.core.commands.CheckinResourcesCommand$1.run
(IProgressMonitor)
org.tigris.subversion.subclipse.core.SVNProviderPlugin$5.run(IProgressMonitor)
org.eclipse.core.internal.resources.Workspace.run(IWorkspaceRunnable,
ISchedulingRule, int, IProgressMonitor)
org.eclipse.core.internal.resources.Workspace.run(IWorkspaceRunnable,
IProgressMonitor)
org.tigris.subversion.subclipse.core.SVNProviderPlugin.run(ISVNRunnable,
IProgressMonitor)
org.tigris.subversion.subclipse.core.commands.CheckinResourcesCommand.run
(IProgressMonitor)
org.tigris.subversion.subclipse.core.SVNTeamProvider.checkin(IResource[],
String, boolean, int, IProgressMonitor)
org.tigris.subversion.subclipse.ui.operations.CommitOperation.execute
(IProgressMonitor)
org.tigris.subversion.subclipse.ui.operations.SVNOperation.run(IProgressMonitor)
org.eclipse.team.internal.ui.actions.JobRunnableContext.run
(IRunnableWithProgress, IProgressMonitor)
org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspa
ce(IProgressMonitor)
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(IProgressMonitor)
org.eclipse.core.internal.jobs.Worker.run()


Worker-518 [WAITING] CPU time: 0:10
java.lang.Object.wait(long)
java.lang.Object.wait()
org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob,
IProgressMonitor, InternalJob, Thread)
org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob, IProgressMonitor)
org.eclipse.core.internal.jobs.ImplicitJobs.begin(ISchedulingRule,
IProgressMonitor, boolean)
org.eclipse.core.internal.jobs.JobManager.beginRule(ISchedulingRule,
IProgressMonitor)
org.eclipse.core.internal.resources.WorkManager.checkIn(ISchedulingRule,
IProgressMonitor)
org.eclipse.core.internal.resources.Workspace.prepareOperation(ISchedulingRule,
IProgressMonitor)
org.eclipse.core.internal.resources.Resource.refreshLocal(int, IProgressMonitor)
org.tigris.subversion.subclipse.core.client.OperationManager.endOperation
(boolean, Set)
org.tigris.subversion.subclipse.core.commands.UpdateResourcesCommand.run
(IProgressMonitor)
org.tigris.subversion.subclipse.ui.operations.UpdateOperation.execute
(SVNTeamProvider, IResource[], IProgressMonitor)
org.tigris.subversion.subclipse.ui.operations.RepositoryProviderOperation.execut
e(IProgressMonitor)
org.tigris.subversion.subclipse.ui.operations.SVNOperation.run(IProgressMonitor)
org.eclipse.team.internal.ui.actions.JobRunnableContext.run
(IRunnableWithProgress, IProgressMonitor)
org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspa
ce(IProgressMonitor)
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(IProgressMonitor)
org.eclipse.core.internal.jobs.Worker.run()

It looks like a lock ordering problem, between workspace lock and subclipse
lock.

------------------------------------------------------
http://subclipse.tigris.org/ds/viewMessage.do?dsForumId=1046&dsMessageId=2970533

To unsubscribe from this discussion, e-mail: [issues-unsubscribe@...].

 « Return to Thread: [Issue 1425] New - Deadlock when commiting and updating at same time