Ma special collections-sig.87.mcz

Igor Stasenko siguctua at gmail.com
Wed Aug 22 21:52:51 UTC 2007


Ok, it seems we found a bug!!

in MaWeakValueDictionary, i added method:
--
reject: aBlock
10 seconds asDelay wait.
^ super reject: aBlock
--

i putted a delay in MaWeakValueDictionary>>#reject, because suspected
that squeak weak finalization process interferes with MagmaOidManager
dicts cleanup.
After adding it, no errors appear anymore. (I run test 2 time, Florian
runs 3 times in a row).
He haves a pretty long update process with many commits and updates.

Of course its still under question, is dictionaries working well in
other cases, but in this case it seems that bug caused by interference
with other processes (i bet it weak finalization process).
Why it din't shows itself before - i think because old dicts was not
so fast , so other process  has enough time to do things before race
condition can appear.

Any ideas how to avoid putting delay there and prevent racing with
other processes?

-- 
Best regards,
Igor Stasenko AKA sig.


More information about the Magma mailing list