[Glass] Lots of seaside objects not being GCed (need gemstone advise)

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Mon Jul 6 17:36:03 PDT 2015


Dale,

I continue with the efforts and based on your comments I did a couple of
things. First, kill all seaside gems. Stop stone. Start stone again (not
seaside gems), and run:

((SystemRepository listInstances: { DpWebSession }) at: 1)

gives me like 50 instances.. meaning there are 50 instances ON DISK. Then I
tried to find a path for any of THOSE:

SystemRepository findReferencePathToObject: ((SystemRepository
listInstances: { DpWebSession }) at: 1) first

But still, #findReferencePathToObject: answers an empty path.

If the path is empty, then "((SystemRepository listInstances: {
DpWebSession }) at: 1)    " should give me zero. Correct? Because both are
checking on disk...

So there is something I don't understand.

Thanks in advance,


On Mon, Jul 6, 2015 at 8:22 PM, Dale Henrichs <
dale.henrichs at gemtalksystems.com> wrote:

>
>
> On 07/06/2015 03:31 PM, Mariano Martinez Peck wrote:
>
>
>>>
>>>>
>>>> Since you have so few sessions, we can test whether the object  leak is
>>>> due to this bug:
>>>>
>>>>   | sessions |
>>>>   System abortTransaction.
>>>>   sessions := WASession allInstances
>>>>     select: [ :each | (each instVarNamed: 'parent') isNil ].
>>>>   System abortTransaction.
>>>>   WAApplication allInstances
>>>>     do: [ :app |
>>>>       | cache keysByObject |
>>>>       cache := app cache.
>>>>       keysByObject := cache instVarNamed: 'keysByObject'.
>>>>       sessions
>>>>         do: [ :session |
>>>>           (keysByObject includesKey: session)
>>>>             ifTrue: self halt ] ]
>>>>
>>>> If you get a halt running the above, then you've been bitten by the bug
>>>> and you you need to arrange to remove the session objects from both dicts.
>>>> See WACache>>gemstoneReap for example code ...
>>>>
>>>
>>>  I did not get a Halt in above code.
>>>
>>>  Did you replace `WASession allInstances` with DpWebSession?
>>>
>>
>>
>>   hahahahaha how can I keep my respect after this? hahaha. Sorry. What
>> another pair of eyes can do... Thanks Dale..Sorry. Having a 2 month baby is
>> killing ahahah (perfect excuse!)
>> OK...so yeah, it halted.
>> So if I understand correct, a possible fix is what you submitted to
>> https://github.com/GsDevKit/Seaside31/issues/68 ?
>> As to the workaround (to remove existing ones) I am not sure what I
>> should do. I guess first step is to apply above fix. Then... A simple
>> WACache allInstances do: [:each | each gemstoneReap]   would not do it?
>>
>>
>
>  Ouch... no... It wasn't that..the Halt I got was simple because... the
> code you pasted says:
>
>
> I guess we could have inferred that this was true, once the reference
> paths came back clean ...
>
> Dale
>



-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150706/81493c48/attachment-0001.html>


More information about the Glass mailing list