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)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jorgk-bmo, Assigned: jorgk-bmo)

Details

Attachments

(1 file)

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.
Tooru-san, how can I draw some attention to this bug. It causes perma-red test failures for us.
Flags: needinfo?(arai.unmht)
bug 1290567 may contain some hints, what's the issue and how to figure out the root cause.
Flags: needinfo?(arai.unmht)
Hmm, but I really don't have time to dig around those internals. Isn't the JS team interested?
(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?
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.
(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.
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)
(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)
Flags: needinfo?(continuation)
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)
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.
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
Sleeping 20 seconds (and a dump) fixed the problem.
Component: JavaScript Engine: JIT → General
Product: Core → Calendar
Version: unspecified → Trunk
Attached patch sleep.patchSplinter Review
Assignee: nobody → jorgk
Status: NEW → ASSIGNED
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
Target Milestone: --- → 6.3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: