Comment 29 for bug 1303676

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

To clearly state the issue:
1. the leader of the process group for the app using oxide is sent STOP by the Unity appmgr (application lifecycle). Because the app is started via upstart, the appmgr sends SIGSTOP to -<pid>, ie the process group and the process group leader and all children (ie, the oxide processes) are stopped. This all works correctly as Chris stated
2. low memory killer (android) kills a pid (kernel OOM could also do this), possibly (often?) the process group leader
3. since the process group leader is gone, the appmgr does not resume the oxide child processes, leaving them hanging around

Two things seem to be happening here
1. OOM is called more often with webapp-container using oxide than with qtwebkit
2. appmgr is not cleaning up the killed processes

For '1', alex-abreu stated that for compatibility with 13.10 webapps in the store, webapp-container/webbrowser-app loads *both* qtwebkit and oxide and detects which to use at runtime. This is likely the cause for the OOM

For '2', appmgr needs to be a little smarter and notice that if the leader is killed, the other processes in the process group need to also be killed. There are a couple of ways to do this, the merits of which are being discussed.