Bug 574752 - [test] infinite hang in CompletionTests2.testBug281598() when run in the IDE
Summary: [test] infinite hang in CompletionTests2.testBug281598() when run in the IDE
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 4.21   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 4.21 M2   Edit
Assignee: Andrey Loskutov CLA
QA Contact:
URL:
Whiteboard:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2021-07-08 17:23 EDT by Stephan Herrmann CLA
Modified: 2021-08-19 06:58 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Herrmann CLA 2021-07-08 17:23:08 EDT
(In reply to Eclipse Genie from bug 574613 comment #3)
> Gerrit change https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/182736 was
> merged to [master].
> Commit:
> http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/commit/
> ?id=09687d64ecd9d0744a335c284c64c99f491d7e64

Since this commit it is no longer possible to run CompletionTests2 in the IDE, because testBug281598() hangs infinitely at

Thread [main] (Suspended)	
	owns: RunnableLock  (id=741)	
	waiting for: IndexManager  (id=813)	
	Object.wait(long) line: not available [native method]	
	IndexManager(JobManager).performConcurrentJob(IJob, int, IProgressMonitor) line: 264	
	BasicSearchEngine.searchAllTypeNames(char[], int, char[], int, int, IJavaSearchScope, IRestrictedAccessTypeRequestor, int, IProgressMonitor) line: 1857	
	SearchEngine.searchAllTypeNames(char[], int, char[], int, int, IJavaSearchScope, TypeNameRequestor, int, IProgressMonitor) line: 1100	
	CompletionTests2(AbstractJavaModelTests).waitUntilIndexesReady() line: 3822	
	CompletionTests2.testBug281598() line: 5186	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 566	
	CompletionTests2(TestCase).runTest() line: 177	
	CompletionTests2(TestCase).runTest() line: 969	
	CompletionTests2(TestCase).runBare() line: 142	
	TestResult$1.protect() line: 122	
	TestResult.runProtected(Test, Protectable) line: 142	
	TestResult.run(TestCase) line: 125	
	CompletionTests2(TestCase).run(TestResult) line: 130	
	SuiteOfTestCases$Suite(TestSuite).runTest(Test, TestResult) line: 241	
	SuiteOfTestCases$Suite.runTest(Test, TestResult) line: 114	
	SuiteOfTestCases$Suite(TestSuite).run(TestResult) line: 236	
	SuiteOfTestCases$Suite.superRun(TestResult) line: 98	
	SuiteOfTestCases$Suite$1.protect() line: 86	
	TestResult.runProtected(Test, Protectable) line: 142	
	SuiteOfTestCases$Suite.run(TestResult) line: 95	
	SuiteMethod(JUnit38ClassRunner).run(RunNotifier) line: 90	
	JUnit4TestReference.run(TestExecution) line: 93	
	TestExecution.run(ITestReference[]) line: 40	
	RemotePluginTestRunner(RemoteTestRunner).runTests(String[], String, TestExecution) line: 529	
	RemotePluginTestRunner(RemoteTestRunner).runTests(TestExecution) line: 756	
	RemotePluginTestRunner(RemoteTestRunner).run() line: 452	
	RemotePluginTestRunner.main(String[]) line: 117	
	PlatformUITestHarness.lambda$0() line: 45	
	1918687611.run() line: not available	
	RunnableLock.run(Display) line: 40	
	UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 185	
	Display.runAsyncMessages(boolean) line: 5110	
	Display.readAndDispatch() line: 4596	
	PartRenderingEngine$5.run() line: 1158	
	Realm.runWithDefault(Realm, Runnable) line: 338	
	PartRenderingEngine.run(MApplicationElement, IEclipseContext) line: 1047	
	E4Workbench.createAndRunUI(MApplicationElement) line: 155	
	Workbench.lambda$3(Display, WorkbenchAdvisor, int[]) line: 644	
	1014555985.run() line: not available	
	Realm.runWithDefault(Realm, Runnable) line: 338	
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 551	
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 156	
	IDEApplication.start(IApplicationContext) line: 152	
	UITestApplication(NonUIThreadTestApplication).runApp(IApplication, IApplicationContext) line: 53	
	UITestApplication.runApp(IApplication, IApplicationContext) line: 47	
	UITestApplication(NonUIThreadTestApplication).start(IApplicationContext) line: 48	
	EclipseAppHandle.run(Object) line: 203	
	EclipseAppLauncher.runApplication(Object) line: 136	
	EclipseAppLauncher.start(Object) line: 104	
	EclipseStarter.run(Object) line: 401	
	EclipseStarter.run(String[], Runnable) line: 255	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 566	
	Main.invokeFramework(String[], URL[]) line: 654	
	Main.basicRun(String[]) line: 591	
	Main.run(String[]) line: 1462	
	Main.main(String[]) line: 1435
Comment 1 Andrey Loskutov CLA 2021-07-08 17:31:06 EDT
I assume CompletionTests2 requires indexer (because it uses search), see 574613 comment 12.

I wonder if this test is running in Gerrit?
Comment 2 Stephan Herrmann CLA 2021-07-09 04:03:50 EDT
(In reply to Andrey Loskutov from comment #1)
> I assume CompletionTests2 requires indexer (because it uses search), see
> 574613 comment 12.

It calls waitUntilIndexesReady() but whether or not this is essential for the test is not clear. See bug 281598 comment 8 ff.
 
> I wonder if this test is running in Gerrit?

It does. Perhaps on Jenkins it "benefits" from a side effect of some other test?
Comment 3 Eclipse Genie CLA 2021-07-11 06:34:37 EDT
New Gerrit change created: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/182959
Comment 5 Andrey Loskutov CLA 2021-07-12 03:26:01 EDT
Enabled indexer for CompletionTests2, as it was before (as the "disable" indexer code was non-functional).
Comment 6 Jay Arthanareeswaran CLA 2021-08-19 06:57:59 EDT
Verified for 4.21 M3 using build I20210818-1800