Open Bug 1454660 Opened 6 years ago Updated 2 years ago

Corrupt symbols in WebRender

Categories

(Toolkit :: Crash Reporting, defect)

defect

Tracking

()

People

(Reporter: jrmuizel, Unassigned)

References

Details

This crash is missing a bunch of symbols.

https://crash-stats.mozilla.com/report/index/56f78f7c-bab5-42fb-a028-b99e40180417

In the raw dump there's a bunch of "corrupt_symbols": true
Flags: needinfo?(ted)
Running this crash through minidump_stackwalk locally stderr contains a bunch of lines like:
2018-04-17 17:32:36: basic_source_line_resolver.cc:79: ERROR: Line 4411437: ParseLine failed
2018-04-17 17:32:36: basic_source_line_resolver.cc:79: ERROR: Line 4411439: ParseLine failed
2018-04-17 17:32:36: basic_source_line_resolver.cc:79: ERROR: Line 4411441: ParseLine failed
2018-04-17 17:32:36: basic_source_line_resolver.cc:79: ERROR: Line 4411443: ParseLine failed
2018-04-17 17:32:36: basic_source_line_resolver.cc:79: ERROR: Line 4411485: ParseLine failed

Those lines are:
FUNC 3772380 a 0 rsdparsa_capi::types::string_vec_len
3772380 2 -753 7627
FUNC 3772390 2a 0 rsdparsa_capi::types::string_vec_get_view
3772390 2 -6 7627
FUNC 37723c0 a 0 rsdparsa_capi::types::u32_vec_len
37723c0 2 -735 7627
FUNC 37723d0 1b 0 rsdparsa_capi::types::u32_vec_get
37723d0 2 -213 7627

...so these are somehow getting negative line numbers?
Flags: needinfo?(ted)
Ugh:
https://chromium.googlesource.com/breakpad/breakpad/+/master/src/common/module.h#124

For some reason the Module::Line class that actually stores line number info to be output from dump_syms uses an `int` for line number, whereas everything else uses `uint32_t`. It still seems weird that it'd overflow, but maybe this is just bad integer conversion in C++.
Ted: Is this something you can take on?
I think this is a bug in dump_syms. I looked into it a little bit but not enough to get anywhere.
Component: Processor → Crash Reporting
Product: Socorro → Toolkit
Blocks: 1440088
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.