You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "adam brin (JIRA)" <ji...@apache.org> on 2015/08/16 22:48:45 UTC

[jira] [Updated] (WW-4536) potential memory leak with annotationActionValidatorManager

     [ https://issues.apache.org/jira/browse/WW-4536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

adam brin updated WW-4536:
--------------------------
    Description: 
We've recently been having issues with our app crashing and trying to track down the root causes.  One of the things we've seen is that over the course of 1 day, 50% of our memory (almost 620 MB of 1.2 GB)  is allocated to "com.opensymphony.xwork.validator.AnnotationActionValidatorManager" according to the heap dump. We also see millions of entries in two SynchronizedMap's:

* validatorCache (1,635,019  entries)
* validatorFileCache (87,321 entries)

Looking through the entries in the validator cache, we se entries for every unique page browsed within the app. Note: we're using staticParam mapping and NamedVariable PatternMatching in action names e.g. {{"$\{id\}/$\{slug\}"}} so effectively every url is unique.

Looking at the source code, should these maps perhaps be "WeakHashMaps" or WeakReferences so that they're disposed of?

(source code to the app is here: https://bitbucket.org/tdar/tdar.src/src )

  was:
We've recently been having issues with our app crashing and trying to track down the root causes.  One of the things we've seen is that over the course of 1 day, 50% of our memory (almost 1 GB)  is allocated to "com.opensymphony.xwork.validator.AnnotationActionValidatorManager" according to the heap dump. We also see millions of entries in two SynchronizedMap's:

* validatorCache (1,635,019  entries)
* validatorFileCache (87,321 entries)

Looking through the entries in the validator cache, we se entries for every unique page browsed within the app. Note: we're using staticParam mapping and NamedVariable PatternMatching in action names e.g. "${id}/${slug}" so effectively every url is unique.

Looking at the source code, should these maps perhaps be "WeakHashMaps" or WeakReferences so that they're disposed of?

(source code to the app is here: https://bitbucket.org/tdar/tdar.src/src )


> potential memory leak with annotationActionValidatorManager
> -----------------------------------------------------------
>
>                 Key: WW-4536
>                 URL: https://issues.apache.org/jira/browse/WW-4536
>             Project: Struts 2
>          Issue Type: Bug
>          Components: XML Validators
>    Affects Versions: 2.3.20
>            Reporter: adam brin
>
> We've recently been having issues with our app crashing and trying to track down the root causes.  One of the things we've seen is that over the course of 1 day, 50% of our memory (almost 620 MB of 1.2 GB)  is allocated to "com.opensymphony.xwork.validator.AnnotationActionValidatorManager" according to the heap dump. We also see millions of entries in two SynchronizedMap's:
> * validatorCache (1,635,019  entries)
> * validatorFileCache (87,321 entries)
> Looking through the entries in the validator cache, we se entries for every unique page browsed within the app. Note: we're using staticParam mapping and NamedVariable PatternMatching in action names e.g. {{"$\{id\}/$\{slug\}"}} so effectively every url is unique.
> Looking at the source code, should these maps perhaps be "WeakHashMaps" or WeakReferences so that they're disposed of?
> (source code to the app is here: https://bitbucket.org/tdar/tdar.src/src )



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)