Idea 8.0 OOME after 5-6 hours of work with 2-3 projects at a time.

After 8.0 RC 1 being horrendously instable releasing RC 2 and 8.0 final in such a short time frame might have been just a bit too optimistic:
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:119)
at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:115)
at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:71)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at com.intellij.util.lang.UrlClassLoader.loadClass(UrlClassLoader.java:80)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.intellij.openapi.diff.impl.external.FrameDiffTool.show(FrameDiffTool.java:49)
at com.intellij.openapi.diff.impl.external.CompositeDiffTool.show(CompositeDiffTool.java:14)
at com.intellij.openapi.vcs.history.FileHistoryPanelImpl.a(FileHistoryPanelImpl.java:242)
at com.intellij.openapi.vcs.history.FileHistoryPanelImpl.access$1700(FileHistoryPanelImpl.java:103)
at com.intellij.openapi.vcs.history.FileHistoryPanelImpl$MyDiffAction.actionPerformed(FileHistoryPanelImpl.java:9)
at com.intellij.openapi.vcs.history.FileHistoryPanelImpl$AbstractActionForSomeSelection.actionPerformed(FileHistoryPanelImpl.java:7)
at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:61)
at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:89)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:23)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:35)
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:997)
at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1323)
at com.intellij.diagnostic.DefaultIdeaErrorLogger.a(DefaultIdeaErrorLogger.java:4)
at com.intellij.diagnostic.DefaultIdeaErrorLogger.handle(DefaultIdeaErrorLogger.java:13)
at com.intellij.diagnostic.DialogAppender$2.run(DialogAppender.java:4)
at com.intellij.openapi.application.impl.ApplicationImpl$5.run(ApplicationImpl.java:2)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:10)
Caused by: java.lang.OutOfMemoryError: PermGen space

8 comments
Comment actions Permalink

Hello Thomas,

Are you running IDEA under a 64-bit JDK?

The PermGen space error has exactly nothing to do with bugs in release candidate
versions.

After 8.0 RC 1 being horrendously instable releasing RC 2 and 8.0
final in such a short time frame might have been just a bit too
optimistic:
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
at
com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java
:119)
at
com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:
115)
at
com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:71
)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at
com.intellij.util.lang.UrlClassLoader.loadClass(UrlClassLoader.java:80
)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at
com.intellij.openapi.diff.impl.external.FrameDiffTool.show(FrameDiffTo
ol.java:49)
at
com.intellij.openapi.diff.impl.external.CompositeDiffTool.show(Composi
teDiffTool.java:14)
at
com.intellij.openapi.vcs.history.FileHistoryPanelImpl.a(FileHistoryPan
elImpl.java:242)
at
com.intellij.openapi.vcs.history.FileHistoryPanelImpl.access$1700(File
HistoryPanelImpl.java:103)
at
com.intellij.openapi.vcs.history.FileHistoryPanelImpl$MyDiffAction.act
ionPerformed(FileHistoryPanelImpl.java:9)
at
com.intellij.openapi.vcs.history.FileHistoryPanelImpl$AbstractActionFo
rSomeSelection.actionPerformed(FileHistoryPanelImpl.java:7)
at
com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.jav
a:61)
at
com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.jav
a:89)
at
com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(
ActionButton.java:23)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:35)
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:997)
at
javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1323)
at
com.intellij.diagnostic.DefaultIdeaErrorLogger.a(DefaultIdeaErrorLogge
r.java:4)
at
com.intellij.diagnostic.DefaultIdeaErrorLogger.handle(DefaultIdeaError
Logger.java:13)
at
com.intellij.diagnostic.DialogAppender$2.run(DialogAppender.java:4)
at
com.intellij.openapi.application.impl.ApplicationImpl$5.run(Applicatio
nImpl.java:2)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441
)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecu
tor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
java:908)
at java.lang.Thread.run(Thread.java:619)
at
com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(Applicat
ionImpl.java:10)
Caused by: java.lang.OutOfMemoryError: PermGen space

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Did IDEA generate a heap dump (.hprof) file in the bin directory?
If so, transferring it by FTP to Jetbrains should pin-point the reason for the excessive memory consumption.

Apart from that, increasing the default -XX:MaxPermSize might be a good idea.
You could also enable the YK profiler client by adding this to the VM options:
-agentlib:yjpagent=disablej2ee,disablecounts,disablealloc,sessionname=IntelliJIDEA

That will add the "memory snapshot" button to the main toolbar. When memory usage seems to get suspiciously high (especially after closing all projects), it will allow taking a heap dump on demand.

0
Comment actions Permalink

Did IDEA generate a heap dump (.hprof) file in the bin directory?
If so, transferring it by FTP to Jetbrains should pin-point the reason for the excessive memory consumption.


No, unfortunately it did not.


Apart from that, increasing the default -XX:MaxPermSize might be a good idea.


Hmm, ok. I don't have experience with that particular VM option. Any recommendations for Ubuntu 7.10, Core 2 Duo 2.66 GHz, 2 GB RAM? (I usually run IDEA with -Xms128m -Xmx512m and the default -XX:MaxPermSize=120m.)


You could also enable the YK profiler client by adding this to the VM options:
-agentlib:yjpagent=disablej2ee,disablecounts,disablealloc,sessionname=IntelliJIDEA

That will add the "memory snapshot" button to the main toolbar. When memory usage seems to get suspiciously high (especially after closing all projects), it will allow taking a heap dump on demand.


Ok, I will do that.

0
Comment actions Permalink

Did IDEA generate a heap dump (.hprof) file in the bin directory?
If so, transferring it by FTP to Jetbrains should pin-point the reason for the excessive memory consumption.


Ok, IDEA did crash with "java.lang.OutOfMemoryError: PermGen space" again and this time it did create a heap dump. So, where exactly should I transfer this file to? BTW - the dump is a nice 174 MB in size.

0
Comment actions Permalink

Hello Thomas,

Are you running IDEA under a 64-bit JDK?

The PermGen space error has exactly nothing to do with bugs in release candidate
versions.


Sorry, I totally missed your answer to my post. (Don't ask - I don't understand it myself as I did see the much smaller one from Taras Tielkes.)

To answer your question, no, I am not using a 64-bit JDK.

And I wasn't trying to imply that the error was related to bugs in RCs in the way you seem to interpret my remark. What I meant was "There was an awfully short period of time between RC1 and final release which might explain why this problem wasn't caught pre-release."
I have used most EAP versions of 8.0 (if they were even remotely stable) quite extensively for work. Unfortunately all post-M1-releases (including both RCs) I tried were of the kind "not even remotely stable" for me.

Don't get me wrong, I love IDEA - that is why I report the errors instead of just switching to another product.

0
Comment actions Permalink

Hi Thomas

1) Compress the file (to .zip or .gz), and give it some unique name (eg. Thomas_13_11_2008.hprof.gz)
2) FTP it to: ftp.intellij.net/.uploads (anonymous login)
3) Create a JIRA ticket at http://www.jetbrains.net/jira/secure/CreateIssue!default.jspa

In the JIRA ticket, mention the name of the uploaded dump.
In addition, adding some information about the amount and nature of the loaded projects would be useful.
Basic figures like rough amount of classes, facets being used, etc. Also provide a link to this thread.

Please post the link to the create JIRA ticket in this thread, so that other users (having similar problems) may find it.

0
Comment actions Permalink

Ok, took me awhile, but finally got around to opening a JIRA ticket: http://www.jetbrains.net/jira/browse/IDEA-20800

0
Comment actions Permalink

Stumbled over this one for the first time with build #9158 again today. Instead of freezing and having to be killed, IDEA now presents a dialog that lets me enter max heap size and perm space size and an option to shutdown IDEA. Although not yet perfect (which would be no OOME anymore), this is much, much better than before. Thanks so much, guys.

Well, let's see how well build #9162 works.

0

Please sign in to leave a comment.