But that POM does use snapshots.
You shouldn't need the repository
http://people.apache.org/repo/m2-snapshot-repository
at all.
Probably, there are no very significant differences between the latest
4.1.2 snapshot and the release. But nevertheless, for a productive
environment, I'd always go with a released version.

> -----Original Message-----
> From: Peter Stavrinides [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, August 29, 2007 7:45 AM
> To: Tapestry users
> Subject: Re: Memory consumption in T4.1.2 - Hard data
> 
> This is my POM:
> 
> <repositories>
> <repository>
> <releases>
> <updatePolicy>always</updatePolicy>
> <checksumPolicy>warn</checksumPolicy>
> </releases>
> <snapshots>
> <updatePolicy>always</updatePolicy>
> <checksumPolicy>fail</checksumPolicy>
> <repository>
> <id>apache.snapshots</id>
> <url>http://people.apache.org/repo/m2-snapshot-repository</url>
> </repository>
> </repositories>
> 
> <dependency>
> <groupId>org.apache.tapestry</groupId>
> <artifactId>tapestry-framework</artifactId>
> <version>4.1.2-SNAPSHOT</version>
> <scope>test</scope>
> </dependency>
> <dependency>
> <groupId>org.apache.tapestry</groupId>
> <artifactId>tapestry-annotations</artifactId>
> <version>4.1.2-SNAPSHOT</version>
> <scope>test</scope>
> </dependency>
> <dependency>
> <groupId>org.apache.tapestry</groupId>
> <artifactId>tapestry-contrib</artifactId>
> <version>4.1.2-SNAPSHOT</version>
> <scope>test</scope>
> </dependency>
> <dependency>
> <groupId>org.apache.tapestry</groupId>
> <artifactId>tapestry-portlet</artifactId>
> <version>4.1.2-SNAPSHOT</version>
> <scope>test</scope>
> </dependency>
> 
> [EMAIL PROTECTED] wrote:
> >  
> >   
> >> my configuration is as follows:
> >>
> >> JDK 6.01 32bit JVM (I have also tested on a 64 bit with no
> >> luck) Tomcat 5.5.20 Debian Linux (2.6.15.28 kernel) Tapestry 
> >> 4.1.2-SNAPSHOT with ognl 2.7
> >>
> >>     
> >
> > Hi Peter, 4.1.2-SNAPSHOT is a typo, I suppose?
> >
> >   
> >> regards,
> >> Peter
> >>
> >> Jesse Kuhnert wrote:
> >>     
> >>> I'd downgrade then if I were you.   Extensive profiling 
> with yourkit
> >>> hasn't shed any new light on whatever problems others are having.
> >>> The OGNL classes indeed aren't being kept in the javassist
> >>>       
> >> pool from
> >>     
> >>> what I can tell.
> >>>
> >>> I have another yourkit snapshot binary to look at so we'll
> >>>       
> >> see what that says.
> >>     
> >>> I don't remember - have you filed any bug reports or reported any 
> >>> problems?  Are you getting ognl exceptions during
> >>>       
> >> development as well
> >>     
> >>> as production?  Do these errors sound like
> >>>       
> >> ummmmm....potential errors
> >>     
> >>> that should be looked at further?
> >>>
> >>> On 8/28/07, Peter Stavrinides <[EMAIL PROTECTED]> wrote:
> >>>   
> >>>       
> >>>> Hi Jessie
> >>>>
> >>>> Any progress on this? .... sorry to bug you, but I have 
> to take a 
> >>>> decision soon, I have two production machines that will need to 
> >>>> upgrade or downgrade Tapestry.
> >>>>
> >>>> Best wishes,
> >>>> Peter
> >>>>
> >>>> Jon Oakes wrote:
> >>>>     
> >>>>         
> >>>>> Hi Bryan,
> >>>>>
> >>>>> I am a relative newbie but I was wondering if  you are
> >>>>>           
> >> running with
> >>     
> >>>>> caching enabled or disabled?  It might make sense to 
> keep things 
> >>>>> around when caching is disabled whereas I think it would
> >>>>>           
> >> clearly be
> >>     
> >>>>> a bug to keep things around with it disabled.
> >>>>>
> >>>>> Jon Oakes
> >>>>>
> >>>>>
> >>>>> Jesse Kuhnert wrote:
> >>>>>       
> >>>>>           
> >>>>>> Hmmm...well,  I don't think I like the sound of any of
> >>>>>>             
> >> that.  I'm just
> >>     
> >>>>>> going to pretend this problem doesn't exist.   (just kidding)
> >>>>>>
> >>>>>> I had thought I was doing something special with the ognl 
> >>>>>> compilations that would cause its generated classes to 
> not hang 
> >>>>>> around afterwards in any pools.
> >>>>>>
> >>>>>> I'll take a look at things this weekend and am sure a fix will 
> >>>>>> appear in between now and Monday - if there is a
> >>>>>>             
> >> reasonable fix to be found.
> >>     
> >>>>>> (in 4.1.3 snapshot form)
> >>>>>>
> >>>>>> On 8/24/07, Bryan Dotzour <[EMAIL PROTECTED]>
> >>>>>>             
> >> <mailto:[EMAIL PROTECTED]> wrote:
> >>     
> >>>>>>         
> >>>>>>             
> >>>>>>> I and another colleague of mine have been investigating
> >>>>>>>               
> >> what seems
> >>     
> >>>>>>> to be a "memory leak" in our Tapestry application for about a 
> >>>>>>> month since we upgraded to T4.1.2.  I won't bore you
> >>>>>>>               
> >> with the saga
> >>     
> >>>>>>> of the last month, but I would like to present the data I've 
> >>>>>>> gathered and look to the list for a proposed solution.  I was 
> >>>>>>> reading a recent thread in which Jesse said (08/09/2007):
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> "There is a map that grows as large as the system using it 
> >>>>>>> internally to javassist of various cached reflection
> >>>>>>>               
> >> info - but it
> >>     
> >>>>>>> doesn't leak in any way."
> >>>>>>>
> >>>>>>> This is precisely what I've found in profiling our
> >>>>>>>               
> >> application and
> >>     
> >>>>>>> it
> >>>>>>> *appears* to be this map that is causing our applications to 
> >>>>>>> eventually run out of memory.
> >>>>>>>
> >>>>>>> The YourKit profiler shows me that, as time goes on,
> >>>>>>>               
> >> there is an
> >>     
> >>>>>>> instance of HiveMindClassPool  that grows and grows as class 
> >>>>>>> instances are created.  This class extends from 
> >>>>>>> javassist.ClassPool and is the map that Jesse is
> >>>>>>>               
> >> talking about in
> >>     
> >>>>>>> his quote above.  And he's right, I wouldn't say that 
> the class 
> >>>>>>> pool "leaks" either because it looks like it's designed
> >>>>>>>               
> >> to retain
> >>     
> >>>>>>> that memory until the class pool itself is no longer needed.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> Take this quote from the javassist.ClassPool javadocs:
> >>>>>>>
> >>>>>>> "Memory consumption memo:
> >>>>>>> ClassPool objects hold all the CtClasses that have been
> >>>>>>>               
> >> created so
> >>     
> >>>>>>> that the consistency among modified classes can be 
> guaranteed. 
> >>>>>>> Thus if a large number of CtClasses are processed, the
> >>>>>>>               
> >> ClassPool
> >>     
> >>>>>>> will consume a huge amount of memory. To avoid this, a
> >>>>>>>               
> >> ClassPool
> >>     
> >>>>>>> object should be recreated, for example, every 
> hundred classes 
> >>>>>>> processed. Note that
> >>>>>>> getDefault() is a singleton factory. Otherwise, detach() in 
> >>>>>>> CtClass should be used to avoid huge memory consumption. "
> >>>>>>>
> >>>>>>> This huge memory consumption by the ClassPool is what I was 
> >>>>>>> seeing. In particular it is the ClassPool that is held
> >>>>>>>               
> >> onto by OgnlRuntime.
> >>     
> >>>>>>> Inspecting this object in the profiler showed that it 
> has a map 
> >>>>>>> containing about 45,000 classes.  All of the keys 
> into this map 
> >>>>>>> were things like:  "ASTTest_11494aca9af" and
> >>>>>>>               
> >> "ASTAnd_11494ace4fb" 
> >>     
> >>>>>>> and the values are instances of javassist.CtNewClass.  
> >>>>>>>               
> >> Each entry
> >>     
> >>>>>>> in this map looks like it retains about 1,900 bytes,
> >>>>>>>               
> >> for a grand
> >>     
> >>>>>>> total of about 90 MB of memory used.
> >>>>>>>
> >>>>>>> These numbers came from my staging deployment where I had the 
> >>>>>>> profiler attached, using some reflection tricks I was
> >>>>>>>               
> >> able to look
> >>     
> >>>>>>> at a production site and found that it had about
> >>>>>>>               
> >> 240,000 items in
> >>     
> >>>>>>> that class pool.. approximately 450 MB of memory.
> >>>>>>>
> >>>>>>> So I guess the questions in my mind are:  Why are 
> there so many 
> >>>>>>> classes in the pool?  Why does the number only ever 
> go up?  Do 
> >>>>>>> those classes really need to stay in the pool forever?
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>           
> >>>>>>>               
> >> 
> --------------------------------------------------------------------
> >>     
> >>>>> - To unsubscribe, e-mail: 
> >>>>>           
> >> [EMAIL PROTECTED] For
> >>     
> >>>>> additional commands, e-mail: [EMAIL PROTECTED]
> >>>>>       
> >>>>>           
> >> 
> ---------------------------------------------------------------------
> >>     
> >>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>>
> >>>>
> >>>>     
> >>>>         
> >>>   
> >>>       
> >> 
> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>     
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >   
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to