Product Version: NetBeans IDE Dev (Build 201206080001)
Java: 1.6.0_31; Java HotSpot(TM) Client VM 20.6-b01
System: Windows XP version 5.1 running on x86; Cp1252; en_NZ (nb)
How to reproduce
- Open NetBeans with a new userdir (Do not import settings)
- Menu|Tools|Options|Miscellaneous|Files|Uncheck "Enable auto-sanning of sources"|OK
- Open the project (from issue 210053) http://netbeans.org/bugzilla/attachment.cgi?id=120568
2 processes are running:
- Activating Java SE
- Opening Projects (10%)
The IDE consumes 100% CPU and runs out of memory quickly
Reassign to performance for evaluation ...
Works for me with those steps on windows xp, if it is reproducible for you please reopen and attach your messages.log file and heap dump generated by the out of memory error.
I can reproduce this every time. Took heap dump at about 200MBytes with VisualVM. It might be possible to get ad dump at higher use, but it is difficult - the longer I wait, the more time it takes because my computer then comes to a halt.
This dump has a compressed size of 45MBytes. I am not member of any upload service. Is it possible that you somehow receive this file?
if it isn't too great an inconvenience for you, it would be great to let netbeans run until OOME occurs and include THE heap dump generated by the OOME (or if you have one from the last OOME), I think attachment can be up to 50 MB, but I am not sure about it, so please try. Also please attach your messages.log file.
I found a heap dump heapdump.hprof.old in the var\log dir that I saved after the OOME. It is 456 MB. This is still 100MB compressed, and the limit for attachments seems to be 15MB. I tried to attach 45 MB but the file was rejected. What would be the best method to send this file?
You can try to use http://www.senduit.com/
We seem to be having technical difficulty. Please try again in a moment."
This is not doable. If you want the file then you must provide an upload faclity.
If you don't want or cannot upload the file somewhere (dropbox, megashare), we cannot find out what is going on. We plan to provide ability to upload heap dumps, but this is not yet ready. Marking as INCOMPLETE until we get the heap dump somehow.
Created attachment 120694 [details]
Created attachment 120695 [details]
heap dump part 1
Created attachment 120696 [details]
heap dump part 2
Created attachment 120698 [details]
heap dump part 3
Created attachment 120699 [details]
heap dump part 4
Created attachment 120700 [details]
heap dump part 5
Created attachment 120701 [details]
heap dump part 6
Created attachment 120703 [details]
heap dump part 7
Created attachment 120704 [details]
heap dump part 8
Created attachment 120705 [details]
heap dump part 9
Created attachment 120706 [details]
heap dump part 10
Heap dump split files were created with 7-zip http://www.7-zip.org/ from a single zip file. Sorry for this. I tried from another computer to upload to senduit - same failure.
*** Bug 212687 has been marked as a duplicate of this bug. ***
(In reply to comment #20)
> Heap dump split files were created with 7-zip http://www.7-zip.org/ from a
> single zip file.
Thanks for the heap dump. I have it.
Steps are : start ide with new userdir (with ergonomics) -> do something (anything) in the options -> open some project (web or j2ee is best as it activates a lot of modules) to trigger activation of modules.
As a result the number of instances of
org.netbeans.modules.options.CategoryModel grows exponentially during the activation.
Problem is that the head dump contains excessive number of CategoryModel instances. In normal case this number should be close to one and the heap dump contains several thousands and the heap dump from duplicate issue #212687 contains tens of thousands of CategoryModel instances.
Heap dump is available at http://netbeans.org/projects/profiler/downloads/download/Heapdumps/heapdump_213860.hprof.gz
Fixed in profiler-main
user: Tomas Hurka <email@example.com>
date: Tue Jun 12 14:23:33 2012 +0200
summary: bugfix #213860, invoke removeLookupListener()on invalidated CategoryModel instance; do not create new CategoryModel instance when resultChanged() is invoked; make sure getInstance() static method is synchronized
Integrated into 'main-golden', will be available in build *201206130001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
User: Tomas Hurka <firstname.lastname@example.org>
Log: bugfix #213860, invoke removeLookupListener()on invalidated CategoryModel instance; do not create new CategoryModel instance when resultChanged() is invoked; make sure getInstance() static method is synchronized
*** Bug 213482 has been marked as a duplicate of this bug. ***