This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Created attachment 113286 [details] Full thread dump. Custom build: Product Version: NetBeans IDE Dev (Build 20111108-4d254cf6d7f4) Java: 1.7.0; Java HotSpot(TM) 64-Bit Server VM 21.0-b17 System: Linux version 2.6.38-11-generic running on amd64; UTF-8; en_US (nb) User directory: /usr/local/home/lahvac/.netbeans/dev Cache directory: /usr/local/home/lahvac/.netbeans/dev/var/cache I realized that my IDE is consuming a lot of CPU cycles, when I looked at the console, I have seen messages like this: WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /usr/local/home/lahvac/src/nb/working/java.hints/build/classes/org/netbeans/modules/java/hints/bugs@51b9f24d:24daeb27[invalid], trying again for 6,128,960 (in fact, my messages.log as almost 1.5GB!). There appears to be an infinite loop in FolderObj.java, which is burning out the CPU. I am attaching a thread dump.
More logging in ergonomics#7226c9a6fd1f Should this bug be fixed for 7.1, then I suggest following check (but only in release71 branch, not in trunk): @@ -189,6 +189,9 @@ lfs.getCachedOnly(fileName.getFile()) : lfs.getFileObject(fInfo, FileObjectFactory.Caller.GetChildern); if (fo != null) { + if (!fo.isValid() && counter > 1000) { + continue; + } final FileNaming foFileName = ((BaseFileObj)fo).getFileName(); if (!fo.isValid()) { final Level level = counter < 10 ? Level.FINE : Level.WARNING;
*** Bug 205171 has been marked as a duplicate of this bug. ***
Integrated into 'main-golden' Changeset: http://hg.netbeans.org/main-golden/rev/7226c9a6fd1f User: Jaroslav Tulach <jtulach@netbeans.org> Log: #205241: Print out value of onlyExisting to check whether setting it to false could help to prevent the endless loop
Custom Build: Product Version = NetBeans IDE Dev (Build 20111122-9a8edc0fe2de) (#9a8edc0fe2de) Operating System = Linux version 2.6.34-12-desktop running on amd64 Java; VM; Vendor = 1.6.0_23; Java HotSpot(TM) 64-Bit Server VM 19.0-b09; Sun Microsystems Inc. Runtime = Java(TM) SE Runtime Environment 1.6.0_23-b05 WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,008 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,009 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,010 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,011 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,012 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,013 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,014 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,015 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,016 with true WARNING [org.netbeans.modules.masterfs.filebasedfs.fileobjects.FolderObj]: Invalid fileObject /home/balek/wrk/netbeans/wrk/java.hints/build/classes/org/netbeans/modules/java/hints/encapsulation@15dc0a0c:14d782db[invalid], trying again for 435,017 with true
(In reply to comment #1) > I suggest following check (but only in release71 branch, not in trunk): > > + if (!fo.isValid() && counter > 1000) { > + continue; > + } Seems sane to have such a limit even in trunk even if it is not known how to reproduce the problem, right? Under what circumstances would you want the filesystems layer to run some validity check 1001 times in a row, and does this benefit outweight the known serious performance issue?
*** Bug 205710 has been marked as a duplicate of this bug. ***
*** Bug 205739 has been marked as a duplicate of this bug. ***
*** Bug 205871 has been marked as a duplicate of this bug. ***
Jarda, any ideas why it started to happen just recently ? Do we have regression in NB 7.1, introduced right before branching ? If so I think it's stopper, otherwise we will fight with flow of duplicates and complaints for 7.1
The problem was introduced as part of fixing bug 204389.
OK, it does not make sense to loop endlessly. Limiting the loop to 100: ergonomics#2cdc7bf32eae Can be merged to release71 as "hg merge 2cdc7bf32eae"
transplanted to release71 as changeset: 12946391a8a5 branch: release71 parent: d2dbb04348e3
Integrated into 'releases' Changeset: http://hg.netbeans.org/releases/rev/12946391a8a5 User: Jaroslav Tulach <jtulach@netbeans.org> Log: #205241: Limit the number of interation by 100. In case of production build continue, in development builds throw an assert
Integrated into 'main-golden' Changeset: http://hg.netbeans.org/main-golden/rev/2cdc7bf32eae User: Jaroslav Tulach <jtulach@netbeans.org> Log: #205241: Limit the number of interation by 100. In case of production build continue, in development builds throw an assert
*** Bug 206407 has been marked as a duplicate of this bug. ***
*** Bug 207650 has been marked as a duplicate of this bug. ***