Breakpad Crash logging

I’d like to suggest a strategy towards attacking these “Avogadro is really crashy” concerns. Part of this, I think, is the number of people still running 1.0.3, rather than 1.1.0.

But part is the difficulty testing all paths. I think we should integrate the Breakpad library used by Firefox and Chrome into Avogadro:

  1. This should clearly be the default on Mac and Windows binaries.
  2. It’s probably worth working out a launch dialog that allows users to turn it off/on for privacy reasons.
  3. It will definitely be a compile-time option, like the update checker.

I think the huge benefit is that we’ll gain a library of crash dumps – at least some of these will help us find flaws.

https://wiki.mozilla.org/Breakpad
http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad

One caveat, is that we need a server-side collector. Can Kitware provide that? I haven’t found much on the requirements, or I’d host it on openmolecules.net

I’m also integrating with the Clang Static Analyzer – I think use of more static analysis tools will help us find lurking bugs too.
http://clang-analyzer.llvm.org

Thoughts?
-Geoff


Prof. Geoffrey Hutchison
Department of Chemistry
University of Pittsburgh
tel: (412) 648-0492
email: geoff.hutchison@gmail.com
web: http://hutchison.chem.pitt.edu/

On Sat, Jan 19, 2013 at 2:05 PM, Geoffrey Hutchison geoff.hutchison@gmail.com wrote:

I’d like to suggest a strategy towards attacking these “Avogadro is really crashy” concerns. Part of this, I think, is the number of people still running 1.0.3, rather than 1.1.0.

Agreed, although some of our core features I don’t think we ever
really stabilized. I still seem to have a great ability to adjust
Avogadro when adjust hydrogens is on, but haven’t had time to figure
out the cause. Reading through their pages it is I am not clear on how
much work it would be to integrate/set up. I think we could figure out
hosting here, but we don’t have much in the way of development
resources to dedicate to this right now.

But part is the difficulty testing all paths. I think we should integrate the Breakpad library used by Firefox and Chrome into Avogadro:

  1. This should clearly be the default on Mac and Windows binaries.
  2. It’s probably worth working out a launch dialog that allows users to turn it off/on for privacy reasons.
  3. It will definitely be a compile-time option, like the update checker.

I think the huge benefit is that we’ll gain a library of crash dumps – at least some of these will help us find flaws.

I couldn’t see what these would look like, but it would be great to
have. On Linux there is also the KDE crash dialog, but we would not
necessarily catch as many people.

https://wiki.mozilla.org/Breakpad
http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad

One caveat, is that we need a server-side collector. Can Kitware provide that? I haven’t found much on the requirements, or I’d host it on openmolecules.net

I found trouble finding where to get the server on first glance, I
will see if I can dig into what the server needs but it it likely we
could find somewhere to host a service like this.

I’m also integrating with the Clang Static Analyzer – I think use of more static analysis tools will help us find lurking bugs too.
http://clang-analyzer.llvm.org

Thoughts?

Very happy to add this to the todo list, but not sure when we will get
to it. We have some time, but in the next couple of months there are
quite a few tasks we need to get finished with limited time. I should
be able to put a few hours into figuring out how much work it would be
to integrate as the libraries look like they would be a great
addition. I think they would really augment testing, but without a
thorough test suite it would remain a very reactive strategy.

It is very frustrating getting reports of very crashy without examples
on how to reproduce, I think if we add these tools we should add a
dialog that lets you choose if you want to send the report and asks
you for more details on what you were doing at the time as seems
pretty standard in most applications. We have been talking internally
about static analysis tools and I would like to find a simple way to
add the Clang static analyzer to our dashboards.

Marcus

On Sat, Jan 19, 2013 at 2:35 PM, Marcus D. Hanwell
mhanwell@gmail.com wrote:

On Sat, Jan 19, 2013 at 2:05 PM, Geoffrey Hutchison geoff.hutchison@gmail.com wrote:

https://wiki.mozilla.org/Breakpad
http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad

One caveat, is that we need a server-side collector. Can Kitware provide that? I haven’t found much on the requirements, or I’d host it on openmolecules.net

I found trouble finding where to get the server on first glance, I
will see if I can dig into what the server needs but it it likely we
could find somewhere to host a service like this.

I made the leap that was needed - the web interface and server are one
in the same :wink: It needs more than most web services, but looking at
the installation docs I think we could put something together,

http://socorro.readthedocs.org/en/latest/installation.html

Once we add support for something like this we will of course need to
try and get people to look at the results collected. I will see if I
can get back to going through outstanding bug reports, it would be
great to get back to a habit of spending some time on bugs more
regularly.

Marcus

pretty standard in most applications. We have been talking internally
about static analysis tools and I would like to find a simple way to
add the Clang static analyzer to our dashboards.

I’m happy to run Clang once a week or something. Right now, most of the bugs are in spglib (big surprise) or look like false positives. I did see a few places where we probably need more defensive checks for NULL pointers.

The big question is how to post things like Clang or KDE’s Krazy. (Is the Krazy output still posted?)

Thanks,
-Geoff