Red Hat Bugzilla – Bug 154525
"Too many root sets" when using a lot of compiled plugins
Last modified: 2007-11-30 17:11:03 EST
Description of problem:
Eclipse crashes with the message "Too many root sets" from Boehm GC in libgcj.
Hundreds of precompiled plugins are loaded, which seems the most likely cause.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install a lot of plugins (meaning /usr/share/eclipse/plugins has 100-1000
2. Compile all them with gcj
3. Run Eclipse and use it
At unpredictable times, Eclipse crashes with the "Too many root sets".
Simply raising the MAX_ROOT_SETS constant should fix this; having a dynamically
sized table would be even better.
So this is a gcj problem, right?
If I'm correct, it is a gcj hard-coded limit that is configured to an inadequate
value for performing certain tasks with Eclipse.
Furthermore, I have noticed that exporting plugins with the PDE seems to trigger
Having non-precompiled plugins may also trigger this.
Is this a real problem? That is, are people going to encounter this in real use?
Well, I did, and it seems others could too, and that other complex Java
applications could hit this.
Furthermore the fix should be easy and only increase memory consumption in a
probably insignificant amount relative to memory used by bytecode and compiled code.
Okay, I just wanted to clarify this wasn't some weird test case.
Do I take it that every plugin is a separate jar file, and compiled to a
separate shared library?
Plugins are installed in the usual Eclipse ways, and then a script that compiles
all changed plugins (and all jars in /usr/share/java and similar) is run.
The script compiles like nativify and the Eclipse build scripts.
Some plugins and jars are not compiled due to failures or not having run the
compile script after an upgrade.
The lineup of plugins is similar to the Yoxos Developer edition (i.e. includes
The bug seems to be triggered when starting activities that requires new
plugins/classes to be loaded (which is consistent with my interpretation of it).
How many such plugins are there?
FWIW, I've never run into this problem.
Right now $(ls -1|wc -l) in eclipse/plugins returns 479 while $(find . -iname
'*.jar' -print|wc -l) returns 711.
I'm going to move this to gcj.
I'm closing this. I believe we fixed this in FC6.
Please reopen or comment if you disagree. Thanks.