Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [buckminster-dev] Hanging Resolution Process

Hi Filip,
Thanks for the complete trace. It helped me see the problem. Apparently the SVN client adapter is serializing everything (a pity, but not much we can do about). The deadlock occurs when a resolver encounters a cquery and starts a new resolve process. Meanwhile, it keeps the reader that discovered the cquery open. The new resolver tries to acquire new readers (or version finders) and fails of course.

I've added a fix for this and checked it in to our CVS. Let me know how it works.

Regards,
Thomas Hallgren


Filip Hrbek wrote:
Hi,
I tried to resolve a more complex query but the process hangs, every time at the same status. I ran the BM in the debug mode and waited until it hang. This is the stack trace at the moment it hangs: Eclipse Application [Eclipse Application] org.eclipse.core.launcher.Main at localhost:1749 (Suspended) System Thread [Finalizer] (Suspended) System Thread [Reference Handler] (Suspended) Thread [main] (Suspended) System Thread [Signal Dispatcher] (Suspended) Thread [Framework Event Dispatcher] (Suspended) Thread [Start Level Event Dispatcher] (Suspended) Thread [Worker-0] (Suspended) Thread [Worker-1] (Suspended) Thread [Worker-2] (Suspended) Object.wait(long) line: not available [native method] ReentrantLock(Object).wait() line: not available ReentrantLock.acquire() line: 47 OperationManager.beginOperation(ISVNClientAdapter) line: 78 SvnSession.<init>(String, String, String) line: 162 SvnRemoteFileReader.<init>(IReaderType, ProviderMatch) line: 98 SvnReaderType.getReader(ProviderMatch, IProgressMonitor) line: 34 ProviderMatch.getReader(IProgressMonitor) line: 123 EclipseComponentType(AbstractComponentType).getResolution(ProviderMatch, IProgressMonitor) line: 45 ResourceMap.resolve(NodeQuery, IProgressMonitor) line: 116 ResourceMapResolver.innerResolve(NodeQuery, IProgressMonitor) line: 195 ResolverNodeWithJob.resolve(IProgressMonitor) line: 190 ResolverNodeWithJob.run(IProgressMonitor) line: 81 ResolverNodeWithJob$NodeResolutionJob.run(IProgressMonitor) line: 50 Worker.run() line: 58 Thread [Timer-0] (Suspended) Object.wait(long) line: not available [native method] TaskQueue(Object).wait() line: not available TimerThread.mainLoop() line: not available TimerThread.run() line: not available Thread [Worker-3] (Suspended) Object.wait(long) line: not available [native method] ReentrantLock(Object).wait() line: not available ReentrantLock.acquire() line: 47 OperationManager.beginOperation(ISVNClientAdapter) line: 78 VersionFinder(SvnSession).<init>(String, String, String) line: 162 VersionFinder.<init>(String) line: 34 SvnReaderType.getVersionFinder(Provider, NodeQuery, IProgressMonitor) line: 41 Provider.findMatch(NodeQuery, MultiStatus, IProgressMonitor) line: 175 SearchPath.getProvider(NodeQuery, List<Provider>, MultiStatus, IProgressMonitor) line: 90 ResourceMap.resolve(NodeQuery, IProgressMonitor) line: 109 ResourceMapResolver.innerResolve(NodeQuery, IProgressMonitor) line: 195 ResolverNodeWithJob.resolve(IProgressMonitor) line: 190 ResolverNodeWithJob.run(IProgressMonitor) line: 81 ResolverNodeWithJob$NodeResolutionJob.run(IProgressMonitor) line: 50 Worker.run() line: 58 Thread [Worker-4] (Suspended) Object.wait(long) line: not available [native method] ReentrantLock(Object).wait() line: not available ReentrantLock.acquire() line: 47 OperationManager.beginOperation(ISVNClientAdapter) line: 78 VersionFinder(SvnSession).<init>(String, String, String) line: 162 VersionFinder.<init>(String) line: 34 SvnReaderType.getVersionFinder(Provider, NodeQuery, IProgressMonitor) line: 41 Provider.findMatch(NodeQuery, MultiStatus, IProgressMonitor) line: 175 SearchPath.getProvider(NodeQuery, List<Provider>, MultiStatus, IProgressMonitor) line: 90 ResourceMap.resolve(NodeQuery, IProgressMonitor) line: 109 ResourceMapResolver.innerResolve(NodeQuery, IProgressMonitor) line: 195 ResolverNodeWithJob.resolve(IProgressMonitor) line: 190 ResolverNodeWithJob.run(IProgressMonitor) line: 81 ResolverNodeWithJob$NodeResolutionJob.run(IProgressMonitor) line: 50 Worker.run() line: 58 Thread [Worker-5] (Suspended) Object.wait(long) line: not available [native method] ReentrantLock(Object).wait() line: not available ReentrantLock.acquire() line: 47 OperationManager.beginOperation(ISVNClientAdapter) line: 78 VersionFinder(SvnSession).<init>(String, String, String) line: 162 VersionFinder.<init>(String) line: 34 SvnReaderType.getVersionFinder(Provider, NodeQuery, IProgressMonitor) line: 41 Provider.findMatch(NodeQuery, MultiStatus, IProgressMonitor) line: 175 SearchPath.getProvider(NodeQuery, List<Provider>, MultiStatus, IProgressMonitor) line: 90 ResourceMap.resolve(NodeQuery, IProgressMonitor) line: 109 ResourceMapResolver.innerResolve(NodeQuery, IProgressMonitor) line: 195 ResolverNodeWithJob.resolve(IProgressMonitor) line: 190 ResolverNodeWithJob.run(IProgressMonitor) line: 81 ResolverNodeWithJob$NodeResolutionJob.run(IProgressMonitor) line: 50 Worker.run() line: 58 C:\Program Files\Java\jre1.5.0_10\bin\javaw.exe (9.2.2007 0:45:26) Any idea? Regards
  Filip Hrbek



Back to the top