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.

Bug 74049 - CmdLineException: Too many files open
Summary: CmdLineException: Too many files open
Status: VERIFIED FIXED
Alias: None
Product: versioncontrol
Classification: Unclassified
Component: Subversion (show other bugs)
Version: 6.x
Hardware: All Linux
: P1 blocker (vote)
Assignee: issues@versioncontrol
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-27 19:22 UTC by _ hair
Modified: 2006-10-23 15:47 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
lsof | grep java (185.15 KB, text/plain)
2006-03-31 08:08 UTC, _ hair
Details

Note You need to log in before you can comment on or make changes to this bug.
Description _ hair 2006-03-27 19:22:19 UTC
FileDescription are not being closed maybe?

Happened a few times today to me with trunk from today.

INFORMATIONAL *********** Exception occurred ************ at 9:13 PM on Mar 27, 2006
org.tigris.subversion.svnclientadapter.SVNClientException:
org.tigris.subversion.svnclientadapter.commandline.CmdLineException:
java.io.IOException: java.io.IOException: Too many open files
        at
org.tigris.subversion.svnclientadapter.SVNClientException.wrapException(SVNClientException.java:69)
        at
org.tigris.subversion.svnclientadapter.commandline.CmdLineClientAdapter.propertyGet(CmdLineClientAdapter.java:721)
        at
org.tigris.subversion.svnclientadapter.AbstractClientAdapter.getIgnoredPatterns(AbstractClientAdapter.java:86)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
org.netbeans.modules.subversion.client.SvnClientInvocationHandler.invoke(SvnClientInvocationHandler.java:95)
        at $Proxy13.getIgnoredPatterns(Unknown Source)
[catch] at org.netbeans.modules.subversion.Subversion.isIgnored(Subversion.java:318)
        at
org.netbeans.modules.subversion.FileStatusCache.createMissingEntryFileInformation(FileStatusCache.java:626)
        at
org.netbeans.modules.subversion.FileStatusCache.createFileInformation(FileStatusCache.java:481)
        at
org.netbeans.modules.subversion.FileStatusCache.scanFolder(FileStatusCache.java:451)
        at
org.netbeans.modules.subversion.FileStatusCache.getScannedFiles(FileStatusCache.java:410)
        at
org.netbeans.modules.subversion.FileStatusCache.getStatus(FileStatusCache.java:185)
        at
org.netbeans.modules.subversion.Annotator.annotateNameHtml(Annotator.java:329)
        at
org.netbeans.modules.subversion.FileStatusProvider.annotateNameHtml(FileStatusProvider.java:58)
        at
org.netbeans.modules.masterfs.MasterFileSystem$StatusImpl.annotateNameHtml(MasterFileSystem.java:463)
        at org.openide.loaders.DataNode.getHtmlDisplayName(DataNode.java:228)
        at org.openide.nodes.FilterNode.getHtmlDisplayName(FilterNode.java:720)
        at
org.openide.explorer.view.VisualizerNode.getHtmlDisplayName(VisualizerNode.java:512)
        at
org.openide.explorer.view.NodeRenderer.getTreeCellRendererComponent(NodeRenderer.java:100)
        at
javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2693)
        at
javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
        at
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
        at
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1478)
        at
javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1270)
        at
javax.swing.tree.VariableHeightLayoutCache.ensurePathIsExpanded(VariableHeightLayoutCache.java:966)
        at
javax.swing.tree.VariableHeightLayoutCache.setExpandedState(VariableHeightLayoutCache.java:164)
        at
javax.swing.plaf.basic.BasicTreeUI.updateExpandedDescendants(BasicTreeUI.java:1556)
        at
javax.swing.plaf.basic.BasicTreeUI$Handler.treeExpanded(BasicTreeUI.java:3645)
        at javax.swing.JTree.fireTreeExpanded(JTree.java:2235)
        at javax.swing.JTree.setExpandedState(JTree.java:3006)
        at javax.swing.JTree.expandPath(JTree.java:1742)
        at
javax.swing.plaf.basic.BasicTreeUI.toggleExpandState(BasicTreeUI.java:2189)
        at
javax.swing.plaf.basic.BasicTreeUI$Actions.traverse(BasicTreeUI.java:4359)
        at
javax.swing.plaf.basic.BasicTreeUI$Actions.actionPerformed(BasicTreeUI.java:4015)
        at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1571)
        at javax.swing.JComponent.processKeyBinding(JComponent.java:2763)
        at javax.swing.JComponent.processKeyBindings(JComponent.java:2798)
        at javax.swing.JComponent.processKeyEvent(JComponent.java:2726)
        at java.awt.Component.processEvent(Component.java:5265)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3955)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810)
        at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:672)
        at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:920)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:798)
        at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:636)
        at java.awt.Component.dispatchEventImpl(Component.java:3841)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Window.dispatchEventImpl(Window.java:1774)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: org.tigris.subversion.svnclientadapter.commandline.CmdLineException:
java.io.IOException: java.io.IOException: Too many open files
        at
org.tigris.subversion.svnclientadapter.commandline.CommandLine.execProcess(CommandLine.java:118)
        at
org.tigris.subversion.svnclientadapter.commandline.SvnCommandLine.propget(SvnCommandLine.java:592)
        at
org.tigris.subversion.svnclientadapter.commandline.CmdLineClientAdapter.propertyGet(CmdLineClientAdapter.java:712)
        ... 59 more
Caused by: java.io.IOException: java.io.IOException: Too many open files
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
        at java.lang.ProcessImpl.start(ProcessImpl.java:65)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
        at java.lang.Runtime.exec(Runtime.java:591)
        at java.lang.Runtime.exec(Runtime.java:507)
        at
org.tigris.subversion.svnclientadapter.commandline.CommandLine.execProcess(CommandLine.java:115)
        ... 61 more
Comment 1 _ hair 2006-03-30 06:20:35 UTC
I'm getting this at startup now so the subversion module not only is useful but
is succesfully dicapitating the whole IDE for me...
Comment 2 _ pkuzel 2006-03-30 14:03:38 UTC
Could share /usr/sbin/lsof output? I'm interested what files are open, to guess
culprit.
Comment 3 _ hair 2006-03-31 08:08:12 UTC
# lsof | wc -l
6990
# lsof | grep java | wc -l
1567
# lsof | grep java
--> see attachment
Comment 4 _ hair 2006-03-31 08:08:44 UTC
Created attachment 29522 [details]
lsof | grep java
Comment 5 _ pkuzel 2006-03-31 12:11:47 UTC
It looks reasonable, nothing Subversion integration specifics.

Could you, please, try:  | grep svn?
Comment 6 _ hair 2006-04-01 11:06:43 UTC
Only two entries:

# lsof | grep svn
java      10419       mick  mem       REG        8,5   147658    1309856
/usr/local/src/netbeans/nbbuild/netbeans/extra/modules/ext/svnClientAdapter.jar
java      10419       mick  mem       REG        8,5     1826    1309855
/usr/local/src/netbeans/nbbuild/netbeans/extra/modules/org-netbeans-libs-svnClientAdapter.jar
Comment 7 _ hair 2006-04-01 11:20:40 UTC
When I disable the subversion module "lsof | grep java | wc -l" goes from ~1500
to ~600.

The later is the same number as when I start up netbeans with the subversion
module disabled.

I'm not familiar with the subversion module but it doesn't seem reasonable that
one module in the IDE is using ~1.5 times as many file descriptors as the rest
of the IDE.

It also doesn't seem reasonable, when I have 29 projects open with only 3 of
them subversion (the rest netbeans source code cvs projects), that the new cvs
module doesn't have similiar problems.
"lsof | grep java | wc -l" reports ~800 when the new cvs module is enabled.
Comment 8 _ pkuzel 2006-04-04 16:07:49 UTC
My lsof is almost constant.

tstupka was able to reproduce. "pipe" flood, there are probably some OS
filehandle collecting timeouts.
Comment 9 _ pkuzel 2006-04-04 16:22:40 UTC
After, System.gc() OK.

So it looks there are finalizable Java objects (Process) GC does not care of
because from Java heap point of view there is a plenty of resources. But the
Process blocks some OS resources until finalized...
Comment 10 Tomas Stupka 2006-04-05 16:43:52 UTC
should be fixed.

svnClientAdapter didn't close the filereader when executing a process and
reading the inputstream as a character stream
Comment 11 _ hair 2006-04-10 15:54:41 UTC
lookin good :-)