Breakpad/Skip List How To

From MozillaWiki
< Breakpad
Revision as of 20:15, 20 January 2010 by Griswolf (talk | contribs) (added point: Edit the config file)
Jump to navigation Jump to search

Skip list additions are done with changes to the configuration parameters to the 'processor.py' script

  1. Read the bug requesting a chane. Search production for bugs with this signature. Make sure you understand why the change needs to be made.
  2. determine what type of skiplist is appropriate
    • prefixSignatureRegEx (most common) - This is the rule that generates compound signatures. This regular expression is a list of signatures that should be combined with whatever signature follows on the stack to form a compound signature. It keeps accumulating frame signatures until its matching fails. A partial view of this regular expression looks like this: "@0x0|strchr|strstr|strlen|PL_strlen|strcmp|wcslen|memcpy|memmove|memcmp|malloc|realloc..." New values should be added to the end delimited with a vertical bar “|”.
    • irrelevantSignatureRegEx – The rule lists all the frames at the top of the stack that are irrelevant and should be ignored. When cycling through frames, from the top of the stack downward, the first failure of this rule terminates any further application of this rule. This regular expression looks like this: "@0x0-9a-fA-F?{2,}|@0x1-9a-fA-F?|RaiseException?|CxxThrowException?" New values should be added to the end using the vertical bar as a delimiter.
    • signatureSentinels (least common) - This is the first rule to be applied. The code iterates through the stack frame, throwing away everything it finds until it encounters a match. A typical form of this regular expression would be: 'purecall'. Once it finds a match, it passes what's left of the stack frame on the other rules. If it never finds a match, it passes the entire stack to the further rules. New values should be added to the end using the vertical bar as a delimiter.
  3. Edit the file .../socorro/scripts/config/processorconfig.py.dist. Alter the value of the .default for the appropriate skiplist.
  4. Write an IT request for a change to the configuration of the Processor. Reference the svn version of the edited processorconfig.py.dist
    • We've not been trying changes in staging first, they go straight to production – these are difficult to test unless we have copies of specific relevant crashes and the exact production configuration
  5. Specify that the appropriate parameters that will be changed: prefixSignatureRegEx, irrelevantSignatureRegEx or signatureSentinels
  6. explain the syntax of using the vertical bar as the delimiter at the end of what is already there
  7. request a copy of the changed configuration parameter for review
  8. log your work Changelog

Example IT Request: Bug 530718


see more about signature generation on the Socorro wiki at: SignatureGeneration.