users@glassfish.java.net

Re: Glassfish Memory Issues

From: Scott Oaks <Scott.Oaks_at_Sun.COM>
Date: Thu, 12 Jul 2007 13:22:34 -0400

While there may be an issue with the PermGen space (as Siva is helping
to debug), it may just be that when you start, you have enough memory to
fork the JVM. [Forking the JVM to compile a JSP requires, essentially,
that there be twice as much virtual memory on the machine as your
process normally consumes.] After the heap grows, you may not have that
extra space. How much swap space does your system have? And how big have
you configured your heap?

Could you switch to JDK 6? That will compile the JSPs in process, so
there is no need to fork the JSP compiler, and no need for the extra
virtual memory. It will also be significantly faster to compile the
pages.

-Scott

On Thu, 2007-07-12 at 06:03, ITVGuy2000 wrote:
> My SJAS server is apparently running out of memory. The memory consumed by
> the server continues to increase with every deploy and compile until my
> server no longer responds to incoming requests. If I am lucky I get an
> exception in the log file indicating out of space (see at bottom of post).
>
> This problem occurs on both my development laptop and server (see
> configuration below).
>
> In searching the net and newsgroups I have found the following bug and post:
> I believe could be part of my issues are due to glassfish not freeing memory
> after JSP compiles.
> https://glassfish.dev.java.net/issues/show_bug.cgi?id=2375
>
> There is a very long thread about that discusses this unresolved bug.
> http://forums.java.net/jive/thread.jspa?messageID=202780
>
> I am kind of surprised that this bug is not getting more attention. I am
> surprised its not being reported more often in newsgroups. To me this is a
> show stopper (P1) bug. During heavy development/deployment I end up having
> to restart my glassfish server at least once a day.
>
> Is anyone else experiencing this?
> Why isn?t this bug a P1 level bug?
> What can I do to avoid my system hanging daily?
>
> As it stands I am kind if in a pinch. I have migrated all of my applications
> off of Tomcat onto the glassfish platform. I have gone from Rock Solid
> forget about it installation, to unstable needing to reboot every day.
> Please help!
>
> Thanks,
>
> ITVGuy2000
>
> -------------------------------- My Configuration
> ------------------------------------------------
>
> My Development configuration:
> Sony Laptop Vaio (1.7Ghz, 1.5G Ram, 88G drive (23G free))
> Windows XP Service Pack 2
> JDK 1.5.0_11
> SJAS Version 9 update 1 patch 1
> NB 5.5.1
> MySQL 5.0.15
>
> My Server configuration:
> Sun 220R (1G Ram, 18G Drive)
> Solaris 9 (SunOS 5.9)
> JDK 1.5.0_2
> MySQL 5.0.15
> SJAS Version 9 update 1 patch 1
>
> ------------------------------------ Error from server.log file
> -----------------------------------------
> [#|2007-07-09T09:35:36.191-0400|SEVERE|sun-appserver-pe9.0|javax.enterprise.system.container.web|_ThreadID=25;_ThreadName=httpWorkerThread-80-2;_RequestID=d2d27139-7fa5-4da4-902f-584dc55171e4;|StandardWrapperValve[jsp]:
> Servlet.service() for servlet jsp threw exception
> Error running /opt/SDK/jdk/bin/javac compiler
> at
> org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.java:473)
> at
> org.apache.tools.ant.taskdefs.compilers.JavacExternal.execute(JavacExternal.java:47)
> at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:931)
> at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:757)
> at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:428)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:528)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:507)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:495)
> at
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:530)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:412)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:318)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at
> com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
> at
> com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
> at
> com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
> at
> com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
> Caused by: java.io.IOException: Cannot run program "/opt/SDK/jdk/bin/javac"
> (in directory "/opt/SDK/domains/domain1"): error=12, Not enough space
> at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
> at java.lang.Runtime.exec(Runtime.java:593)
> at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:834)
> at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:435)
> at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:449)
> at
> org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.java:470)
> ... 36 more
> Caused by: java.io.IOException: error=12, Not enough space
> at java.lang.UNIXProcess.forkAndExec(Native Method)
> at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
> at java.lang.ProcessImpl.start(ProcessImpl.java:65)
> at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
> ... 44 more
> --- Nested Exception ---
> java.io.IOException: Cannot run program "/opt/SDK/jdk/bin/javac" (in
> directory "/opt/SDK/domains/domain1"): error=12, Not enough space
> at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
> at java.lang.Runtime.exec(Runtime.java:593)
> at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:834)
> at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:435)
> at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:449)
> at
> org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.java:470)
> at
> org.apache.tools.ant.taskdefs.compilers.JavacExternal.execute(JavacExternal.java:47)
> at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:931)
> at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:757)
> at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:428)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:528)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:507)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:495)
> at
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:530)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:412)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:318)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at
> com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
> at
> com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
> at
> com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
> at
> com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
> Caused by: java.io.IOException: error=12, Not enough space
> at java.lang.UNIXProcess.forkAndExec(Native Method)
> at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
> at java.lang.ProcessImpl.start(ProcessImpl.java:65)
> at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
> ... 44 more
>
>
> --
> View this message in context: http://www.nabble.com/Glassfish-Memory-Issues-tf4067129.html#a11556901
> Sent from the java.net - glassfish users mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>