| Summary: | Eclipse fails to launch - ZipException: Too many open files | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Bobby Joseph <use_bobs> | ||||||
| Component: | Runtime | Assignee: | platform-runtime-inbox <platform-runtime-inbox> | ||||||
| Status: | RESOLVED DUPLICATE | QA Contact: | |||||||
| Severity: | critical | ||||||||
| Priority: | P3 | ||||||||
| Version: | 3.2 | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | PC | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
Created attachment 49960 [details]
List of files downloaded (eclipse + plugins)
Created attachment 49965 [details]
Eclipse logs
In Eclipse 3.2.1 I would recommend setting the osgi.bundlefile.limit property on linux in your config.ini to: osgi.bundlefile.limit=100 Unfortunately this option has some threading issues in 3.2 which have been fixed in 3.2.1. If you cannot wait until 3.2.1 then you should try running with -initialize on the very first time you launch eclipse after extracting it. This should allow the platform to be successfully installed. On next startup we should only open jars as they are needed. Also see bug 106396 for a similar issue. Bobby did you try the workaround provided by Tom? *** This bug has been marked as a duplicate of 140549 *** 1) Running with -initialize ---> Didn't help!
[root@acdevx8 eclipse]# ./eclipse -initialize
!SESSION 2006-09-13 22:25:42.458 -----------------------------------------------
eclipse.buildId=M20060629-1905
java.fullversion=J2RE 1.4.2 IBM build cxia32142ifx-20060209 (SR4-1) (JIT enabled: jitc)
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86 -initialize
!ENTRY org.eclipse.jst.server.tomcat.ui.nlBidi 4 0 2006-09-13 22:25:45.655
!MESSAGE FrameworkEvent.ERROR
!STACK 0
java.util.zip.ZipException: Too many open files /opt/IBM/PD_BtM_Toolkit/ACLT_GLA/eclipse/plugins/org.eclipse.jst.server.tomcat.ui.nlBidi_1.0.102.v200606220026.jar
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:140)
at java.util.zip.ZipFile.<init>(ZipFile.java:155)
at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:226)
at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.basicOpen(ZipBundleFile.java:79)
at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.getZipFile(ZipBundleFile.java:92) at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.checkedOpen(ZipBundleFile.java:65)
at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.getEntry(ZipBundleFile.java:227)
at org.eclipse.osgi.baseadaptor.BaseData.getEntry(BaseData.java:93)
at org.eclipse.osgi.internal.baseadaptor.AdaptorUtil.loadManifestFrom(AdaptorUtil.java:189)
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.getGeneratedManifest(EclipseStorageHook.java:294)
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.createCachedManifest(EclipseStorageHook.java:290)
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.getManifest(EclipseStorageHook.java:395)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.loadManifest(BaseStorage.java(Compiled Code))
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.readStateData(BaseStorage.java:678)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.getStateManager(BaseStorage.java:633) at org.eclipse.osgi.baseadaptor.BaseAdaptor.getPlatformAdmin(BaseAdaptor.java:385)
at org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook.frameworkStart(EclipseAdaptorHook.java:80)
at org.eclipse.osgi.baseadaptor.BaseAdaptor.frameworkStart(BaseAdaptor.java:260)
at org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start(SystemBundleActivator.java:55)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:995)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java:351)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:989)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:970)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:549)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:484)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:275)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.launch(StartLevelManager.java:245)
at org.eclipse.osgi.framework.internal.core.SystemBundle.resume(SystemBundle.java:155)
at org.eclipse.osgi.framework.internal.core.Framework.launch(Framework.java:503)
at org.eclipse.osgi.framework.internal.core.OSGi.launch(OSGi.java:51)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:289)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:173)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
[root@acdevx8 eclipse]#
2) osgi.bundlefile.limit=100 --> WORKS!
See the eclipse version details:
name=Eclipse Platform
id=org.eclipse.platform
version=3.2.0
I am part of the IBM Autonomic Computing Toolkit team and we ship eclipse with it. Since Tom mentioned about some threading issues, what do you suggest? When can we expect Eclipse 3.2.1? We are already in our internal beta!
Tom, thanks for the prompt response.
We are in the middle of release candidate builds for 3.2.1. I'm not sure on the final release date (I think it is by the end of Sept.). Maybe you should use the latest 3.2.1 release candidate for beta and 3.2.1 final for your final released product? In fact 3.2.1 is scheduled for this week. |
I am facing a problem while trying to launch eclipse on LINUX. Any help would be great. It is consistently failing to launch eclipse (with 9 plugins + NLpack1+ NLpack2 + NLpack2a + NLpackBidi which amounts to a lot of jar files). After extracting eclipse and all the plugins, when I try to launch eclipse, it pops the following error message instead of prompting for the workspace location: An error has occurred. See the log file /home/bhanu/preethi/orig/eclipse/configuration/1157723656180.log. After clicking on the OK button on the above pop-up, following exception appears on the console/command prompt: !ENTRY org.eclipse.ui.navigator.nl1 4 0 2006-09-08 19:24:24.544 !MESSAGE FrameworkEvent.ERROR !STACK 0 java.util.zip.ZipException: Too many open files /home/bhanu/preethi/orig/eclipse/plugins/org.eclipse.ui.navigator.nl1_3.2.0.v200606220026.jar at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:238) at java.util.zip.ZipFile.<init>(ZipFile.java:268) at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:226) at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.basicOpen(ZipBundleFile.java:79) at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.getZipFile(ZipBundleFile.java:92) at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.checkedOpen(ZipBundleFile.java:65) at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.getEntry(ZipBundleFile.java:227) at org.eclipse.osgi.baseadaptor.BaseData.getEntry(BaseData.java:93) at org.eclipse.osgi.framework.internal.core.AbstractBundle.getEntry(AbstractBundle.java:1281) at org.eclipse.core.internal.registry.osgi.EclipseBundleListener.addBundle(EclipseBundleListener.java:121) at org.eclipse.core.internal.registry.osgi.EclipseBundleListener.processBundles(EclipseBundleListener.java:79) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.onStart(RegistryStrategyOSGI.java:196) at org.eclipse.core.internal.registry.ExtensionRegistry.<init>(ExtensionRegistry.java:595) at org.eclipse.core.runtime.RegistryFactory.createRegistry(RegistryFactory.java:55) at org.eclipse.core.internal.registry.osgi.Activator.startRegistry(Activator.java:128) at org.eclipse.core.internal.registry.osgi.Activator.start(Activator.java:54) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:995) at java.security.AccessController.doPrivileged(AccessController.java:241) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:989) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:970) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:317) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:256) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.preFindLocalClass(EclipseLazyStarter.java:86) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:409) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:188) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:339) at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37) at org.eclipse.osgi.framework.internal.core.MultiSourcePackage.loadClass(MultiSourcePackage.java:32) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:388) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:352) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83) at java.lang.ClassLoader.loadClass(ClassLoader.java:561) at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:222) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:160) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:498) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:468) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:427) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:410) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:188) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:339) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:391) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:352) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83) at java.lang.ClassLoader.loadClass(ClassLoader.java:561) at org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:276) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227) at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:134) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:966) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:317) at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:329) at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1037) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:573) at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:495) at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:275) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:455) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:189) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:291) Note: 1) This has started occuring ever since WTP, JEM and GEF was added to the package, in other words increase in the number of jar files which is leading to exception 'java.util.zip.ZipException: Too many open files' during the launch of eclipse. 2) We are not encountering this problem on Windows even though it has the same set of files except the eclipse platform runtime files. We are getting this problem very consistently on all our LINUX machines. 3) I rebooted the machine and tried but no use. 4) The error occurs in both Java 1.5 and 1.4.2