CrashRpt: Difference between revisions

Jump to navigation Jump to search
m
begin to de-quote
m (updates from devel list - this may benefit from dequoting/cleanup sooner or later ...)
m (begin to de-quote)
Line 1: Line 1:
{{Stub}}
{{Stub}}
{{Main article|Towards better troubleshooting}}
{{Main article|Towards better troubleshooting}}
the Windows builds (and the 3.0 release, assuming no issues are encountered) now includes a crash-reporting framework. If you experience a crash, please send a report using the dialog which appears - you can provide some additional info if you wish. Your log file, some system info (processor, time of day, Windows version, path to fgfs.exe) and a crash dump areipped-up and sent to a server, and using some additional steps a real back-trace can be produced. (We need to write a privacy policy document for this, current the URL is a 404 - basically saying we promise not to do anything evil with the report info, although I’m not sure how much evil is possible since it’s the same info we ask for in a bug-report - I have switched off the options to include registry contents, and FGFS doesn’t touch the registry anyway) (For the curious, I’m not using Google Breakpad because it’s huge and seems somewhat inactive, instead I’m using CrashRpt which is very compact, completely open-source and new-BSD-licensed: https://code.google.com/p/crashrpt/ - although we do need to include a copy of their license.txt file somewhere in the installer) <ref> {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/31877484/
  | title  = <nowiki>[Flightgear-devel] Release candidates</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Jan 23rd, 2014
  }}
</ref>
CrashRpt was something James wanted to get on the release branch without being sure whether to disable it for non-release branches entirely, or support it in the Windows nightly builds, where it would potentially be useful. (In which case there are further change to be done, since the nightlies use a different installer script)<ref> {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/31886770/
  | title  = <nowiki>Re: [Flightgear-devel] Some feedback</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Jan 26th, 2014
  }}
</ref>
Originally James only enabled CrashRpt for release builds, not nightlies, butit has been enabled since then. Also James explicity *disabled* the video capture support, because he felt the overhead of it would be too invasive when running FG, and the amount of video you’d need to record to make any difference to most crashes would be large.<ref> {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/32621598/
  | title  = <nowiki>Re: [Flightgear-devel] Win 64bit nightly is broken</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Jul 18th, 2014
  }}</ref>
== Help wanted ==
There is one other Windows area Jamees could really use some help with - he added CrashRpt integration several releases ago and has a web server full of crash data.
To make this useful someone with Windows skills needs to write some tooling to automaticly match a crash report to the archived PDB file and hence produce a usable back-trace.
We could then start analysing the most common sources of crashes.
If that’s something you have any interest in, James can explain in more detail.<ref>{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33628094/
    |title=<nowiki>Re: [Flightgear-devel] SimGear/FlightGear Portability Patches</nowiki>
    |author=<nowiki>James Turner</nowiki>
    |date=<nowiki>2015-03-23</nowiki>
  }}
</ref>
someone who knows Windows (and has some time available) needs to actually glue everything together using those tools and scripts. Ideally in a way we can run on the Jenkins slave or similar as an hourly job. That’s the current piece of the flow I never found time to work on myself, yet.
<ref>{{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/33628310/
  | title  = <nowiki>Re: [Flightgear-devel] SimGear/FlightGear Portability Patches</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Mar 23rd, 2015
  }}
</ref>


I've also done some research about automating crash analysis - there are the following solutions: 1) get them from James' server and process them manually (e.g. via the script I mentioned in my previous e-mail, altered as necessary): pros: no changes in existing libraries/infrastructure, dumps remain private and accessible only to trusted developers; cons: Windows-only, some manual steps and script editing are needed; 2) use an automated solution like Dr Dump [1], which can be configured to accept CrashRpt reports; pros: only a small code change is needed, the service automatically analyes crash reports and groups them according to their stack traces (it is only needed to upload .pdb symbols); cons: Windows-only, possible privacy concerns (dumps might contain portions of memory storing personal data, and some people might not be comfortable with storing them on a third-party service); 3) change the crash reporter to Google Breakpad [2]/Crashpad [3] and use an already developed frontend, like Socorro [4] or the Mini Breakpad Server [5], or some custom scripting; pros: cross-platform bug reports; cons: integrating Breakpad is not trivial (as well as huge [6]); Socorro is heavyweight (at least in my opinion). Cheers, Alessandro Menti [1] https://drdump.com/ [2] https://chromium.googlesource.com/breakpad/breakpad/ [3] https://crashpad.chromium.org/index.html [4] https://wiki.mozilla.org/Socorro [5] https://github.com/electron/mini-breakpad-server [6] http://sourceforge.net/p/flightgear/mailman/message/31877484/<ref>{{cite web
I've also done some research about automating crash analysis - there are the following solutions: 1) get them from James' server and process them manually (e.g. via the script I mentioned in my previous e-mail, altered as necessary): pros: no changes in existing libraries/infrastructure, dumps remain private and accessible only to trusted developers; cons: Windows-only, some manual steps and script editing are needed; 2) use an automated solution like Dr Dump [1], which can be configured to accept CrashRpt reports; pros: only a small code change is needed, the service automatically analyes crash reports and groups them according to their stack traces (it is only needed to upload .pdb symbols); cons: Windows-only, possible privacy concerns (dumps might contain portions of memory storing personal data, and some people might not be comfortable with storing them on a third-party service); 3) change the crash reporter to Google Breakpad [2]/Crashpad [3] and use an already developed frontend, like Socorro [4] or the Mini Breakpad Server [5], or some custom scripting; pros: cross-platform bug reports; cons: integrating Breakpad is not trivial (as well as huge [6]); Socorro is heavyweight (at least in my opinion). Cheers, Alessandro Menti [1] https://drdump.com/ [2] https://chromium.googlesource.com/breakpad/breakpad/ [3] https://crashpad.chromium.org/index.html [4] https://wiki.mozilla.org/Socorro [5] https://github.com/electron/mini-breakpad-server [6] http://sourceforge.net/p/flightgear/mailman/message/31877484/<ref>{{cite web
Line 57: Line 102:
}}
}}


{{FGCquote
|1= the Windows builds (and the 3.0 release, assuming no issues are encountered) now includes a crash-reporting framework. If you experience a crash, please send a report using the dialog which appears - you can provide some additional info if you wish. Your log file, some system info (processor, time of day, Windows version, path to fgfs.exe) and a crash dump areipped-up and sent to a server, and using some additional steps a real back-trace can be produced. (We need to write a privacy policy document for this, current the URL is a 404 - basically saying we promise not to do anything evil with the report info, although I’m not sure how much evil is possible since it’s the same info we ask for in a bug-report - I have switched off the options to include registry contents, and FGFS doesn’t touch the registry anyway) (For the curious, I’m not using Google Breakpad because it’s huge and seems somewhat inactive, instead I’m using CrashRpt which is very compact, completely open-source and new-BSD-licensed: https://code.google.com/p/crashrpt/ - although we do need to include a copy of their license.txt file somewhere in the installer)
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/31877484/
  | title  = <nowiki>[Flightgear-devel] Release candidates</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Jan 23rd, 2014
  }}
}}
{{FGCquote
  |There is one other Windows area I could really use some help with - I added CrashRpt integration several releases ago and have a web server full of crash data. To make this useful someone with Windows skills needs to write some tooling to automaticly match a crash report to the archived PDB file and hence produce a usable back-trace. We could then start analysing the most common sources of crashes. If that’s something you have any interest in, I can explain in more detail.
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33628094/
    |title=<nowiki>Re: [Flightgear-devel] SimGear/FlightGear Portability Patches</nowiki>
    |author=<nowiki>James Turner</nowiki>
    |date=<nowiki>2015-03-23</nowiki>
  }}
}}


{{FGCquote
|1= someone who knows Windows (and has some time available) needs to actually glue everything together using those tools and scripts. Ideally in a way we can run on the Jenkins slave or similar as an hourly job. That’s the current piece of the flow I never found time to work on myself, yet.
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/33628310/
  | title  = <nowiki>Re: [Flightgear-devel] SimGear/FlightGear Portability Patches</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Mar 23rd, 2015
  }}
}}


{{FGCquote
|1= Originally I only enabled CrashRpt for release builds, not nightlies, but I think it has been enabled since then. Also I explicity *disabled* the video capture support, because I felt the overhead of it would be too invasive when running FG, and the amount of video you’d need to record to make any difference to most crashes would be large.
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/32621598/
  | title  = <nowiki>Re: [Flightgear-devel] Win 64bit nightly is broken</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Jul 18th, 2014
  }}
}}


{{FGCquote
|1= CrashRpt was something I wanted to get on the release branch - I am not sure whether to disable it for non-release branches entirely, or support it in the Windows nightly builds, where it would potentially be useful. (In which case there are further change to be done, since the nightlies use a different installer script)
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/31886770/
  | title  = <nowiki>Re: [Flightgear-devel] Some feedback</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Jan 26th, 2014
  }}
}}




<references/>
<references/>
[[Category:Core developer documentation]]
[[Category:Core developer documentation]]

Navigation menu