[Pharo-dev] [Pharo-users] STON materialization corrupts a dictionary if the keys are references

Sven Van Caekenberghe sven at stfx.eu
Wed Apr 6 08:04:45 EDT 2016


https://pharo.fogbugz.com/f/cases/17946/STON-materializes-unhealthy-Dictionaries-and-Sets-when-references-occur-in-its-keys-or-elements

fix coming

> On 05 Apr 2016, at 13:11, Sven Van Caekenberghe <sven at stfx.eu> wrote:
> 
>> 
>> On 05 Apr 2016, at 13:02, Nicolai Hess <nicolaihess at gmail.com> wrote:
>> 
>> 
>> 
>> 2016-04-05 12:32 GMT+02:00 Cyril Ferlicot Delbecque <cyril.ferlicot at gmail.com>:
>> 
>> 
>> On 05/04/2016 12:09, Sven Van Caekenberghe wrote:
>> 
>>> Like I said, it is a hashing issue, sometimes it will be correct by accident.
>>> 
>>> I hope you did not have to much trouble with this bug, I guess it must have been hard to chase.
>>> 
>>> Is it urgent ?
>>> 
>>> I probably can give you a quick fix, but I would like to think a bit more about this, since rehashing each materialised dictionary seems expensive.
>>> 
>>> 
>>> 
>> 
>> Hi Sven,
>> 
>> I got the same kind of problem in a personal application.
>> 
>> I use Sets that I serialize and I had a lot of trouble because sometimes
>> some action had strange behaviours.
>> 
>> For example in a set with element `aSet remove: aSet anyOne` raised 'XXX
>> not found in aSet'.
>> 
>> I am glad to hear that it is a Ston issue and not me that used sets in a
>> bad way :)
>> 
>> For me too it is not urgent since I have a not of university work for
>> the moment.
>> 
>> 
>> 
>> How are hashed collections created/filled during ston-parsing ?
>> If the position in a hashed collection is created by a ston-reference, that is later replaced by the "real" object,
>> the index in the dictionary  (or other hashed collections) may be wrong.
> 
> Yes, that is indeed it, Nicolai. 
> 
> But I would like to try to minimise the rehashing as it seems expensive. But first I need a more reliable failure.
> 
>> --
>> Cyril Ferlicot
>> 
>> http://www.synectique.eu
>> 
>> 165 Avenue Bretagne
>> Lille 59000 France




More information about the Pharo-dev mailing list