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:
- This should clearly be the default on Mac and Windows binaries.
- It’s probably worth working out a launch dialog that allows users to turn it off/on for privacy reasons.
- 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