Closed
Bug 1450128
Opened 7 years ago
Closed 7 years ago
Assertion failure: pages_.empty(), at /builds/worker/workspace/build/src/js/src/jit/ProcessExecutableMemory.cpp:492
Categories
(Calendar :: General, defect)
Calendar
General
Tracking
(Not tracked)
RESOLVED
FIXED
6.3
People
(Reporter: jorgk-bmo, Assigned: jorgk-bmo)
Details
Attachments
(1 file)
1.06 KB,
patch
|
Details | Diff | Splinter Review |
Assertion failure: pages_.empty(), at /builds/worker/workspace/build/src/js/src/jit/ProcessExecutableMemory.cpp:492
PROCESS-CRASH | testDummy.js | application crashed [@ ProcessExecutableMemory::release()]
Seen in Thunderbird Mozmill testing:
https://treeherder.mozilla.org/#/jobs?repo=comm-central&revision=bbad34510f140583fd3c0faac7d5b5558c8a2b99&selectedJob=171114874
https://treeherder.mozilla.org/#/jobs?repo=comm-central&revision=bbad34510f140583fd3c0faac7d5b5558c8a2b99&selectedJob=171115665
Logs:
https://taskcluster-artifacts.net/axLxh0__Sk-uHHbfV4UNlQ/0/public/logs/live_backing.log
https://taskcluster-artifacts.net/bh1vz3B0Spy1G7YhVlXuVA/0/public/logs/live_backing.log
Search for
ERROR: GC found live Cell
Let me know if I can assist with testing patches.
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 2•7 years ago
|
||
Tooru-san, how can I draw some attention to this bug. It causes perma-red test failures for us.
Flags: needinfo?(arai.unmht)
Comment 3•7 years ago
|
||
bug 1290567 may contain some hints, what's the issue and how to figure out the root cause.
Flags: needinfo?(arai.unmht)
Assignee | ||
Comment 4•7 years ago
|
||
Hmm, but I really don't have time to dig around those internals. Isn't the JS team interested?
Comment 5•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #4)
> Isn't the JS team interested?
I'm interested, but this looks more like a leak in Thunderbird code than a problem in the JS engine. This assertion is important and correct and we shouldn't remove it.
Do you know when this started?
Comment 6•7 years ago
|
||
Looking at the log, it's likely this JitCode*:
14:06:42 INFO - ERROR: GC found live Cell 0x11302add0 of kind JITCODE at shutdown
There's also a bunch of functions and scripts:
14:06:42 INFO - ERROR: GC found live Cell 0x1143af040 of kind SCRIPT at shutdown
One thing you could try is to add something like this to the code where we print this line (ArenaLists::checkEmptyArenaList):
if (kind == AllocKind::SCRIPT) {
JSScript* script = (JSScript*)t;
fprintf(stderr, "Script: %s:%u\n", script->filename(), script->lineno());
}
That might tell you which scripts are still live when we shut down.
Assignee | ||
Comment 7•7 years ago
|
||
(In reply to Jan de Mooij [:jandem] from comment #5)
> Do you know when this started?
Yes, with the job mentioned in comment #0:
https://treeherder.mozilla.org/#/jobs?repo=comm-central&revision=bbad34510f140583fd3c0faac7d5b5558c8a2b99&selectedJob=171114874
In this changeset
https://hg.mozilla.org/comm-central/rev/784233e550fda3f0cdafdc18642c4c326077817e
I created a dummy test for calendar's Mozmill suite and that's when that started.
I can't tell whether this is a regressions coming from M-C since before this push Mozmill was broken for a few days, so the regression range would be a few days from when it was last working, but on a different set of tests, not the dummy one.
I can add the print you suggested.
Assignee | ||
Comment 8•7 years ago
|
||
Assignee | ||
Comment 9•7 years ago
|
||
https://taskcluster-artifacts.net/ZntC07G3R06dWdyhCjjOrA/0/public/logs/live_backing.log
shows 20 of these with varying line numbers:
02:15:34 INFO - ERROR: GC found 41 live Cells at shutdown
02:15:34 INFO - ERROR: GC found live Cell 0x116abb040 of kind SCRIPT at shutdown
02:15:34 INFO - Script: resource://gre/modules/TelemetrySession.jsm:927
Where from here?
Flags: needinfo?(jdemooij)
Comment 10•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #9)
> 02:15:34 INFO - Script: resource://gre/modules/TelemetrySession.jsm:927
>
> Where from here?
So this suggests there's a TelemetrySession thing that's not dead after the final GC and that's probably hanging on to scripts and JIT code, hence the assertion failure.
Andrew, any ideas on how they can track this down?
Flags: needinfo?(jdemooij)
Updated•7 years ago
|
Flags: needinfo?(continuation)
Comment 11•7 years ago
|
||
It looks like this test suite runs no leak checking, because I don't see "leakcheck" or "BloatView" anywhere in the log that you linked. This assertion just happens to do leak checking. It looks like the patch you landed removes a bunch of tests.
Likely what is happening is that there's some telemetry code that runs shortly after startup, and is normally cleaned up by the time you shut down, but now that you are closing almost immediately, it does not have time to clean up (glancing at the telemetry code, maybe you are shutting down before telemetry has time to fully set up, where it registers some cleanup code).
We've had some similar issues in Firefox with test suites that don't run for long, though there the problem was safe browsing, not telemetry.
Anyways, I would just add some kind of delay to this test so it waits like 5 seconds before it exits, and see if that helps. Otherwise you'll end up spending a bunch of time tracking down everything in the browser that gets set up in the first few seconds of uptime, and figuring out how to disable it or make it shutdown quickly
Flags: needinfo?(continuation)
Assignee | ||
Comment 12•7 years ago
|
||
I tried with 1 second sleep in the test two days ago and that didn't make a difference. I'll try with 5 seconds now.
Assignee | ||
Comment 13•7 years ago
|
||
Waiting 5 seconds didn't help:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=b072a25500e00f8f01c6216bb39915f3d05b1b13&selectedJob=173635855
I can try 20 seconds.
Assignee | ||
Comment 14•7 years ago
|
||
Oops, my mistake, the sleep I added din't actually get executed, new try:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=08a59d469548734017a73af8ee6294677295240b
Assignee | ||
Comment 15•7 years ago
|
||
Sleeping 20 seconds (and a dump) fixed the problem.
Assignee | ||
Updated•7 years ago
|
Component: JavaScript Engine: JIT → General
Product: Core → Calendar
Version: unspecified → Trunk
Assignee | ||
Comment 16•7 years ago
|
||
Assignee: nobody → jorgk
Status: NEW → ASSIGNED
Comment 17•7 years ago
|
||
Pushed by mozilla@jorgk.com:
https://hg.mozilla.org/comm-central/rev/fc93de1b8856
Make testDummy.js do something (sleep) to avoid quick shutdown and crash (suggestion by Andrew McCreight). rs=bustage-fix
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Assignee | ||
Updated•7 years ago
|
Target Milestone: --- → 6.3
You need to log in
before you can comment on or make changes to this bug.
Description
•