You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "haruhiko nishi (JIRA)" <ji...@apache.org> on 2012/12/13 04:57:23 UTC

[jira] [Comment Edited] (OGNL-228) Is ognl.OgnlRuntime some root cause of PermGen OutOfMemoryError problem?

    [ https://issues.apache.org/jira/browse/OGNL-228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13530652#comment-13530652 ] 

haruhiko nishi edited comment on OGNL-228 at 12/13/12 3:56 AM:
---------------------------------------------------------------

Here is how the path to DelegatingClassLoaders looks like:

sun.reflect.DelegatingClassLoader
|_<loader> of sun.reflect.GeneratedMethodAccessor14121
   |_<class> of sun.reflect.GeneratedMethodAccessor14121
      |_delegate of sun.reflect.DelegationMethodAccessorImpl
         |_methodAccessor of java.lang.reflect.Method
            |_key of java.util.HashMap$Entry
               |_[49269] of java.util.HashMap$Entry[16384]
                  |_table of java.util.HashMap
                     |_ _methodParameterTypesCache of ognl.Runtime
                        |_[7690] of java.util.Object[20480]
                          |_ elementData of java.util.Vector
                             |_classes of org.jboss.classloader.spi.base.BaseClassLoader[Stack Local]
                               |_<local variable> of java.lang.Thread[Stack local, Thread] "ajp-xxx.xxx.xxx.xxx-8009-3"

                
      was (Author: hanishi):
    Here is how the path to DelegatingClassLoaders looks like:
{code}
sun.reflect.DelegatingClassLoader
|_<loader> of sun.reflect.GeneratedMethodAccessor14121
   |_<class> of sun.reflect.GeneratedMethodAccessor14121
      |_delegate of sun.reflect.DelegationMethodAccessorImpl
         |_methodAccessor of java.lang.reflect.Method
            |_key of java.util.HashMap$Entry
               |_[49269] of java.util.HashMap$Entry[16384]
                  |_table of java.util.HashMap
                     |_ _methodParameterTypesCache of ognl.Runtime
                        |_[7690] of java.util.Object[20480]
                          |_ elementData of java.util.Vector
                             |_classes of org.jboss.classloader.spi.base.BaseClassLoader[Stack Local]
                               |_<local variable> of java.lang.Thread[Stack local, Thread] "ajp-xxx.xxx.xxx.xxx-8009-3"

 {code}
                  
> Is ognl.OgnlRuntime some root cause of PermGen OutOfMemoryError problem?
> ------------------------------------------------------------------------
>
>                 Key: OGNL-228
>                 URL: https://issues.apache.org/jira/browse/OGNL-228
>             Project: Commons OGNL
>          Issue Type: Bug
>         Environment: RHEL 6 x64
>            Reporter: haruhiko nishi
>            Priority: Critical
>              Labels: OutOfMemoryError
>
> While analyzing several heap dumps using Yourkit, we have observed many instances of DelegatingClassLoader, or more precisely sun.reflect.GeneratedMethodAccessorXXX, where XXX represents some sequential numbers, were created through the usage of Java reflection by the frameworks implemented in our web application.
> GeneratedMethodAccessorXXX is allegedly used for some sort of reflection optimization mechanism according to the url at http://www-01.ibm.com/support/docview.wss?uid=swg21566549.
> Because this is what seems to be eating up our memory allocated for PermGen, as the number of the DelegatingClassLoader is gradually increased and JVM crushes with OutOfMemoryError, we scrutinized what is possibly blocking these DelegatingClassLoaders from being garbage collected and found many of them are relevant to _methodParameterTypesCache of ognl.OgnlRuntime.
> Is there any known problems regarding this issue?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira