Closed
Bug 1446521
Opened 6 years ago
Closed 6 years ago
Web Replay: Support more macOS releases
Categories
(Core :: General, defect)
Core
General
Tracking
()
RESOLVED
INVALID
Tracking | Status | |
---|---|---|
firefox61 | --- | affected |
People
(Reporter: bhackett1024, Assigned: bhackett1024)
References
Details
Attachments
(12 files)
14.17 KB,
patch
|
Details | Diff | Splinter Review | |
1.00 KB,
patch
|
Details | Diff | Splinter Review | |
876 bytes,
patch
|
Details | Diff | Splinter Review | |
4.12 KB,
patch
|
Details | Diff | Splinter Review | |
1.01 KB,
patch
|
Details | Diff | Splinter Review | |
2.82 KB,
patch
|
Details | Diff | Splinter Review | |
15.21 KB,
patch
|
Details | Diff | Splinter Review | |
1.15 KB,
patch
|
Details | Diff | Splinter Review | |
927 bytes,
patch
|
Details | Diff | Splinter Review | |
14.60 KB,
patch
|
Details | Diff | Splinter Review | |
917 bytes,
patch
|
Details | Diff | Splinter Review | |
1.08 KB,
patch
|
Details | Diff | Splinter Review |
So far all the development and testing of Web Replay has been on 10.12. This bug is about getting it to work well on other versions of macOS. The initial patches here mostly fix 10.13 (I get a hang on one of the automated tests I need to figure out, but it seems to work well when trying it out on websites) and fix some problems with 10.9 and 10.10, though they will need more work to run reliably.
Assignee | ||
Comment 1•6 years ago
|
||
This patch has several fixes for problems that were causing library API redirection to fail on other releases, or were corrupting the resulting redirections.
Assignee: nobody → bhackett1024
Assignee | ||
Comment 2•6 years ago
|
||
CUIDraw is only called by Gecko on 10.9.
Assignee | ||
Comment 3•6 years ago
|
||
Mapped memory regions used by system thread stacks need some special treatment. We were watching in case these stacks were unmapped and then reused for normal heap memory, but didn't have any recovery code in case this actually happened.
Assignee | ||
Comment 4•6 years ago
|
||
This is more a debugger improvement than anything, but this avoids a crash I was seeing while using the debugger on 10.13.
Assignee | ||
Comment 5•6 years ago
|
||
Fix a busted DEBUG-only assert.
Assignee | ||
Comment 6•6 years ago
|
||
Testing with snapshots or child process recovery turned off was running into some crashes and incorrect behavior.
Assignee | ||
Comment 7•6 years ago
|
||
https://hg.mozilla.org/projects/ash/rev/267c00de0409899d81dd4f7fc7066058f00c5261 https://hg.mozilla.org/projects/ash/rev/73628ceebd37d76734c8a3a979cc7175c03eef05 https://hg.mozilla.org/projects/ash/rev/6fe126acaff8ec763bde1ac1fcd9bd6789a6d5ee https://hg.mozilla.org/projects/ash/rev/889492ffe48109bb6be15cc7fdd5b24bcfd7a168 https://hg.mozilla.org/projects/ash/rev/485928508372b8a86e03deef89950e2abb600d2c https://hg.mozilla.org/projects/ash/rev/725acf0ed503be502a1e43df58eea5275933e34f
Assignee | ||
Comment 8•6 years ago
|
||
We want to reuse threads whose start routine has finished, and to support this along with pthread_join we were using a hacked-up notion of virtual thread IDs to differentiate different start routines which ran on the same physical thread. This patch removes this mechanism (it kept breaking when testing on other machines and OS releases) and fixes the problem it was addressing by more closely emulating the pthreads interface: a physical thread which is joinable cannot be reused after its start routine finishes until pthread_join() is actually called on it. https://hg.mozilla.org/projects/ash/rev/616f3f24439392dd7a057075fcb51518b40f87d3
Assignee | ||
Comment 9•6 years ago
|
||
Part 4 was missing a needed fix. https://hg.mozilla.org/projects/ash/rev/495ec1e58447f99db05b4ed266ef90cd9c6ca258
Assignee | ||
Comment 10•6 years ago
|
||
When a GCD system thread (these are spawned before we initialize record/replay state, alas) is inside a syscall when we are redirecting, we don't want to modify the instructions around that syscall because when that call returns the thread will end up at an invalid ip. We were already doing this for __workq_kernreturn on 10.12, and on 10.10 need to do this for kevent64 as well.
Assignee | ||
Comment 11•6 years ago
|
||
On my 10.9 and 10.10 test environments, taking snapshots while recording seems to mess up GCD --- the main thread at certain times gives GCD an operation to do and blocks on its completion, which never happens. I don't know what's going on here, but this patch sidesteps the problem. On older releases where recording snapshots doesn't work right, snapshots are disabled. If the user wants to rewind, the recording process just crashes and the middleman spins up a new replaying process (which can take snapshots) to take over. This is slow, and it would be nice to figure out what is going on in GCD and get a better fix, but for now it's a low priority --- the main reason right now to get things working on older releases is because treeherder runs macOS tests on 10.10. https://hg.mozilla.org/projects/ash/rev/e4787ca5d449736339a9b346d47a7380816e9e83
Assignee | ||
Comment 12•6 years ago
|
||
The version test in part 10 was broken. https://hg.mozilla.org/projects/ash/rev/4c934a4ca6cbedb92f9e0af3d29c8d7ad94d54e8
Assignee | ||
Comment 13•6 years ago
|
||
The redirection for mmap was assuming that memory ranges used for fixed mmaps can be written to, which they might not be if we haven't been taking snapshots.
Assignee | ||
Comment 14•6 years ago
|
||
https://hg.mozilla.org/projects/ash/rev/5c296860b90e7c88baee0d6c6bc948dc30b73025
Assignee | ||
Comment 15•6 years ago
|
||
Closing this bug, all the changes here will be reviewed in separate bugs dependent on bug 1422587.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•