Closed Bug 1319298 Opened 8 years ago Closed 8 years ago

Unhelpful crash signatures involving __rust_start_panic on Mac and Linux

Categories

(Socorro :: Backend, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: n.nethercote, Assigned: n.nethercote)

References

Details

Attachments

(1 file)

We have some rust-url crashes that currently crash on Windows with the following signatures:

> [@ xul.dll@0x5eff6 | xul.dll@0x61eea | mozilla::net::RustURL::GetFilePath ]
> [@ xul.dll@0x613fd | xul.dll@0x64a3c | xul.dll@0x649d3 | xul.dll@0x6a4eb | xul.dll@0x6a367 | rust_url_capi::rusturl_get_path ]
> [@ xul.dll@0x613fd | xul.dll@0x649dc | xul.dll@0x64973 | xul.dll@0x6a4db | xul.dll@0x6a357 | rust_url_capi::rusturl_get_path ] 

These aren't great signatures (xul.dll, bleh) but they're not terrible.

In contrast, on Mac and Linux we get this hopelessly generic signature:

> [@ mozalloc_abort | abort | __rust_start_panic ]

Ironically enough, this is because on Mac and Linux the stack trace is better...

> 0 	firefox 	mozalloc_abort 	memory/mozalloc/mozalloc_abort.cpp:33
> 1 	firefox 	abort 	memory/mozalloc/mozalloc_abort.cpp:80
> 2 	libxul.so 	__rust_start_panic 	
> 3 	libxul.so 	std::panicking::rust_panic_with_hook::hc303199e04562edf
> 4 	libxul.so 	std::panicking::begin_panic::h6ed03353807cf54d 	
> 5 	libxul.so 	std::panicking::begin_panic_fmt::hc321cece241bb2f5 	
> 6 	libxul.so 	core::panicking::panic_fmt::h27224b181f9f037f 	
> 7 	libxul.so 	core::panicking::panic_bounds_check::h19e9bbc59320a57e 	
> 8 	libxul.so 	rust_url_capi::rusturl_get_path 	third_party/rust/url/src/lib.rs:1190
> 9 	libxul.so 	mozilla::net::nsStandardURL::GetPath 	netwerk/base/nsStandardURL.cpp:1392

... so Socorro's signature generation stops at __rust_start_panic.

I guess the simple thing here is to just change Socorro's crash signature
generation to skip over the following regexes:

- __rust_start_panic
- std::panicking::*

Or if the second entry is too broad, we could skip the specific functions, e.g.
std::panicking::begin_panic, etc.
Blocks: 1268328
Commit pushed to master at https://github.com/mozilla/socorro

https://github.com/mozilla/socorro/commit/7a0329ba25ee2c306f783cf4484fbaa7d2a3387f
Fixes bug 1319298 - Handle some rust functions in signature generation.

For a crash stack trace like this:

> mozalloc_abort
> abort
> __rust_start_panic
> std::panicking::rust_panic_with_hook::hc303199e04562edf
> std::panicking::begin_panic::h6ed03353807cf54d
> std::panicking::begin_panic_fmt::hc321cece241bb2f5
> core::panicking::panic_fmt::h27224b181f9f037f
> core::panicking::panic_bounds_check::h19e9bbc59320a57e
> rust_url_capi::rusturl_get_path
> mozilla::net::nsStandardURL::GetPath

this commit will change the crash signature from this:

> [@ mozalloc_abort | abort | __rust_start_panic ]

to this:

> [@ mozalloc_abort | abort | __rust_start_panic | rust_url_capi::rusturl_get_path ]]
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Attachment #8812999 - Flags: review?(ted) → review+
Assignee: nobody → n.nethercote
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: