[squeak-dev] Trunk update works again (Re: Kernel-nice.1127 freezes image (was Another missing snapshot: SmallLand-ColorTheme-fbs.6))

Bert Freudenberg bert at freudenbergs.de
Mon Feb 5 21:20:22 UTC 2018


On 5 February 2018 at 19:57, Eliot Miranda <eliot.miranda at gmail.com> wrote:

>
> On Mon, Feb 5, 2018 at 9:42 AM, Levente Uzonyi <leves at caesar.elte.hu>
> wrote:
>
>>
>> As long as both package versions (the one that the method was removed and
>> the one that the method was moved to) are in the same update map, it'll
>> just work.
>>
>
> Is it robust in the presence of interrupts and restarts of the update
> process?
>

​It is so simple that ​it should be as robust as possible under the current
state of things:

The whole update map (all versions in it) is scanned for definitions that
are about to be removed from one package and added to another. That is,
only the category will change, the actual method and class stays the same.
These reorganizations are executed in advance. That's it. The code is
in MCReorganizationPreloader.

Following this, each version in the update map is loaded, in order, without
any knowledge of the reorganization step. If a definition is in fact moved
from a package to another, the preloader will have moved it already and
made both packages dirty. That means a full diff will be performed for
these packages, and as usual, only the actual differences are performed to
bring the working copy in the image up-to-date with the snapshot to be
loaded.

As a last step, the working copies that have been made dirty by the
preloader will be checked again and marked clean if they do match the
snapshot.

This is not the issue. The issue was that a config map was changed
accidentally so that the removal and addition now were in two separate
config maps. That means the reorganization preloader could not see them.
Boom.

​- Bert -​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180205/580d1eb6/attachment.html>


More information about the Squeak-dev mailing list