← Back to team overview

elementary-dev-community team mailing list archive

Re: Geary

 

2012/8/22 Eric Gregory <eric@xxxxxxxxx>

> Apport's traces could be quite helpful.  We do have a PPA for daily builds
> for Geary and Shotwell.  Would that help?  How do we enable it?
>
> The daily build PPA is here, if that helps:
> https://launchpad.net/~yorba/+archive/daily-builds/<https://launchpad.net/%7Eyorba/+archive/daily-builds/>
>

First of all, you'll need to make debugging symbols for Geary available
from the PPA in addition to the stripped binary. In Debian/Ubuntu they're
shipped in a separate -dbg package (e.g. geary-dbg). I've attached a patch
that adds the geary-dbg package and also bumps debhelper version
requirement to 8, as instructed by lintian.
(By the way, I wrote an automated script for adding -dbg packages when we
were enabling Apport in elementary. You can find at
https://code.launchpad.net/~elementary-os/elementaryos/packaging-scripts)

Second, you will need two config files for Apport:
/usr/share/apport/package-hooks/source_geary.py and
/etc/apport/crashdb.conf.d/geary-crashdb.conf (attached; generator script
available from
https://code.launchpad.net/~elementary-os/elementaryos/apport-hooks branch).

On a stable system such as 12.04 you'll also need the user to manually
enable Apport crash reporting by undoing this change:
http://bazaar.launchpad.net/~ubuntu-core-dev/ubuntu/precise/apport/ubuntu/revision/1948#etc/apport/crashdb.conf
On elementary OS dailiy builds or on Ubuntu 12.10 it's not needed.

This will enable crash submission, but that's just a half of the hunt.

Most users don't have debugging symbols installed. Even if they do have
some installed, it's not the whole dependency tree of an app. And even
getting the whole tree is not completely sufficient for nontrivial reasons
which I won't list here. Because of this crash reports need
post-processing, or so-called retracing. Apport's retracer collects all
required debugging symbols and extracts human-readable data from the core
dump submitted with the crash report. Apport also has a component called
crash-digger that scrapes LP bug reports and feeds all unretraced ones to
the retracer, so the process is completely automated.

However, there are several gotchas here.
Obviously, somebody has to run crash-digger. Moreover, crash-digger should
be invoked often, because if a PPA update is issued before a crash is
retraced, most likely it will be impossible to retrace the crash.
Apport-retrace does not support cross-architecture retracing, so there
should be two instances of crash-digger, either on two machines (for i386
and amd64), or on an amd64 machine, with one instance placed in an i386
chroot.
Apport-retrace needs some configs too, see "man apport-retrace" and our
config dir as a real-life example:
https://code.launchpad.net/~elementary-os/elementaryos/apport-retrace-sandbox
Apport-retrace and crash-digger should be run from an Ubuntu 12.10 machine
or a bzr checkout, because elementary is (surprisingly) the first
non-Canonical party to adopt Apport, and prior to our adoption it hardcoded
some Ubuntu-specific values and didn't support retracing crashes for LP
other than Ubuntu. Running it from bzr checkout is explained here:
https://bugs.launchpad.net/apport/+bug/1003506/comments/15
Crash-digger doesn't have a manpage, but I've documented its typical
invocation as used in elementary, you can see it here:
https://docs.google.com/document/d/16bUZqrSudlVt7Z7gAafS15U-ZlmvhdSMpLEL1wcatGg/edit#heading=h.v15mmt4if3m3

We already run two (amd64 and i386) instances of retracer, so if you're OK
with adding our bot to bug supervisors group of Geary project in Launchpad
(or getting crash reports only from elementary OS installations), you can
simply use our retracer and not mess with the setup. Though "our retracer"
is just me running crash-digger on my home PCs from time to time.

 2012/8/21 Daniel Fore <daniel@xxxxxxxxxxxxxxxx>

> Report bugs: http://redmine.yorba.org/projects/geary/issues
>

Before you ask, if you can't find the "Report a bug" button, it's OK,
because there's none.

To report a bug you'll have to create an account (the old-school
yet-another username/password pair - there's no OpenID or OAuth support),
confirm it via email (my email confirmation was considered spam by Gmail;
if it seems to get stuck, look in spam), re-enter the username and password
to log in, then the navigate to "Issues" tab and click "New issue". The
"New issue" button won't be there unless you're logged in.

Thanks Christian for showing it to me, I'd have never found it myself. I
wonder how users of Yorba apps manage to figure it out...

2012/8/21 Daniel Fore <daniel@xxxxxxxxxxxxxxxx>

> Check out the wiki for more: http://redmine.yorba.org/projects/geary/wiki
>

I've noticed that it doesn't tell what to do if "valac --version" returns
an earlier version than 0.17, so I've added a command for switching valac
versions. It'd be nice to mention the daily PPA too (I didn't add that
because I'm not familiar with Yorba documentation conventions).

Regards,

-- 
Sergey "Shnatsel" Davidoff
OS architect @ elementary

Attachment: add-geary-dbg-package.patch
Description: Binary data

Attachment: geary-crashdb.conf
Description: Binary data

Attachment: source_geary.py
Description: Binary data


Follow ups

References