8 Replies Latest reply on Oct 10, 2007 7:44 AM by maxandersen

    eclipse permGen

    dbinder

      Hi, everybody,

      I started using JBIDE B4 and I'm now experiencing big trouble in eclipse. after some times, I always get an out of memory saying my permGen size has been exceeded

      configuration :
      eclipse 3.3 (europa EE) with latest update from eclipse update sites
      winXP SP 2
      jdk 1.6.0

      previously used build : nightly 2007 10 04
      change to : beta4

      logfile :

      !ENTRY org.eclipse.ui 4 4 2007-10-09 23:58:11.687
      !MESSAGE Internal plug-in action delegate error on creation.
      !STACK 0
      java.lang.OutOfMemoryError: PermGen space
       at java.lang.ClassLoader.defineClass1(Native Method)
       at java.lang.ClassLoader.defineClass(Unknown Source)
       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:161)
       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:501)
       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:471)
       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:430)
       at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:413)
       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189)
       at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340)
       at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:408)
       at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369)
       at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357)
       at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
       at java.lang.ClassLoader.loadClass(Unknown Source)
       at org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:289)
       at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227)
       at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1269)
       at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:160)
       at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:788)
       at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
       at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:51)
       at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:244)
       at org.eclipse.ui.internal.PluginAction.createDelegate(PluginAction.java:122)
       at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:280)
       at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:304)
       at org.eclipse.ui.internal.AbstractSelectionService.fireSelection(AbstractSelectionService.java:156)
       at org.eclipse.ui.internal.AbstractSelectionService.setActivePart(AbstractSelectionService.java:282)
       at org.eclipse.ui.internal.WWinPartService.updateActivePart(WWinPartService.java:125)
       at org.eclipse.ui.internal.WWinPartService.access$0(WWinPartService.java:115)
       at org.eclipse.ui.internal.WWinPartService$1.partDeactivated(WWinPartService.java:48)
       at org.eclipse.ui.internal.PartListenerList2$4.run(PartListenerList2.java:113)
       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
      


      I know the usual answer is to increase the permGen size but my permGen is now set to 2 gig (huge ? uh) and the problem is not solved. Is anyone else experiencing same problem with the late versions ?

      David

        • 1. Re: eclipse permGen
          maxandersen

          hmm...I can't recall anything being added between the 4th october and for the release that should eat up memory.

          Did you try out some new plugins or ?

          And are you 100% sure the permgen space is actually set ?

          • 2. Re: eclipse permGen
            maxandersen

            hmm...I can't recall anything being added between the 4th october and for the release that should eat up memory.

            Did you try out some new plugins or ?

            And are you 100% sure the permgen space is actually set ?

            • 3. Re: eclipse permGen
              dbinder

              I didn't add any new plugin to my eclipse conf, moreover I deactivated my long time downloaded plugin extension directory.

              but i admit i didn't go much far in eclipse settings, I just changed the permgen option in eclipse.ini.

              I find this sudden change of needed pemgen space a bit strange anyway, I can't see that many more class definition needed in my new conf.

              David

              • 4. Re: eclipse permGen
                gagool

                You should be aware of that there is a bug in eclipses JVM identification (if i remember correctly).. I think that this is only in eclipse 3.3.1 (check
                bugs.eclipse.org)

                This eclipse.ini that should work all the time doesn't:

                -showsplash
                org.eclipse.platform
                --launcher.XXMaxPermSize
                256M
                -vmargs
                -Dosgi.requiredJavaVersion=1.5
                -Xms40m
                -Xmx768m
                



                I have to use this instead:

                -showsplash
                org.eclipse.platform
                -vmargs
                -Dosgi.requiredJavaVersion=1.5
                -Xms40m
                -Xmx512m
                -XX:MaxPermSize=256M
                



                • 5. Re: eclipse permGen
                  maxandersen

                  ah another eclipse.ini quirk.

                  We do generate the lower eclipse.ini in rhds.

                  I never figured out wht --launcher.XXMaxPermSize256M was for ?

                  • 6. Re: eclipse permGen
                    dbinder

                    You might be right, if i remember well my home configuration (I'm currently at work :( ) looked like your not working example, I'll try what you wrote.

                    thx

                    David

                    • 7. Re: eclipse permGen
                      gagool

                      Since only (?) the sun JVM has the XX:Permgen-parameter it should not be automatically added by eclipse since it runs on other vms as well..
                      The eclipse launcher checks if VM is sun and then adds the parameter VMarg.

                      This is the bug@eclipse:
                      https://bugs.eclipse.org/bugs/show_bug.cgi?id=203325

                      • 8. Re: eclipse permGen
                        maxandersen

                        So this launcher.XXMaxPermSize does not work anyway according to the bug.

                        From what I have tested is that Sun's JavaVM needs it to run Eclipse and IBM's JDK ignores the argument but GCJ fails (which is fine since it can't run Eclipse 3.3 anyway)