We are load testing our Grails application (Grails 2.0 Version) hosted on Glassfish 3.1.1 App Server. While testing we are constantly getting thread blocked at ExpandoMetaClass’ performOperationOnMetaClass method. The stack trace is given. Is this is a known issue with Grails?
"http-thread-pool-11180(427)" daemon prio=6 tid=0x000000002e1ec800 nid=0x1e90 waiting for monitor entry [0x000000006944c000]
java.lang.Thread.State: BLOCKED (on object monitor)
at groovy.lang.ExpandoMetaClass.performOperationOnMetaClass(ExpandoMetaClass.java:809)
- waiting to lock <0x00000007d1ce8e88> (a groovy.lang.ExpandoMetaClass)
at groovy.lang.ExpandoMetaClass.registerInstanceMethod(ExpandoMetaClass.java:873)
at groovy.lang.ExpandoMetaClass.setProperty(ExpandoMetaClass.java:788)
at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:179)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:480)
at org.codehaus.groovy.grails.plugins.web.filters.FilterConfig.methodMissing(FilterConfig.groovy:86)
at sun.reflect.GeneratedMethodAccessor336.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:828)</code>
The stack trace is longer and eventually starts from org.codehaus.groovy.grails.plugins.web.taglib.SitemeshTagLib.captureTagContent(SitemeshTagLib.groovy). Anybody has come across these errors?
Mailing list thread: http://grails.1312388.n4.nabble.com/Thread-Blocking-at-Groovy-ExpandoMetaclass-method-in-a-Grails-App-td4572990.html