struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "adam brin (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (WW-4536) potential memory leak with annotationActionValidatorManager
Date Tue, 18 Aug 2015 02:00:49 GMT

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

adam brin edited comment on WW-4536 at 8/18/15 2:00 AM:
--------------------------------------------------------

I've started working though this. One item of slight concern is the static {{buildValidatorKey}}
which cannot be overridden, and also makes the IOC nature of the AnnotationValidationManager
bean slightly more problematic as other sections of the codebase could call this (which they
don't).  

I'll note that adding the @SkipValidation to many of our methods that don't have validation
has definitely made a major difference in our heap space profile. (thanks, btw)


was (Author: abrin):
I've started working though this. One item of slight concern is the static {{buildValidatorKey}}
which cannot be overridden, and also makes the IOC nature of the AnnotationValidationManager
bean slightly more problematic as other sections of the codebase could call this (which they
don't).  

I'll note that adding the @SkipValidation to many of our methods that don't have validation
has definitely made a major difference in our heap space profile.

> 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
>             Fix For: 2.3.x
>
>         Attachments: Screen Shot 2015-08-16 at 1.48.30 PM.png, Screen Shot 2015-08-16
at 1.49.22 PM.png
>
>
> 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)

Mime
View raw message