You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by wild_oscar <mi...@almeida.at> on 2007/10/04 19:35:40 UTC

actionPackages parameter provokes PermGen memory error

Dear all,

I've been struggling with a Permgen error on my application's development:
after a number of re-deployments, I get a permgen memory error in Tomcat 6
(described in more detail here 
http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y
http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y ).

After a few days analizing with Jprofiler (and learing more about memory
leaks in  http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded Frank
Kieviet's  useful blog post), I got to no conclusion about the origin of the
leak. So I conducted a test. Starting from Struts2's blank application, I
made a script that deployed and undeployed the application in Tomcat so it
would fill the permgen space. If it all was ok, once permgen space was full
it would release unlinked objects (thus increasing permgen's free space). If
something went wrong, it would give me the permgen error.

To my suprise, I built my application and got the Permgen space when I
added:

        <init-param>
			<param-name>actionPackages</param-name>
			<param-value>com</param-value>
		</init-param>

to my Struts2 filter.

I had this parameter so I could annotate my actions. 

I tried deleting all my .com package classes. So, even with an empty
package, putting the actionPackages parameter will give me a PermGen error
on re-deployment and removing it will make Permgen memory be managed
alright.

Does anyone know why this happens and how to solve it? Can you reproduce
this error?

All input appreciated, this permgen error is driving me crazy!

-- 
View this message in context: http://www.nabble.com/actionPackages-parameter-provokes-PermGen-memory-error-tf4570271.html#a13044908
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


RE: actionPackages parameter provokes PermGen memory error

Posted by wild_oscar <mi...@almeida.at>.
After a few days of trying to figure it out, I gave up.
IntrospectorCleanupListner did not do the trick and after a few intensive
tests, the problem seemed random. Last conclusion for me was the speed of
redeployments - it would cause the Permgen error unless I waited about a
minute just before the last redeployment (when maxPermgen memory is about to
be reached). During that minute I'd force garbage collection (using
Jconsole).



Jiang, Jane (NIH/NCI) [C] wrote:
> 
> I am having the same problem with Tomcat.  I tried the
> IntrospectorCleanupListener and still got the PermGen memory error after
> 5 to 6 deployments.
> 
> -----Original Message-----
> From: wild_oscar [mailto:miguel@almeida.at] 
> Sent: Tuesday, October 09, 2007 9:56 AM
> To: user@struts.apache.org
> Subject: Re: actionPackages parameter provokes PermGen memory error
> 
> 
> Hi!
> 
> Haven't tried that yet, as I haven't used Spring in my project (or life,
> for
> that matter :p).
> I'll try to use it and post the results.
> 
> 
> In the meanwhile, an update to the problem:
> 
> The problem was in the package I used for the actionPackage.
> Investigating
> it further, I stripped the package down to one Struts 2 action. The
> problem
> dissappeared as soon as I replaced
> 
> return SUCCESS;
> 
> with
> 
> return "success";
> 
> So there might be a problem in the use of the SUCCESS variable. It might
> be
> associated with 
> http://blogs.sun.com/fkieviet/entry/classloader_leaks_the_dreaded_java
> Frank's blog entry .
> 
> If someone has a hint on this subject, please let me know!
> 
> 
> 
> Sami Dalouche wrote:
>> 
>> Hi,
>> 
>> have you tried spring's IntrospectionCleanupListener ?
>>
> http://www.springframework.org/docs/api/org/springframework/web/util/Int
> rospectorCleanupListener.html
>> 
>> It looks like the problem you are experiencing is the one the listener
>> claims to solve.
>> 
>> Regards,
>> Sami Dalouche
>> 
>> On Mon, 2007-10-08 at 02:10 -0700, wild_oscar wrote:
>>> Should this be reported as a possible bug?
>>> 
>>> 
>>> 
>>> wild_oscar wrote:
>>> > 
>>> > Dear all,
>>> > 
>>> > I've been struggling with a Permgen error on my application's
>>> development:
>>> > after a number of re-deployments, I get a permgen memory error in
>>> Tomcat 6
>>> > (described in more detail here 
>>> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y
>>> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y ).
>>> > 
>>> > After a few days analizing with Jprofiler (and learing more about
>>> memory
>>> > leaks in
> http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded
>>> Frank
>>> > Kieviet's  useful blog post), I got to no conclusion about the
> origin
>>> of
>>> > the leak. So I conducted a test. Starting from Struts2's blank
>>> > application, I made a script that deployed and undeployed the
>>> application
>>> > in Tomcat so it would fill the permgen space. If it all was ok,
> once
>>> > permgen space was full it would release unlinked objects (thus
>>> increasing
>>> > permgen's free space). If something went wrong, it would give me
> the
>>> > permgen error.
>>> > 
>>> > To my suprise, I built my application and got the Permgen space
> when I
>>> > added:
>>> > 
>>> >         <init-param>
>>> > 			<param-name>actionPackages</param-name>
>>> > 			<param-value>com</param-value>
>>> > 		</init-param>
>>> > 
>>> > to my Struts2 filter.
>>> > 
>>> > I had this parameter so I could annotate my actions. 
>>> > 
>>> > I tried deleting all my .com package classes. So, even with an
> empty
>>> > package, putting the actionPackages parameter will give me a
> PermGen
>>> error
>>> > on re-deployment and removing it will make Permgen memory be
> managed
>>> > alright.
>>> > 
>>> > Does anyone know why this happens and how to solve it? Can you
>>> reproduce
>>> > this error?
>>> > 
>>> > All input appreciated, this permgen error is driving me crazy!
>>> > 
>>> > 
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>> 
>> 
>> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/actionPackages-parameter-provokes-PermGen-memory-e
> rror-tf4570271.html#a13116204
> Sent from the Struts - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/actionPackages-parameter-provokes-PermGen-memory-error-tf4570271.html#a13260104
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


RE: actionPackages parameter provokes PermGen memory error

Posted by "Jiang, Jane (NIH/NCI) [C]" <ji...@mail.nih.gov>.
I am having the same problem with Tomcat.  I tried the
IntrospectorCleanupListener and still got the PermGen memory error after
5 to 6 deployments.

-----Original Message-----
From: wild_oscar [mailto:miguel@almeida.at] 
Sent: Tuesday, October 09, 2007 9:56 AM
To: user@struts.apache.org
Subject: Re: actionPackages parameter provokes PermGen memory error


Hi!

Haven't tried that yet, as I haven't used Spring in my project (or life,
for
that matter :p).
I'll try to use it and post the results.


In the meanwhile, an update to the problem:

The problem was in the package I used for the actionPackage.
Investigating
it further, I stripped the package down to one Struts 2 action. The
problem
dissappeared as soon as I replaced

return SUCCESS;

with

return "success";

So there might be a problem in the use of the SUCCESS variable. It might
be
associated with 
http://blogs.sun.com/fkieviet/entry/classloader_leaks_the_dreaded_java
Frank's blog entry .

If someone has a hint on this subject, please let me know!



Sami Dalouche wrote:
> 
> Hi,
> 
> have you tried spring's IntrospectionCleanupListener ?
>
http://www.springframework.org/docs/api/org/springframework/web/util/Int
rospectorCleanupListener.html
> 
> It looks like the problem you are experiencing is the one the listener
> claims to solve.
> 
> Regards,
> Sami Dalouche
> 
> On Mon, 2007-10-08 at 02:10 -0700, wild_oscar wrote:
>> Should this be reported as a possible bug?
>> 
>> 
>> 
>> wild_oscar wrote:
>> > 
>> > Dear all,
>> > 
>> > I've been struggling with a Permgen error on my application's
>> development:
>> > after a number of re-deployments, I get a permgen memory error in
>> Tomcat 6
>> > (described in more detail here 
>> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y
>> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y ).
>> > 
>> > After a few days analizing with Jprofiler (and learing more about
>> memory
>> > leaks in
http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded
>> Frank
>> > Kieviet's  useful blog post), I got to no conclusion about the
origin
>> of
>> > the leak. So I conducted a test. Starting from Struts2's blank
>> > application, I made a script that deployed and undeployed the
>> application
>> > in Tomcat so it would fill the permgen space. If it all was ok,
once
>> > permgen space was full it would release unlinked objects (thus
>> increasing
>> > permgen's free space). If something went wrong, it would give me
the
>> > permgen error.
>> > 
>> > To my suprise, I built my application and got the Permgen space
when I
>> > added:
>> > 
>> >         <init-param>
>> > 			<param-name>actionPackages</param-name>
>> > 			<param-value>com</param-value>
>> > 		</init-param>
>> > 
>> > to my Struts2 filter.
>> > 
>> > I had this parameter so I could annotate my actions. 
>> > 
>> > I tried deleting all my .com package classes. So, even with an
empty
>> > package, putting the actionPackages parameter will give me a
PermGen
>> error
>> > on re-deployment and removing it will make Permgen memory be
managed
>> > alright.
>> > 
>> > Does anyone know why this happens and how to solve it? Can you
>> reproduce
>> > this error?
>> > 
>> > All input appreciated, this permgen error is driving me crazy!
>> > 
>> > 
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 
> 

-- 
View this message in context:
http://www.nabble.com/actionPackages-parameter-provokes-PermGen-memory-e
rror-tf4570271.html#a13116204
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: actionPackages parameter provokes PermGen memory error

Posted by wild_oscar <mi...@almeida.at>.
Hi!

Haven't tried that yet, as I haven't used Spring in my project (or life, for
that matter :p).
I'll try to use it and post the results.


In the meanwhile, an update to the problem:

The problem was in the package I used for the actionPackage. Investigating
it further, I stripped the package down to one Struts 2 action. The problem
dissappeared as soon as I replaced

return SUCCESS;

with

return "success";

So there might be a problem in the use of the SUCCESS variable. It might be
associated with 
http://blogs.sun.com/fkieviet/entry/classloader_leaks_the_dreaded_java
Frank's blog entry .

If someone has a hint on this subject, please let me know!



Sami Dalouche wrote:
> 
> Hi,
> 
> have you tried spring's IntrospectionCleanupListener ?
> http://www.springframework.org/docs/api/org/springframework/web/util/IntrospectorCleanupListener.html
> 
> It looks like the problem you are experiencing is the one the listener
> claims to solve.
> 
> Regards,
> Sami Dalouche
> 
> On Mon, 2007-10-08 at 02:10 -0700, wild_oscar wrote:
>> Should this be reported as a possible bug?
>> 
>> 
>> 
>> wild_oscar wrote:
>> > 
>> > Dear all,
>> > 
>> > I've been struggling with a Permgen error on my application's
>> development:
>> > after a number of re-deployments, I get a permgen memory error in
>> Tomcat 6
>> > (described in more detail here 
>> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y
>> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y ).
>> > 
>> > After a few days analizing with Jprofiler (and learing more about
>> memory
>> > leaks in  http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded
>> Frank
>> > Kieviet's  useful blog post), I got to no conclusion about the origin
>> of
>> > the leak. So I conducted a test. Starting from Struts2's blank
>> > application, I made a script that deployed and undeployed the
>> application
>> > in Tomcat so it would fill the permgen space. If it all was ok, once
>> > permgen space was full it would release unlinked objects (thus
>> increasing
>> > permgen's free space). If something went wrong, it would give me the
>> > permgen error.
>> > 
>> > To my suprise, I built my application and got the Permgen space when I
>> > added:
>> > 
>> >         <init-param>
>> > 			<param-name>actionPackages</param-name>
>> > 			<param-value>com</param-value>
>> > 		</init-param>
>> > 
>> > to my Struts2 filter.
>> > 
>> > I had this parameter so I could annotate my actions. 
>> > 
>> > I tried deleting all my .com package classes. So, even with an empty
>> > package, putting the actionPackages parameter will give me a PermGen
>> error
>> > on re-deployment and removing it will make Permgen memory be managed
>> > alright.
>> > 
>> > Does anyone know why this happens and how to solve it? Can you
>> reproduce
>> > this error?
>> > 
>> > All input appreciated, this permgen error is driving me crazy!
>> > 
>> > 
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/actionPackages-parameter-provokes-PermGen-memory-error-tf4570271.html#a13116204
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: actionPackages parameter provokes PermGen memory error

Posted by Sami Dalouche <sk...@free.fr>.
Hi,

have you tried spring's IntrospectionCleanupListener ?
http://www.springframework.org/docs/api/org/springframework/web/util/IntrospectorCleanupListener.html

It looks like the problem you are experiencing is the one the listener
claims to solve.

Regards,
Sami Dalouche

On Mon, 2007-10-08 at 02:10 -0700, wild_oscar wrote:
> Should this be reported as a possible bug?
> 
> 
> 
> wild_oscar wrote:
> > 
> > Dear all,
> > 
> > I've been struggling with a Permgen error on my application's development:
> > after a number of re-deployments, I get a permgen memory error in Tomcat 6
> > (described in more detail here 
> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y
> > http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y ).
> > 
> > After a few days analizing with Jprofiler (and learing more about memory
> > leaks in  http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded Frank
> > Kieviet's  useful blog post), I got to no conclusion about the origin of
> > the leak. So I conducted a test. Starting from Struts2's blank
> > application, I made a script that deployed and undeployed the application
> > in Tomcat so it would fill the permgen space. If it all was ok, once
> > permgen space was full it would release unlinked objects (thus increasing
> > permgen's free space). If something went wrong, it would give me the
> > permgen error.
> > 
> > To my suprise, I built my application and got the Permgen space when I
> > added:
> > 
> >         <init-param>
> > 			<param-name>actionPackages</param-name>
> > 			<param-value>com</param-value>
> > 		</init-param>
> > 
> > to my Struts2 filter.
> > 
> > I had this parameter so I could annotate my actions. 
> > 
> > I tried deleting all my .com package classes. So, even with an empty
> > package, putting the actionPackages parameter will give me a PermGen error
> > on re-deployment and removing it will make Permgen memory be managed
> > alright.
> > 
> > Does anyone know why this happens and how to solve it? Can you reproduce
> > this error?
> > 
> > All input appreciated, this permgen error is driving me crazy!
> > 
> > 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: actionPackages parameter provokes PermGen memory error

Posted by wild_oscar <mi...@almeida.at>.
Should this be reported as a possible bug?



wild_oscar wrote:
> 
> Dear all,
> 
> I've been struggling with a Permgen error on my application's development:
> after a number of re-deployments, I get a permgen memory error in Tomcat 6
> (described in more detail here 
> http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y
> http://www.nabble.com/forum/ViewPost.jtp?post=12984476&framed=y ).
> 
> After a few days analizing with Jprofiler (and learing more about memory
> leaks in  http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded Frank
> Kieviet's  useful blog post), I got to no conclusion about the origin of
> the leak. So I conducted a test. Starting from Struts2's blank
> application, I made a script that deployed and undeployed the application
> in Tomcat so it would fill the permgen space. If it all was ok, once
> permgen space was full it would release unlinked objects (thus increasing
> permgen's free space). If something went wrong, it would give me the
> permgen error.
> 
> To my suprise, I built my application and got the Permgen space when I
> added:
> 
>         <init-param>
> 			<param-name>actionPackages</param-name>
> 			<param-value>com</param-value>
> 		</init-param>
> 
> to my Struts2 filter.
> 
> I had this parameter so I could annotate my actions. 
> 
> I tried deleting all my .com package classes. So, even with an empty
> package, putting the actionPackages parameter will give me a PermGen error
> on re-deployment and removing it will make Permgen memory be managed
> alright.
> 
> Does anyone know why this happens and how to solve it? Can you reproduce
> this error?
> 
> All input appreciated, this permgen error is driving me crazy!
> 
> 

-- 
View this message in context: http://www.nabble.com/actionPackages-parameter-provokes-PermGen-memory-error-tf4570271.html#a13093084
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org