/etc/init/apport-noui.conf is non-functional on the phone
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
apport (Ubuntu) |
Fix Released
|
Critical
|
Brian Murray |
Bug Description
I've uploaded a fix to upstart for bug #1235387, but /etc/init/
[ -e /etc/apport/
Apparently further integration work is needed.
The job is also structured quite confusingly, with an 'instance' that means the job will be launched once for each file found in /var/crash - even though the command it runs is called /usr/share/
In any case, I don't see the point of having this as a separate upstart job from whoopsie at all. whoopsie is already monitoring the /var/crash directory with inotify; it should just check /etc/apport/
Changed in apport (Ubuntu): | |
importance: | Undecided → High |
Changed in apport (Ubuntu): | |
assignee: | nobody → Evan Dandrea (ev) |
Changed in apport (Ubuntu): | |
importance: | High → Critical |
milestone: | none → ubuntu-13.10 |
Changed in apport (Ubuntu): | |
milestone: | ubuntu-13.10 → saucy-updates |
Changed in apport (Ubuntu): | |
assignee: | Evan Dandrea (ev) → Brian Murray (brian-murray) |
So just to confirm, after manually touching /etc/apport/ autoreport, my phone is now being crushed by several instances of the apport-noui job processing *the same crash file*, in parallel - apparently, for some reason whoopsie-upload-all finds it necessary to run gdb over the crash files, which is not pretty.
This reinforces my belief that we should ditch /etc/init/ apport- noui.conf completely, and let whoopsie handle those crash files directly.
But it also looks to me like /usr/share/ apport/ apport does not write its crash files atomically... it opens the .crash file, writes to it, and closes it. Which means that regardless of who's watching /var/crash with inotify, there's a race condition here that means some things may try to process the crash files before they're fully written. And on armhf, writing these crash files out is sometimes VERY slow. I think we need apport fixed to write to a temp file and atomically rename into place as .crash, to ensure this all works reliably.