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 
<ser...@elementaryos.org> wrote:

2012/8/22 Eric Gregory <e...@yorba.org>
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 <dan...@elementaryos.org>
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 <dan...@elementaryos.org>
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

-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to     : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp

Reply via email to