Hi,
Recently upgraded my app to use Grails version from 1.0.5 to 1.3.7.
Along with all other changes, the server running in dev environment changed from Jetty to Tomcat.
My issue is the application is consistently running into OutOfMemoryError and this occurs only in dev environment.
This has never happened with the the Jetty server or does not happen in WAR deployed mode in externally installed Tomcat 6.0.18 on same dev machine.
The error is reproducible by creating/updating very few objects and navigating pages.
So can anyone shed a light on how to configure the embedded Tomcat memory settings ?
And to make the dev and war environment consistent, how do I set grails run-app command to use external Tomcat server ?
The followings are 2 example error stack traces:
1.
2011-08-02 09:42:52,139 [http-8080-6] ERROR [/SafetySystem].[grails] - Servlet.service() for servlet grails threw exception
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader. java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java :616)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:141)
at groovy.lang.GroovyClassLoader.access$300(GroovyCla ssLoader.java:55)
at groovy.lang.GroovyClassLoader$ClassCollector.creat eClass(GroovyClassLoader.java:519)
at groovy.lang.GroovyClassLoader$ClassCollector.onCla ssNode(GroovyClassLoader.java:536)
at groovy.lang.GroovyClassLoader$ClassCollector.call( GroovyClassLoader.java:540)
at org.codehaus.groovy.control.CompilationUnit$12.cal l(CompilationUnit.java:757)
at org.codehaus.groovy.control.CompilationUnit$12.cal l(CompilationUnit.java:765)
at org.codehaus.groovy.control.CompilationUnit$12.cal l(CompilationUnit.java:765)
at org.codehaus.groovy.control.CompilationUnit$12.cal l(CompilationUnit.java:765)
at org.codehaus.groovy.control.CompilationUnit.applyT oPrimaryClassNodes(CompilationUnit.java:942)
at org.codehaus.groovy.control.CompilationUnit.doPhas eOperation(CompilationUnit.java:519)
at org.codehaus.groovy.control.CompilationUnit.proces sPhaseOperations(CompilationUnit.java:497)
at org.codehaus.groovy.control.CompilationUnit.compil e(CompilationUnit.java:474)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyC lassLoader.java:306)
at groovy.lang.GroovyClassLoader.parseClass(GroovyCla ssLoader.java:287)
at groovy.lang.GroovyClassLoader.parseClass(GroovyCla ssLoader.java:267)
at groovy.lang.GroovyClassLoader.parseClass(GroovyCla ssLoader.java:214)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.compileGroovyPage(GroovyPagesTemplate Engine.java:640)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.buildPageMetaInfo(GroovyPagesTemplate Engine.java:590)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.createTemplate(GroovyPagesTemplateEng ine.java:493)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.createTemplateWithResource(GroovyPage sTemplateEngine.java:473)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.createTemplate(GroovyPagesTemplateEng ine.java:246)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.createTemplateForUri(GroovyPagesTempl ateEngine.java:373)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.createTemplateForUri(GroovyPagesTempl ateEngine.java:345)
at org.codehaus.groovy.grails.web.pages.GroovyPagesTe mplateEngine.createTemplate(GroovyPagesTemplateEng ine.java:262)
at org.codehaus.groovy.grails.web.servlet.view.Groovy PageView.renderWithTemplateEngine(GroovyPageView.j ava:146)
at org.codehaus.groovy.grails.web.servlet.view.Groovy PageView.renderMergedOutputModel(GroovyPageView.ja va:81)
at org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:250)
at org.springframework.web.servlet.DispatcherServlet. render(DispatcherServlet.java:1047)
2.
org.codehaus.groovy.grails.web.servlet.mvc.excepti ons.ControllerExecutionException: Executing action [listCompanyLevel] of controller [RemindersController] caused exception: java.lang.OutOfMemoryError: PermGen space
at java.lang.Thread.run(Thread.java:619)
Caused by: org.codehaus.groovy.runtime.InvokerInvocationExcep tion: java.lang.OutOfMemoryError: PermGen space
... 1 more
Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader. java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java :616)
at java.security.AccessController.doPrivileged(Native Method)
at CourseAttendance$findAllUpcomingItemsBetween.call( Unknown Source)
at RemindersController.getUpcomingItems(RemindersCont roller.groovy:154)


Reply With Quote