[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