Closed
Bug 1510724
Opened 6 years ago
Closed 6 years ago
Add more diagnostics for PLHashTables and PLDHashTables
Categories
(Core Graveyard :: Web Replay, enhancement)
Core Graveyard
Web Replay
Tracking
(firefox65 fixed)
RESOLVED
FIXED
mozilla65
Tracking | Status | |
---|---|---|
firefox65 | --- | fixed |
People
(Reporter: bhackett1024, Assigned: bhackett1024)
References
Details
Attachments
(5 files)
13.58 KB,
patch
|
Details | Diff | Splinter Review | |
635 bytes,
patch
|
froydnj
:
review+
|
Details | Diff | Splinter Review |
5.10 KB,
patch
|
loganfsmyth
:
review+
|
Details | Diff | Splinter Review |
1.70 KB,
patch
|
loganfsmyth
:
review+
|
Details | Diff | Splinter Review |
6.17 KB,
patch
|
loganfsmyth
:
review+
|
Details | Diff | Splinter Review |
There are still a fair number of web replay crashes related to PLHashTable and PLDHashTable operations. These generally seem related to corruption of the custom callbacks generated for these tables. The attached patch adds some diagnostics to check for this, by redirecting the functions operating on these tables to check that callbacks are used with consistent tables and that their contents remain intact.
This uses redirections to avoid instrumenting the hashtable code directly, which can't be done for plhash.c (it is in NSPR) and would be ugly for PLDHashTable.cpp. This risks missing instrumentation if these functions are inlined somewhere, but I haven't seen cases where these functions are inlined and in any case it is OK to not run the diagnostics sometimes (crashing call stacks can be inspected to see if the diagnostics were called on that path).
Assignee | ||
Comment 1•6 years ago
|
||
Add an accessor so that diagnostics can get the raw operations in a PLDHashTable before any record/replay modified version of the ops has been unwrapped.
Attachment #9028406 -
Flags: review?(nfroyd)
Assignee | ||
Comment 2•6 years ago
|
||
Add methods to check the integrity of the operations in a PLHashTable or PLDHashTable, by making sure the operations are used with the same table consistently and that any generated code for them has not been corrupted.
Attachment #9028407 -
Flags: review?(lsmyth)
Assignee | ||
Comment 3•6 years ago
|
||
Add a new PreambleResult kind, IgnoreRedirect, that can be used in redirections that don't modify the calling thread's event stream at all but don't also prevent events within the call from being recordsed (as PreambleResult::PassThrough would do).
Attachment #9028408 -
Flags: review?(lsmyth)
Assignee | ||
Comment 4•6 years ago
|
||
Add redirections for PLHashTable and PLDHashTable interfaces. This uses some new mechanisms to specify the redirections as we can't use dlsym() to look up internal methods in XUL. (We can use dlsym to lookup the PLHashTable interfaces since they are in a different library, but it still seems better to keep the diagnostics separate here.)
Attachment #9028409 -
Flags: review?(lsmyth)
![]() |
||
Updated•6 years ago
|
Attachment #9028406 -
Flags: review?(nfroyd) → review+
Updated•6 years ago
|
Attachment #9028407 -
Flags: review?(lsmyth) → review+
Updated•6 years ago
|
Attachment #9028408 -
Flags: review?(lsmyth) → review+
Updated•6 years ago
|
Attachment #9028409 -
Flags: review?(lsmyth) → review+
Pushed by bhackett@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/c1a7bed23922
Part 1 - Add accessor for wrapped PLDHashTable operations, r=froydnj.
https://hg.mozilla.org/integration/mozilla-inbound/rev/a69ff8282539
Part 2 - Add new HashTable diagnostics, r=lsmyth.
https://hg.mozilla.org/integration/mozilla-inbound/rev/5aa50800cd8b
Part 3 - Add PreambleResult kind for redirected functions which don't generate events, r=lsmyth.
https://hg.mozilla.org/integration/mozilla-inbound/rev/c5e4fbda309e
Part 4 - Add diagnostic redirections for hashtable operations, r=lsmyth.
Comment 6•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/c1a7bed23922
https://hg.mozilla.org/mozilla-central/rev/a69ff8282539
https://hg.mozilla.org/mozilla-central/rev/5aa50800cd8b
https://hg.mozilla.org/mozilla-central/rev/c5e4fbda309e
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox65:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
Updated•5 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•