Closed Bug 1263781 Opened 4 years ago Closed 4 years ago

[skiplist] please add some extra nsTHashtable-related entries to prefixSignatureRegEx

Categories

(Socorro :: General, task)

task
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: njn, Assigned: adrian)

Details

Attachments

(1 file)

In bug 1263188 (and others) there are some very generic crash signatures:

> [@ PLDHashTable::Search | nsBaseHashtable<T>::Get ]
> [@ PLDHashTable::Search | nsInterfaceHashtable<T>::Get ]
> [@ PLDHashTable::Search | nsClassHashtable<T>::Get ]

Please update prefixSignatureRegEx so that these crash signatures will get an extra frame after the 'Get' frame.

Thank you.
Presumably we want to append various methods (probably all of them) on:
  nsBaseHashtable
  nsClassHashtable
  nsDataHashtable
  nsInterfaceHashtable
  nsJSThingHashtable
  nsRefPtrHashtable
Blocks: 1263796
(In reply to David Baron [:dbaron] ⌚️UTC-7 from comment #1)
> Presumably we want to append various methods (probably all of them) on:
>   nsBaseHashtable
>   nsClassHashtable
>   nsDataHashtable
>   nsInterfaceHashtable
>   nsJSThingHashtable
>   nsRefPtrHashtable

Good point. I searched for "nsBaseHashtable<T>::" signatures and looked at a lot of them. Most involved a small number of methods: Get(), Put(), Enumerate(), EnumerateRead(). I then looked at some of the signatures in detail, and the reports within them had a variety of different frames following the nsBaseHashTable<T>:: frame. So splitting them up is a good idea.

And we want nsTHashtable too.

I guess that means we want these entries added:

>   nsTHashtable<T>::.*
>   nsBaseHashtable<T>::.*
>   nsClassHashtable<T>::.*
>   nsDataHashtable<T>::.*
>   nsInterfaceHashtable<T>::.*
>   nsJSThingHashtable<T>::.*
>   nsRefPtrHashtable<T>::.*

These entries already get some processing -- the actual template type is replaced with 'T'. I don't know if that happens before the regex is applied or not.

And then there are the JS hash tables. So we should also add:

> js::detail::HashTable<T>::.*
> js::HashSet<T>::.*
> js::HashMap<T>::.*
No longer blocks: 1263796
I think the <T> replacement is done after all this processing.
Adrian, is this something you could implement? I keep hitting crash reports where the extra stack frame would be useful (e.g. bug 1264853 contains an example that I just encountered.)

Thank you.
Flags: needinfo?(adrian)
Adrian is still on PTO, but if you want to push this more aggressively, you could do a pull request yourself, the list of prefix items is here: https://github.com/mozilla/socorro/blob/master/socorro/processor/signature_utilities.py#L356
Assignee: nobody → adrian
Nicholas, does this look good to you?
Flags: needinfo?(adrian)
Attachment #8742790 - Flags: review?(n.nethercote)
Comment on attachment 8742790 [details] [review]
Link to Github pull-request: https://github.com/mozilla/socorro/pull/3294

r=me with the nsRefPtrHashtable entry added. Thank you.
Attachment #8742790 - Flags: review?(n.nethercote) → review+
Commit pushed to master at https://github.com/mozilla/socorro

https://github.com/mozilla/socorro/commit/1d2f79408cc0fa31f6b6e028e4c5ba66119cb16a
Fixes bug 1263781 - Added nsTHashtable-related signatures to prefix list. (#3294)

r=njn,peterbe
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.