cancel
Showing results for 
Search instead for 
Did you mean: 

Out of memory errors

konsultex
Confirmed Champ
Confirmed Champ
I'm running Alfresco 1.4 community on JBoss 4.0.5GA on Fedora Core 4 running Java JDK 1.5.0_10 on a server with 2 gb physical ram and 4 gb swap space. My database is MySql 4.1.20. In addition to Alfresco I have 2 othe application using JBoss on this server. I start JBoss in the "default" configuration with thies java memory options:

JAVA_OPTS="-Xms512m -Xmx1536m

I have expanded -Xmx by 256m from the installation default in the past few days to wee if the problem would go away.

Normally I seem to have this Java memory usage (show by the top command:

Mem:   2074912k total,  1983168k used,    91744k free,   168696k buffers
Swap:  4096368k total,   305160k used,  3791208k free,   846584k cached

What happens to me is that I have frequent Out Of Memory Errors in JBoss and it only happens when Alfresco is being used. I am not able to duplicate the problem except to say that if Alfresco is used long enough during the day it will happen. On 2 occasion I was using Alfresco myself when the error happened and what I was doing was:

a) Uploading a document rith after I put in the meta data and hit the button to continue (I can't remember its name right now).
b) Trying to edit the space user permissions in a nested space which had "editor" rights. As soon as I hit the "edit" button it crashed.

However, this is not reproducible.

This is the error message the browser showed when I happened to do (b):

javax.faces.FacesException: org/eclipse/jdt/internal/compiler/util/Messages$MessagesProperties
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421)
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:106)
org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:73)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

This does not seem very useful. However the relevant part of server.log shows:

<snip>
2007-02-18 10:31:09,205 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/alfresco].[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/util/Messages$MessagesProperties
   at org.eclipse.jdt.internal.compiler.util.Messages.load(Messages.java:235)
   at org.eclipse.jdt.internal.compiler.util.Messages.initializeMessages(Messages.java:193)
   at org.eclipse.jdt.internal.compiler.util.Messages.<clinit>(Messages.java:117)
   at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:399)
   at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:348)
   at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:404)
   at org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
   at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
   at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
   at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
.</snip>

And it end with:

<snip>
2007-02-18 10:31:09,209 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/alfresco].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
javax.faces.FacesException: org/eclipse/jdt/internal/compiler/util/Messages$MessagesProperties
   at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421)
   at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
   at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:106)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:73)
</snip>

And it finally ends with:

2007-02-18 10:31:12,980 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/alfresco].[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: PermGen space

Has this happened to anyone? Any ideas of what the problem is and/or where I can search for a solution?

Thanks.
2 REPLIES 2

steve
Champ in-the-making
Champ in-the-making
Hello,

Your out of memory error is on Permgen space, not the heap.

PermGen space is not modified using the Xms or Xmx options.
You change the allocated PermGen space using the option:

-XX:PermSize=128m

or whatever size you decide (or need based on your usage).

Hope this helps,

Steve

konsultex
Confirmed Champ
Confirmed Champ
Thanks Steve, this seems to have solved my problem. We have been using the system for a whole day and no memory problems came up.