← Back to team overview

elementary-dev-community team mailing list archive

Re: Geary

 

Sergey,

I know this has been a while, but I've been fighting fires and fixing bugs and had to put this off.  I've committed your patches and they should be available in our next daily build.

http://redmine.yorba.org/issues/5696
http://redmine.yorba.org/issues/5697

Thanks!

-- Jim

On Wed, Aug 22, 2012 at 5:28 AM, Sergey Shnatsel Davidoff <sergey@xxxxxxxxxxxxxxxx> wrote:

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/

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


Follow ups

References