[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