[sugar] possible problems with incremental updates and shared nand
Mikus Grinbergs
mikus
Thu Apr 3 00:31:26 EDT 2008
A while ago, having booted Joyride, I used 'olpc-update' to install
a newer Update.1 version (let's call this the Update.1 system-boot).
Then, having booted Update.1, I used 'olpc-update' to install a
newer Joyride version (let's call this the Joyride system-boot). So
far, so good -- both system-boots came up fine, even after I applied
my after-install customizations.
But because it takes time to apply those customizations, I *don't*
install every build that comes along. In fact, I had been running
some two weeks solely with that Joyride system-boot. During that
time, I used 'yum' to "incrementally" install updated Joyride rpms
that became available, plus I manually used 'sugar-install-bundle'
to install some updated .xo packages that became available.
Just tried to boot my Update.1 system-boot -- it failed (sugar never
came up). What I suspect happened is nand 'cross-pollination'
between the Joyride system-boot and the Update.1 system-boot.
I think that when two different boots are installed on nand by
olpc-update, it checks whether corresponding modules between the two
boots are identical -- if they are, rather than keeping separate
copies for each boot, only one copy gets saved, and there is a HARD
LINK put into the other boot to that single shared copy.
When subsequently an "incremental update" is performed (e.g., using
'yum') which (on the Joyride system-boot) replaces a shared module,
if there was a HARD LINK the Update.1 system-boot will pick up that
replaced module content as well. Because on my system the two
system-boots were from two different "trees", I think it possible
that the Update.1 sugar was compatible only with the two-weeks-ago
module, not the changed module -- hence the failure of the Update.1
sugar to boot after two weeks of incremental changes for Joyride.
mikus
More information about the Sugar-devel
mailing list