Crash Trend Reporting
You can track session start and end data using the name-value pair STARTINFO_FILE with the CDS_ERRORLOG environment variable.
After application exit, whether as a result of a crash or normal exit, a range of system data can be collected. This information can then be analyzed to measure trends, for example, in the number of session starts against the number of system crashes.
If the name-value pair STARTINFO_FILE is set to point to a writable file, each Virtuoso session gets logged. This log file can however greatly increase in size following numerous recordings of start/stop sessions. It is therefore suggested that you consider making these files date dependent on a daily, weekly, or monthly basis. For example, /tmp/startinfo_07_2009. You can set the file name to automatically change using the following: setenv CDS_ERRORLOG "STARTINFO_FILE=/home/jsmith/startTimes_`date +%b%Y`".
This log include details of the program version, process ID, username, start/end dates and also times, or, in the case of a crash, the start/crash date and time gets recorded. Details of the process ID and crash report file name are also included. This can be either an absolute file path or the filename, which can be created and updated using the name-value pair DIR or /tmp.
[ 7555@mymachine@jsmith ] start date/time:Sat Mar 21 06:37:57 2009 virtuoso IC6.1.4.355 plat:sun4v
[ 7555@mymachine@jsmith ] crash date/time:Sat Mar 21 06:38:26 2009 virtuoso IC6.1.4.355 plat:sun4v
crash report file :: /tmp crashReport_032109_0638_IC6.1.4.355_jsmith_mymachine.log
STARTINFO_FILE contains the name of the startinfo in CDS_ERRORLOG, or in/tmp if DIR is not set. The startinfo file is created automatically if it does not exist, or it can point to an existing file.
If you shutdown a virtuoso process using the kill -9 command, the STARTINFO_FILE does not record the exit/crash.
To send the stack trace to the log file when the application hangs, type the following command in the UNIX shell terminal: kill -s USR1 <pid>
Availability of Signal Description Information for Crashes
The crash detector report also displays the termination signal name and number, for example “signal:Hangup(1)”. This provides additional information on the type of crash that has occurred, such as internal application errors recorded as, for example, “#11 (segFault)” or “#4 (illegal instruction)” .Alternatively, it can inform if the software has likely been killed by the user, for example “#15 (sigterm)” and “#6 (sigabort)”.
If a signal description is therefore available, to describe the type of crash, the STARTINFO_FILE displays it as follows:
[7555@mymachine@jsmith] 11(SegFault):Wed Jul 8 13:16:03 2009 virtuoso IC6.1.4.404 lnx86
It should be noted however that signal numbers and descriptions may vary from platform to platform.
Storing User Feedback on Crashes
When a Virtuoso session crashes, the Fatal Application Error dialog appears. In this dialog, you can specify the nature of the Virtuoso crash. This information is stored in the crash report and by STARTINFO_FILE.
For example, if you select the option Virtuoso unexpectedly crashed, STARTINFO_FILE stores this information in the following format.
[7555@mymachine@jsmith] crash(Aborted):Fri Aug 12 15:52:08 2011 Virtuoso IC6.1.6-64b.DEL.173 lnx86 ****PROCESS CRASHED****
Crash Due to X Server Error
If a crash occurs due to a X Server error, the startinfo file uses the term “xkill” to distinguish this type of crash (rather than “crash”). For example:
[ 7555@mymachine@jsmith ] xkill date/time:Sat Apr 21 06:42:46 2009 virtuoso IC6.1.4.375 plat:sun4v
Crash Detector Display Check
The crash detector also performs a response check of XtOpenDisplay()on the machine being used for software display, recording the setting at the time of crash.
If this check establishes that XtOpenDisplay() is not responding, it returns NULL, and output that information into the X server section of the crash report. For example, (xserver: (Not Responding)).
If virtuoso is being run in -nograph mode this check does not get performed.
Standard Virtuoso Exit
If Virtuoso exits as expected, that is it has not terminated as the result of a crash or X Server error, the following information format gets displayed in the STARTINFO_FILE:
[7555@mymachine@jmisth] exit(111):Thu Jun 11 12:35:43 2009 virtuoso IC6.1.4.387 sun4v
Related Topics
Crash Report Customization
Crash Report Data Storage
Return to top