← Back to team overview

ubuntu-appstore-developers team mailing list archive

Re: Application upgrades: what happens to running apps?

 

On Wed, Jul 31, 2013 at 10:15 AM, Colin Watson <cjwatson@xxxxxxxxxx> wrote:

> On Wed, Jul 31, 2013 at 08:02:35AM +0100, Roberto Alsina wrote:
> > At the sprint the whole application upgrade story is being talked about,
> > and I have a technical doubt:
> >
> > What happens to a running app when you update its click package?
> >
> > Obviously since app lifecycle[1] means it could be killed while it's
> > upgraded, then maybe it has to reload its state from a archive created by
> > the previous version. That's not our problem, it's on the app developer's
> > hands.
> >
> > OTOH, what happens if it's *not* killed? It may have been stopped and not
> > killed because there was no memory pressure.
> >
> > 1) Does the click package installer kill it if it were stopped?
> >
> > 1a) Would it kill it even if it had focus and was running?
>
> click doesn't do anything with running apps, and I'm inclined to say
> that it shouldn't because it shouldn't have to know about this kind of
> environment-specific detail; this should be the job of a hook of some
> kind if it's needed.
>
>
Sure. In which case, who needs to think about it? It's not me, but I would
hate to see this drop :-)



> > 2) Does installing a new version deletes the old one?
>
> Not necessarily.  If no users have the old version registered, then the
> old version will be garbage-collected (not yet implemented); otherwise
> it will be left around.
>
>
If garbage collection can be smart enough that it never removes running
apps, then
this should not be a problem.


> On a single-user system, I would expect that the old version will be
> deleted strictly after the new version has been installed, symlinks
> adjusted, and all hooks run (in some order).
>
> > 2a) Doesn't that interfere with the idea of having per-user versions?
>
> Well, indeed; that's why we don't unconditionally delete the old one.
> :-)
>
> > 3) Is the old version available to be started while the new one is being
> > installed?
>
> Yes; the symlinks aren't re-pointed until the end.
>
> > 4) If the old version is not killed and the new one is started, would we
> > end up with two instances of the same app on different versions, which is
> > not good?
>
> I expect this should be fixed; it just isn't the job of click itself.
> It seems appropriate for a user-level hook to sort this out.
>
>
Anyone knows who's the right person to handle this? Ted?


> (It is probably not possible to write such a hook quite yet, because you
> can't write a hook that runs without specifically being attached to by
> an app; however, I already have some comments from Ted in my queue which
> should have the effect of addressing this.)
>

Follow ups

References