Ha. Looks like that #rehash does better fit in Object >> #readDataFrom:size:. See Kernel-mt.1526 and System-mt.1424. SqueakMap Catalog should update again fine in Trunk again. :-)
Best, Marcel Am 27.09.2023 11:15:25 schrieb Marcel Taeumel marcel.taeumel@hpi.de: ...this is probably due to cycles in the object graph:
So, we probably should not call #rehash on objects that are incomplete there due to cycle detection. Hmm...
Best, Marcel
Am 27.09.2023 10:55:05 schrieb Marcel Taeumel marcel.taeumel@hpi.de: Hmm... we added extra #rehash sends in 2022 to SmartRefStream >> #next. That's why the behavior changed from 5.3/6.0 to 6.1alpha. Hmm...
The dictionary in question is the "objects" instVar for the central instance of SMSqueakMap. it interesting thing is that it passes twice through SmartRefStream >> #next. The first time with an invalid array and the second time complete and re-hash-able. Hmm... Am 27.09.2023 03:08:22 schrieb Tim Rowledge tim@rowledge.org: Whilst updating the SM entries for MQTT etc I went to update the SM tool and it fails when reading the update map. The issue appears to be that deep in the process a Dictionary exists that has a tally of 4162 but an array of nil. Which doesn't seem quite proper somehow.
The starting point is SMLoaderPlus>loadUpdates but a long way later we get to SmartRefStream>>#readInstanceSize:clsname:refPosn: with a refPosn of 1270478. A couple of methods later we try to rehash the Dictionary
This can never end well.
There's no way I have time to do anything much with this, so volunteers needed...
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim [http://www.rowledge.org/tim] Littergators resolve disputes about rubbish