[Seaside] Seaside sessions not being either unregistered or GCed

Mariano Martinez Peck marianopeck at gmail.com
Fri Jul 3 21:41:10 UTC 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20150703/c004b15d/attachment-0001.htm


More information about the seaside mailing list