Closed Bug 1541991 Opened 6 years ago Closed 6 years ago

remove duplicate frames

Categories

(Socorro :: Signature, defect, P2)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: willkg, Unassigned)

References

Details

In bug #1541474, we added a prefix so that signature generation would continue beyond real_drop_in_place frames. After that change, bp-d9291a0a-6061-4c9f-aac7-885d10190403 ends up with this signature:

app@fab7d1e176d1:/app$ socorro-cmd signature d9291a0a-6061-4c9f-aac7-885d10190403
Crash id: d9291a0a-6061-4c9f-aac7-885d10190403
Original: core::ptr::real_drop_in_place<T>
New:      core::ptr::real_drop_in_place<T> | core::ptr::real_drop_in_place<T> | core::ptr::real_drop_in_place<T> | geckoservo::glue::Servo_StyleSet_Drop
Same?:    False

That's silly. Signatures shouldn't have consecutive duplicate parts.

The stack for this crash is this:

1. static void core::ptr::real_drop_in_place<smallvec::SmallVec<[style::stylist::Rule; 1]>>(struct smallvec::SmallVec<[style::stylist::Rule; 1]>*)
2. static void core::ptr::real_drop_in_place<hashglobe::table::RawTable<style::gecko_string_cache::Atom, smallvec::SmallVec<[style::stylist::Rule; 1]>>>(struct hashglobe::table::RawTable<style::gecko_string_cache::Atom, smallvec::SmallVec<[style::stylist::Rule; 1]>>*)
3. static void core::ptr::real_drop_in_place<style::stylist::CascadeData>(struct style::stylist::CascadeData*)
4. void geckoservo::glue::Servo_StyleSet_Drop(struct style::gecko_bindings::sugar::ownership::Owned<style::gecko_bindings::bindings::RawServoStyleSet>)

This bug covers looking into this and fixing it (remove consecutive duplicate frames) or discovering why we shouldn't do that.

I don't think the work involved is hard. It looks like it involves adding a de-dupe line around here:

https://github.com/mozilla-services/socorro/blob/70f9e1f223834f6ebb9837737e5e4eb0967f1c05/socorro/signature/rules.py#L323

First question, is there any reason to keep consecutive duplicate frames in a signature?

Type: task → defect
Priority: -- → P2
See Also: → 1541474

I asked around about this. Seems like we want to differentiate between "fun1 | fun1 | fun2" and "fun1 | fun2" because they're different stacks.

Nathan pointed out that maybe signature generation shouldn't be replacing the interesting bits for <T> at all. Socorro does this for both C++ and Rust code. Lars says that was added as part of bug #1163831. Seems like we should either keep the <T> thing or replace that code with something that has similar length characteristics.

Given that, seems like a bad idea to de-duplicate consecutive duplicate frames. One option is to create a new bug for figuring out a more nuanced handling for Rust template instantiation instead of replacing with <T>.

Anyhow, marking this as WONTFIX.

Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.