This is the signature generation pipeline defined at socorro.signature.generator.DEFAULT_PIPELINE
:
Rule: SignatureGenerationRule
Generates a signature based on stack frames.
For Java crashes, this generates a basic signature using stack frames.
For C/C++/Rust crashes, this generates a more robust signature using normalized versions of stack frames augmented by the contents of the signature lists.
Rough signature list rules (there are more details in the siglists README):
- Walk the frames looking for a "signature sentinel" which becomes the first item in the signature.
- Continue walking frames.
- If the frame is in the "irrelevant" list, ignore it and continue.
- If the frame is in the "prefix" list, add it to the signature and continue.
- If the frame isn't in either list, stop walking frames.
- Signature is generated by joining those frames with " | " between them.
This rule also generates the proto_signature which is the complete list of normalized frames.
Rule: StackwalkerErrorSignatureRule
Appends minidump-stackwalker error to signature.
Rule: OOMSignature
Prepends
OOM | <size>
to signatures for OOM crashes.See bug #1007530.
Rule: AbortSignature
Prepends abort message to signature.
See bug #803779.
Rule: SignatureShutdownTimeout
Replaces signature with async_shutdown_timeout message.
Rule: SignatureRunWatchDog
Prepends "shutdownhang" to signature for shutdown hang crashes.
Rule: SignatureIPCChannelError
Replaces the signature with IPC channel error.
Rule: SignatureIPCMessageName
Appends ipc_message_name to signature.
Rule: SignatureParentIDNotEqualsChildID
Stomp on the signature if MozCrashReason is
parentBuildID != childBuildID
.In the case where the assertion fails, then the parent buildid and the child buildid are different. This causes a lot of strangeness particularly in symbolification, so the signatures end up as junk. Instead, we want to bucket all these together so we replace the signature.
Rule: SignatureJitCategory
Replaces signature with JIT classification.
Rule: SigFixWhitespace
Fix whitespace in signatures.
This does the following:
- trims leading and trailing whitespace
- converts all non-space whitespace characters to space
- reduce consecutive spaces to a single space
Rule: SigTruncate
Truncates signatures down to SIGNATURE_MAX_LENGTH characters.