Community
Participate
Working Groups
Build M1+ VM: Sun 1.4.1 B1.4 While running the JDT/UI test cases the VM running the tests ended up in an end- less loop in the IndexManager. The stack trace looks as follows: EclipseRuntimeLauncher at localhost:11146 System Thread [Finalizer] (Running) System Thread [Reference Handler] (Running) Thread [main] (Suspended) IndexManager(JobManager).performConcurrentJob(IJob, int, IProgressMonitor) line: 251 SearchEngine.searchAllTypeNames(IWorkspace, char[], char[], int, boolean, int, IJavaSearchScope, ITypeNameRequestor, int, IProgressMonitor) line: 592 JavaProjectHelper.performDummySearch() line: 130 JavaProjectHelper.delete(IJavaProject) line: 110 ClassPathDetectorTest.tearDown() line: 90 ClassPathDetectorTest(TestCase).runBare() line: 130 TestResult$1.protect() line: 106 TestResult.runProtected(Test, Protectable) line: 124 TestResult.run(TestCase) line: 109 ClassPathDetectorTest(TestCase).run(TestResult) line: 118 TestSuite.runTest(Test, TestResult) line: 208 TestSuite.run(TestResult) line: 203 ProjectTestSetup(TestDecorator).basicRun(TestResult) line: 22 TestSetup$1.protect() line: 19 TestResult.runProtected(Test, Protectable) line: 124 ProjectTestSetup(TestSetup).run(TestResult) line: 23 TestSuite.runTest(Test, TestResult) line: 208 TestSuite.run(TestResult) line: 203 ProjectTestSetup(TestDecorator).basicRun(TestResult) line: 22 TestSetup$1.protect() line: 19 TestResult.runProtected(Test, Protectable) line: 124 ProjectTestSetup(TestSetup).run(TestResult) line: 23 AutomatedSuite(TestSuite).runTest(Test, TestResult) line: 208 AutomatedSuite(TestSuite).run(TestResult) line: 203 RemotePluginTestRunner(RemoteTestRunner).runTests(String[], String) line: 393 RemotePluginTestRunner(RemoteTestRunner).run() line: 277 RemotePluginTestRunner.main(String[]) line: 30 UITestApplication.runEventLoop(Window$IExceptionHandler) line: 35 UITestApplication(Workbench).run(Object) line: 1382 InternalBootLoader.run(String, URL, String, String[], Runnable) line: 858 BootLoader.run(String, URL, String, String[]) line: 431 EclipseRuntimeLauncher.main(String[]) line: 24 System Thread [Signal Dispatcher] (Running) Thread [Java indexing] (Suspended) Object.wait(long) line: not available [native method] IndexManager(Object).wait() line: 426 IndexManager(JobManager).run() line: 350 Thread.run() line: 536 Thread [ReaderThread] (Running) Thread [Decoration] (Running) It seems that the Index Manager has stopped, but the the method IndexManager.currentJob() always returns the same job. In our case it was indexing /TestProject1/cf/mylib/Foo$FooInner$FooInnerInner.class Philippe, can you have a look at this. It might cause the DNF in JDT/UI tests we are faced with when executing the tests on the build machine.
To clarify: the end-less loops happens in the main thread in method IndexManager.performConcurrentJob
The test that hangs is org.eclipse.jdt.ui.tests.core.ClassPathDetectorTest.testClassFolder.
Kent - pls investigate There seems to be quite a few of these recently...
Reassigning. Jerome reproduced it in debugger. Regression added when converted to wait/notify model. When enabling the JobManager, it should notify all since it could have been set into #wait mode as soon as disabled (currentJob() answering null).
Fix released for integration.
Philippe, wil this be in tomorrows integration build ?
Yes, if all goes well, this should be in tomorrow's integration build.
Issue did not exist in 2.1 stream, since JobManager's implementation was only sleeping (vs. waiting).
*** Bug 38977 has been marked as a duplicate of this bug. ***
Dirk, note that because of bug 38951, we reverted our build contribution for today's build to last week contribution. So you might see the problem in today's build.
Thanks for pointing this out.
Verified