[Sugar-devel] activity instance directory

James Cameron quozl at laptop.org
Wed Jan 20 04:01:03 EST 2016


Tony,

Please test this pull request;
https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/306

"Remove Rainbow, clear activity instance/ and tmp/

Sugar depended on Rainbow for clearing the activity instance/ and tmp/
directories.  But Rainbow is no longer used downstream.

 - remove support for Rainbow,

 - clear the contents of instance/ and tmp/ on start and stop,

 - avoid race when creating directories; don't check they exist before
   we create.

https://bugs.sugarlabs.org/ticket/4931

On Wed, Jan 20, 2016 at 01:50:31PM +1100, James Cameron wrote:
> The API documentation was wrong, and has been edited.
> 
> https://wiki.sugarlabs.org/go/Development_Team/Low-level_Activity_API
> 
> Rainbow did delete instance and tmp.  Sugar did not.
> 
> Rainbow has not been in OLPC OS for some time.  (/etc/olpc-security
> must exist, /usr/bin/rainbow-run must be executable).
> 
> Rainbow is not in other builds that use Sugar.
> 
> Sugar activities that were coded for Rainbow, and against this
> documentation, will leave an instance and tmp directory on the
> system.  Every activity.
> 
> Sugar must delete both directories.
> 
> The next question is when?
> 
> 
> 0.  on reinstall of OLPC OS, or reboot of SoaS,
> 
> This is what we do at the moment.
> 
> 
> 1.  on Sugar start,
> 
> cleanup_temporary_files in sugar:src/jarabe/main.py might be extended,
> so that Sugar starts up and deletes the directories.
> 
> Disadvantage is a small delay during Sugar start, the need to iterate
> over the bundle ids, and which list of bundles to use.
> 
> 
> 2.  on activity start,
> 
> The activity factory module function get_environment() in
> sugar-toolkit-gtk3:src/sugar3/activity/activityfactory.py
> might be extended to delete first, before making the directories.
> 
> Disadvantage is a small delay during activity start.
> 
> 
> 3.  on activity close
> 
> In the Activity class method _complete_close() in
> src/sugar3/activity/activity.py we might delete the directories as the
> activity is closing.
> 
> Disadvantage is that an activity that crashes won't delete the
> directories.
> 
> Advantage is that any waste will be cleaned as soon as possible.
> 
> 
> 4.  on activity close in shell
> 
> Disadvantage is that Sugar may be momentarily unresponsive when an
> activity closes or crashes.
> 
> 
> Can we work toward a consensus?
> 
> My preference is on activity start, since that is the last time it
> must be done to be consistent with the design intent.  Are you
> registered on github?
> 
> On Tue, Jan 19, 2016 at 01:47:23AM +0200, Tony Anderson wrote:
> > At a workshop I am giving in Rwanda, an XO got 'Journal Full'. It
> > turns out that the Browse instance folder was using 1.2GB of store.
> > 
> > The low-level API says:
> > 
> > $SUGAR_ACTIVITY_ROOT/instance/
> >     This directory is used similar to a /var/tmp directory, being
> > backed by flash rather than by RAM. It is unique per instance. It is
> > used for transfer to and from the datastore (see keeping and
> > resuming). This directory is deleted when the activity exits
> > (specifically, as soon as all children of the activity's first
> > process die)
> > 
> > However, apparently in 0.106 this directory is not being deleted.
> > 
> > Tony
> 
> -- 
> James Cameron
> http://quozl.netrek.org/

-- 
James Cameron
http://quozl.netrek.org/


More information about the Sugar-devel mailing list