[Sugar-devel] Datastore index corruption!

Bernie Innocenti bernie at codewiz.org
Wed Jul 28 19:21:12 EDT 2010


(also filed as http://bugs.sugarlabs.org/ticket/2132, but let's keep the
discussion on the mailing-list, please).

Today we figured out one of the possibly many ways in which the index of
the datastore can get corrupted in Sugar. 

Here's an almost infallible recipe to reproduce it:

1. open Write
2. type something
3. close Write
4. wait a few seconds
5. kill -9 the datastore process
6. restart sugar (ctrl-alt-del)

Your saved entry is gone. It still takes up space on disk, but it's no
longer visible until you rebuild the index.

Step 5 is just an artificial way to reproduce the problem. Other equally
effective ways to trigger this data loss issue in the real-world include
running out of battery, holding the power button for 4 seconds, and
triggering the kernel out-of-memory killer.

I'm sure the datastore could definitely work harder to prevent this type
of data loss, by flushing the index immediately after an activity
creates a new entry.

Meanwhile, we're working on a work-around that will hopefully fix all
problems of this sort: a "Rescan" or "Reindex" item on the Journal
palette.

I can already hear a big objection coming: this sort of geeky stuff has
no place in the Sugar UI. True, but I see no alternative until we'll
have a 100% reliable datastore that can fix itself in all cases of
corruption.

-- 
   // Bernie Innocenti - http://codewiz.org/
 \X/  Sugar Labs       - http://sugarlabs.org/



More information about the Sugar-devel mailing list