[Logo] Forums for GrailsFlow, Weceem, XSLfast
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Important note about Weceem and Grails 1.3.x builds  XML
Forum Index » Weceem Forum
Author Message
marcpalmer



Joined: 04/06/2009 13:36:35
Messages: 303
Location: UK
Offline

Hi,

I wanted to let you all know that there are some issues with newer builds of Grails and Weceem.

We know for sure that Grails 1.3.1 and Weceem work well. However recent tests with Grails 1.3.5 have uncovered a serious permgen memory leak in Grails that over time will cause extreme slowdowns and out of memory errors in your Weceem instance. The problem is primarily cause by viewing the Administration section - so a Weceem instance that is not being edited often will likely not be affected.

However those frequently edited, or concurrently edited, will load the repository extremely slowly and eventually fall over. This happens in Grails dev mode (load times of 30s-2min for the repository page) and in production WARs.

The Grails team has been made aware of the bug and they are fixing it in 1.3.6

However, it is also worth noting that we have seen occasional thread deadlocks in Weceem running on Grails 1.3.1 - a known issue in the Groovy meta object protocol mechanisms, which should be fixed in groovy shipped in Grails 1.3.5 and higher, but of course 1.3.5 introduces the permgen leak. We're hoping 1.3.6 will solve all known problems and will be testing weceem against pre-release builds of 1.3.6 to make sure the Grails dev team know.

Regards

- -
Twitter: wangjammer5
Blog: http://www.anyware.co.uk
Grails plugins: http://www.grailsrocks.com
[WWW]
ThornTech



Joined: 29/11/2010 20:05:20
Messages: 8
Offline

Can you provide more detail on the cause of the memory leak? What in the Admin app is causing the memory leak? Is it something we can disable for the time being - like any quartz jobs in favor of manual publishing triggers?

I am very interested in this because I have other grails (1.3.4) apps in production that, so far, have not had any memory issues. But I would like to know if it is something I should look out for.

Thanks,
Jeff
marcpalmer



Joined: 04/06/2009 13:36:35
Messages: 303
Location: UK
Offline

Hi Jeff,

Somewhere between Grails 1.3.1 and 1.3.5 - probably in 1.3.5 only, but I didn't waste any more time testing other releases due to other issues on those releases - a bug crept in where GSP templates rendered from inside a plugin would compile every time they were rendered, also leaking permgen at the same time. This made it very slow, and prone to permgen exhaustion under load.

They fixed this problem in Grails 1.3.6 snapshot. There might be a workaround by turning off GSP reloading in config (even though this is not really a reloading issue) but I didn't spend any time testing this because to be honest testing and isolating this problem consumed about a week of my time already

1.3.6 release is imminent. If you are not seeing huge delays when loading admin page e.g. 30s-2minutes for a default space in dev or production, then you are likely not suffering the problem and it is Grails 1.3.5 only.

I hope this helps

Marc



- -
Twitter: wangjammer5
Blog: http://www.anyware.co.uk
Grails plugins: http://www.grailsrocks.com
[WWW]
ThornTech



Joined: 29/11/2010 20:05:20
Messages: 8
Offline

Thanks Marc. I appreciate the heads up!
ThornTech



Joined: 29/11/2010 20:05:20
Messages: 8
Offline

Hi Marc,
I rebuild a war file using grails 1.3.6 and redeployed to Tomcat. After about I week, I am still getting 500 errors due to OutOfMemory exception. Below is the full error message. Should this have been fixed with the latest version of Grails?


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Filter execution threw an exception
org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:69)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:8
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
root cause

java.lang.OutOfMemoryError: PermGen space
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
npeeters



Joined: 27/02/2012 11:50:10
Messages: 11
Offline

With Grails 2.0.6 and Weceem 1.1.2, I'm seeing the same issue after a week or so where the PermGen gradually fills up (especially when doing admin stuff, I noticed) and then kills Tomcat.

Are there any known workarounds or best practices?

These are my settings in the catalina.sh
CATALINA_OPTS="-server -Xms384m -Xmx768m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"

This message was edited 1 time. Last update was at 08/05/2012 20:28:26

 
Forum Index » Weceem Forum
Go to:   
Powered by JForum 2.1.8 © JForum Team