We found it.. Finally!!! There was a property model that was using the session as the model object.
It would be cool if PropertyModel, etc would check for this and blow up on construction. i.e. not allow Page, Session, Application as the model object... D/ On Nov 16, 2010, at 11:20 AM, Douglas Ferguson wrote: > Just tested on 1.4.13 and it still happens > > On Nov 16, 2010, at 9:43 AM, Douglas Ferguson wrote: > >> 1.4.12, but the problem has been around since a few versions back. >> >> D/ >> >> On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote: >> >>> Are you using 1.4.13? >>> >>> Martijn >>> >>> On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson >>> <[email protected]> wrote: >>>> Some time ago I posted to the list regarding a stack overflow error that I >>>> was receiving and the advice was to make sure that I didn't have a page >>>> storing a reference to another page. >>>> We did track this down and have just had to ignore it in the production >>>> logs. Now we've made it a priority to track this down. >>>> >>>> Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" >>>> feature. We are able to recreate the bug by pasting a url into a new >>>> browser window and thus generating a new pagemap. On a certain page the >>>> memory consumption doubles as you generate new pagemaps (see the chart >>>> below). The profile is indicating that the memory is being taken up by a >>>> hashmap, but that's as far as we've been able to trace it so far. >>>> >>>>> PageMap # Size Growth >>>>> 13 389523448 1.93 >>>>> 12 202059096 1.93 >>>>> 11 104804096 1.93 >>>>> 10 54352280 1.93 >>>>> 9 28182760 1.93 >>>>> 8 14594976 1.93 >>>>> 7 7549336 1.94 >>>>> 6 3900704 1.94 >>>>> 5 2013480 2 >>>>> 4 1006960 2 >>>>> 3 503696 2 >>>>> 2 252072 1.86 >>>>> 1 135704 >>>> >>>> >>>> Any thoughts or tips on trying to get to the bottom of this one? >>>> >>>> Here's the stack trace >>>> >>>>> at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) >>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>>> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject(Unknown Source) >>>>> at java.util.LinkedList.writeObject(Unknown Source) >>>>> at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source) >>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>>> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) >>>>> at org.apache.wicket.Component.writeObject(Component.java:4660) >>>>> at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source) >>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>>> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source) >>>>> at java.io.ObjectOutputStream.writeObject(Unknown Source) >>>>> at >>>>> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121) >>>>> at java.io.ObjectOutputStream.writeObject(Unknown Source) >>>>> at >>>>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124) >>>>> at >>>>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203) >>>>> at >>>>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.prepareForSerialization(DiskPageStore.java:1190) >>>>> at >>>>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:389) >>>> >>>> >>>> >>>> >>> >>> >>> >>> -- >>> Become a Wicket expert, learn from the best: http://wicketinaction.com >>> >>> --------------------------------------------------------------------- >>> 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]
