[Seaside] Seaside sessions not being either unregistered or GCed
Bob Arning
arning315 at comcast.net
Sat Jul 4 13:51:59 UTC 2015
look for senders of #reap. There are different "strategies" that do this
under different circumstances.
On 7/4/15 9:13 AM, Mariano Martinez Peck wrote:
>
>
> On Fri, Jul 3, 2015 at 7:09 PM, Bob Arning <arning315 at comcast.net
> <mailto:arning315 at comcast.net>> wrote:
>
> FWIW, my old stand-by is
>
> WACache allInstances do: [ :e | e reap].
>
>
>
> Thanks Bob,
>
> I just tried that and indeed, after doing that and a GC, it removed
> almost all garbage I have around and indeed, it called all the
> #unregistered of my sessions.
> So.... OK, with such code I can at least force the GC of those (which
> is similar to the one I was doing: *WAApplication allInstances do: [
> :each | each clear ].)* , but... I still wonder, why my sessions are
> not "reap" automatically? Why they do not get the #unregistered
> automatically? From what I understand, they should, right?
>
>
> On 7/3/15 5:41 PM, Mariano Martinez Peck wrote:
>> Hi guys,
>>
>> I am having a hard time to see why my seaside sessions are not
>> being GCed nor unregistered.
>> First of all, when I register my app, I set a timeout. I even
>> tried with 1 minute timeout:
>> *
>> *
>> *app cache expiryPolicy configuration at: #cacheTimeout put: 60*
>>
>> I put a *halt in MySessionSubclass >> #unregistered* (which then
>> calls super).
>>
>> I have seen many seaside things around:
>>
>> WARenderVisitor instanceCount -> 77.
>> WAHtmlCanvas instanceCount -> 1061.
>> JQueryClass instanceCount -> 13492.
>> WACallbackRegistry instanceCount -> 77.
>> MySessionSubclass -> 12.
>> .....
>>
>> As you can see, I have plenty of memory around callbacks
>> registries, renders, visitors, sessions etc... If I try to see
>> which sessions were expired:
>>
>> *MySessionSubclass allInstances select: [ :each | (each
>> instVarNamed: 'parent') isNil ] -> #() *
>>
>> The 'parent' instVar there is because "super unregistered" does
>> that and I don't know another way to check if a session is
>> expired or not.
>>
>> Finally, the only way I have to get rid of everything is this way:
>>
>> *WAApplication allInstances do: [ :each | each clear ].*
>>
>> But then, that clears all sessions...even the active ones which I
>> don't want. *So.... how can I force the GC of all none expired
>> sessions? And why my sessions are not receiving #unregistered ?*
>> *
>> *
>> Note also that in my example the instanceCount of
>> MySessionSubclass is bigger than 10, because somewhere I read
>> that Seaside would start cleaning sessions upon 10th.
>>
>> So.... any idea? What am I doing wrong?
>>
>> Thanks in advance,
>>
>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org <mailto:seaside at lists.squeakfoundation.org>
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> <mailto:seaside at lists.squeakfoundation.org>
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20150704/f6b5035f/attachment.htm
More information about the seaside
mailing list