strip leading 0s in addresses in signature generation
Categories
(Socorro :: Signature, task, P2)
Tracking
(Not tracked)
People
(Reporter: willkg, Assigned: willkg)
References
Details
Attachments
(1 file)
When signature generation doesn't have a symbol, it degrades to module@address.
When it's using frame data from breakpad stackwalker, the addresses aren't 0-padded. For example, 0x32ec0
.
When it's using frame data from rust-minidump minidump-stackwalk, the addresses are 0-padded. For example, 0x0000000000032ec0
.
Thus signatures that have frames that don't have symbols will change when we switch to minidump-stackwalk.
This bug covers figuring out what to do about that.
Assignee | ||
Comment 1•3 years ago
|
||
I think we want signature generation to produce the same signature for all three of these scenarios:
- breakpad stackwalker generated output: this covers all the crash reports we've processed so far for which we have signatures which may have related bugs
- rust minidump-stackwalk generated output: this covers all the new crash reports we're going to process going forward after we switch; it also covers crashes in Firefox CI once I get the signature generation API working
- crash pings symbolicated with Eliot: this covers all the crash ping data
I have a script that can build a stack from a crash report that's like what we get from crash pings. I symbolicated that with the symbolication API, then (because everything is terrible), I translated that to a signature generation API request and ran that through signature generation.
Stage is running rust-minidump minidump-stackwalk.
Prod is running breakpad stackwalker.
Thus we can look at bp-dde73f3d-a4c9-4b5d-80a9-642590211212 and get:
signature data source | signature |
---|---|
breakpad stackwalker output | AppleGVA@0x32ec0 |
rust-minidump minidump-stackwalker output | AppleGVA@0x0000000000032ec0 |
rube goldberg script with symbolication and signature generation APIs | AppleGVA@0x32ec0 |
We really want signatures to be the same across all three of these groups because we're tired and we're weary and why deal with this, too.
Given that, I think we need to strip the leading 0s converting addresses (which are strings) from things like 0x0000000000032ec0
to things like 0x32ec0
.
Gabriele, Aria: Any objections to this?
Comment 2•3 years ago
|
||
The primary argument for 0-padding was (iirc) that it made supersearch sorting work better. Presumably signatures do not have the same concern? If so, this seems fine.
Comment 3•3 years ago
|
||
Fine for me too, we don't need sorting in signatures and them being shorter is a plus when we're missing symbols.
Assignee | ||
Comment 4•3 years ago
|
||
Awesome-sauce! I will strip leading 0s with reckless abandon.
Assignee | ||
Comment 5•3 years ago
|
||
Assignee | ||
Comment 6•3 years ago
|
||
Assignee | ||
Comment 7•3 years ago
|
||
This went to production 8 hours ago or so in bug #1745983. Marking as FIXED.
Description
•