Bug 197350 - [search] Jobs stack in JobManager.performConcurentJob
Summary: [search] Jobs stack in JobManager.performConcurentJob
Status: VERIFIED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.4 M1   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-20 18:15 EDT by Konrad Kolosowski CLA
Modified: 2007-12-20 06:44 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Konrad Kolosowski CLA 2007-07-20 18:15:58 EDT
Product contains org.eclipse.jdt.core plug-in version 3.0.3 (3.0.2 with fixes in the maintenance branch).
Windows XP, Pentium 4 hyperthreaded.
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
Classic VM (build 1.4.2, J2RE 1.4.2 IBM Windows 32 build cn142-20050609 (JIT ena
bled: jitc))

User has large workspace (140 projects) with number of EJBs.  After series of steps they shut down the workbench and restart.
After restart the build gets stuck at 3%.  UI is responding but only until user tried to do anything that needs workspace.

The problem is not consistent - does not appear every time the scenario is repeated, but often and is considered a stopship for my product, as user needs to kill the VM.  After starting again they usually get into same state where build never finished.

I have full stacks from two different machines in the e-mail.  There does not seem to be any deadlock, but two threads constantly sleep inside org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurentJob

People that usually can reproduce the issue have tried running with 3.0.2 version of org.eclipse.jdt core plug-in and could not reproduce the issue
6 out of 6 times.  So this bug is considered a regression caused by one of the fixes on top of 3.0.2.

Thanks for help, trying to release a product next week.
Comment 1 Frederic Fusier CLA 2007-07-22 09:04:19 EDT
Konrad,
Would it be possible to activate the trace of JobManager by modifying following line of JDT/Core .options file:

# Reports background indexer activity: indexing, saving index file, index queries
org.eclipse.jdt.core/debug/indexmanager=true

This should help us to get more information during this freeze...
Comment 2 Konrad Kolosowski CLA 2007-07-23 14:35:06 EDT
I have asked people that can reproduce the problem, for debug output,
but we found out there is a code in our product that disables Java indexing.
This is much more likely cause of the issue, then a bug in JDT code.
Thank you.
Comment 3 Frederic Fusier CLA 2007-07-24 07:46:15 EDT
We currently consider indexing disabling as an invalid action from user as it's not an API method. Please reopen a specific bug if you get noticeable performance troubles while indexing files.
Comment 4 Konrad Kolosowski CLA 2007-07-24 08:14:29 EDT
Importing projects, autobuild, generation, publishing to a server (which generates web and ejb projects takes
48 minutes without disabling java indexing
44 minutes when java indexing disabled for most duration of autobuild.
=9% speedup
I have no details where the 9% is consumed.
Comment 5 Frederic Fusier CLA 2007-07-24 09:53:38 EDT
They are consumed by the indexing of the imported projects...

Indexing is time consuming because the job priority has a high value due to search all type name request done simultaneously in thread 'All Types Caching'. This thread has been removed in next version.
Comment 6 Konrad Kolosowski CLA 2007-07-25 14:25:24 EDT
Removing the code that disabled java indexing from our product,
resolved the issue (and number of other defects) completely.
Comment 7 Frederic Fusier CLA 2007-12-20 06:44:47 EST
Verified by user