Closed Bug 1573419 Opened 2 months ago Closed 2 months ago

Intermittent GECKO(1694) | Assertion failure: cache->GetWrapperMaybeDead() == obj, at /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/BindingUtils.h:1391

Categories

(Core :: JavaScript: GC, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- unaffected
firefox68 --- unaffected
firefox69 --- unaffected
firefox70 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: jonco)

References

(Regression)

Details

(Keywords: intermittent-failure, regression)

Attachments

(1 file)

Filed by: ncsoregi [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=261290906&repo=autoland
Full log: https://queue.taskcluster.net/v1/task/cK6ZsCd3Tcm9EyKDydKcxQ/runs/0/artifacts/public/logs/live_backing.log


[task 2019-08-13T09:46:23.066Z] 09:46:23 INFO - GECKO(1694) | Assertion failure: cache->GetWrapperMaybeDead() == obj, at /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/BindingUtils.h:1391
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO - GECKO(1694) | #01: JSObject::finalize(JSFreeOp*) [js/src/vm/JSObject-inl.h:72]
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO - GECKO(1694) | #02: unsigned long js::gc::Arena::finalize<JSObject>(JSFreeOp*, js::gc::AllocKind, unsigned long) [js/src/jsutil.h:245]
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO - GECKO(1694) | #03: bool FinalizeTypedArenas<JSObject>(JSFreeOp*, js::gc::Arena**, js::gc::SortedArenaList&, js::gc::AllocKind, js::SliceBudget&) [js/src/gc/GC.cpp:641]
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO - GECKO(1694) | #04: js::gc::ArenaLists::foregroundFinalize(JSFreeOp*, js::gc::AllocKind, js::SliceBudget&, js::gc::SortedArenaList&) [js/src/gc/GC.cpp:0]
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO - GECKO(1694) | #05: js::gc::GCRuntime::finalizeAllocKind(JSFreeOp*, js::SliceBudget&) [js/src/gc/GC.cpp:6360]
[task 2019-08-13T09:46:23.067Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO - GECKO(1694) | #06: sweepaction::SweepActionForEach<ContainerIter<mozilla::EnumSet<js::gc::AllocKind, unsigned int> >, mozilla::EnumSet<js::gc::AllocKind, unsigned int> >::run(js::gc::SweepAction::Args&) [js/src/gc/GC.cpp:6586]
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO - GECKO(1694) | #07: sweepaction::SweepActionSequence::run(js::gc::SweepAction::Args&) [js/src/gc/GC.cpp:0]
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO - GECKO(1694) | #08: sweepaction::SweepActionForEach<js::gc::SweepGroupZonesIter, JSRuntime*>::run(js::gc::SweepAction::Args&) [js/src/gc/GC.cpp:0]
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO - GECKO(1694) | #09: sweepaction::SweepActionSequence::run(js::gc::SweepAction::Args&) [js/src/gc/GC.cpp:0]
[task 2019-08-13T09:46:23.068Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.091Z] 09:46:23 INFO - GECKO(1694) | #10: sweepaction::SweepActionForEach<js::gc::SweepGroupsIter, JSRuntime*>::run(js::gc::SweepAction::Args&) [js/src/gc/GC.cpp:6586]
[task 2019-08-13T09:46:23.091Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO - GECKO(1694) | #11: js::gc::GCRuntime::performSweepActions(js::SliceBudget&) [js/src/gc/GC.cpp:6719]
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO - GECKO(1694) | #12: js::gc::GCRuntime::incrementalSlice(js::SliceBudget&, mozilla::Maybe<JSGCInvocationKind> const&, JS::GCReason, js::gc::AutoGCSession&) [js/src/gc/GC.cpp:7246]
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO - GECKO(1694) | #13: js::gc::GCRuntime::gcCycle(bool, js::SliceBudget, mozilla::Maybe<JSGCInvocationKind> const&, JS::GCReason) [js/src/gc/GC.cpp:7617]
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO - GECKO(1694) | #14: js::gc::GCRuntime::collect(bool, js::SliceBudget, mozilla::Maybe<JSGCInvocationKind> const&, JS::GCReason) [js/src/gc/GC.cpp:7800]
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO - GECKO(1694) | #15: js::gc::GCRuntime::gc(JSGCInvocationKind, JS::GCReason) [js/src/gc/GC.cpp:7882]
[task 2019-08-13T09:46:23.092Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO - GECKO(1694) | #16: JSRuntime::destroyRuntime() [js/src/vm/Runtime.cpp:286]
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO - GECKO(1694) | #17: js::DestroyContext(JSContext*) [js/src/vm/JSContext.cpp:198]
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO - GECKO(1694) | #18: mozilla::CycleCollectedJSContext::~CycleCollectedJSContext() [xpcom/base/CycleCollectedJSContext.cpp:107]
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO - GECKO(1694) | #19: mozilla::dom::WorkerJSContext::~WorkerJSContext() [dom/workers/RuntimeService.cpp:931]
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO - GECKO(1694) | #20: mozilla::dom::workerinternals::(anonymous namespace)::WorkerThreadPrimaryRunnable::Run() [dom/workers/RuntimeService.cpp:2352]
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.093Z] 09:46:23 INFO - GECKO(1694) | #21: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1214]
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO - GECKO(1694) | #22: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:486]
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO - GECKO(1694) | #23: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:301]
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO - GECKO(1694) | #24: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:291]
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO - GECKO(1694) | #25: nsThread::ThreadFunc(void*) [xpcom/threads/nsThread.cpp:460]
[task 2019-08-13T09:46:23.094Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.710Z] 09:46:23 INFO - GECKO(1694) | #26: _pt_root [nsprpub/pr/src/pthreads/ptthread.c:201]
[task 2019-08-13T09:46:23.710Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.710Z] 09:46:23 INFO - GECKO(1694) | #27: libsystem_pthread.dylib + 0x32eb
[task 2019-08-13T09:46:23.710Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.710Z] 09:46:23 INFO - GECKO(1694) | #28: libsystem_pthread.dylib + 0x6249
[task 2019-08-13T09:46:23.710Z] 09:46:23 INFO -
[task 2019-08-13T09:46:23.711Z] 09:46:23 INFO - GECKO(1694) | [ACTION] NODE_PROPERTIES_LOADED - {}
[task 2019-08-13T09:46:23.711Z] 09:46:23 INFO - GECKO(1694) | [ACTION] REMOVE_BREAKPOINT [start] - {}
[task 2019-08-13T09:46:23.712Z] 09:46:23 INFO - GECKO(1694) | [ACTION] IN_SCOPE_LINES - {}
[task 2019-08-13T09:46:23.712Z] 09:46:23 INFO - GECKO(1694) | [ACTION] MAP_SCOPES [done] - {}
[task 2019-08-13T09:46:23.712Z] 09:46:23 INFO - GECKO(1694) | [ACTION] EVALUATE_EXPRESSIONS - {"type":"EVALUATE_EXPRESSIONS","cx":{"navigateCounter":0,"thread":"server0.conn115.child1/workerTarget24/thread1","isPaused":true,"pauseCounter":1},"inputs":[],"results":[]}

Probably due to bug 1407593.

Assignee: nobody → jcoppeard

I have a fix, just waiting for try to run my jobs...

The problem is that if there is a leak at shutdown we can end up calling ClearWrapper on a wrapper that has already been cleared by the JS engine. The patch just relaxes the assertion to allow this. I tested this on try with a bunch of retriggers and it seems to fix the problem.

Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9a51c0c9a0f7
Fix assertion failure finalizing JSObjects during shutdown r=bzbarsky
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70
You need to log in before you can comment on or make changes to this bug.