Closed Bug 1421009 Opened 7 years ago Closed 7 years ago

Assertion failure: !HasTimeouts(), at /src/dom/base/TimeoutManager.cpp:888

Categories

(Core :: DOM: Core & HTML, defect, P2)

59 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla59
Tracking Status
firefox-esr52 --- wontfix
firefox57 --- wontfix
firefox58 --- fixed
firefox59 --- fixed

People

(Reporter: tsmith, Assigned: farre)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(4 files)

Attached file testcase.html
Assertion failure: !HasTimeouts(), at /src/dom/base/TimeoutManager.cpp:888 #0 MaybeSchedule /src/dom/base/TimeoutManager.cpp:231:3 #1 mozilla::dom::TimeoutManager::RunTimeout(mozilla::TimeStamp const&, mozilla::TimeStamp const&) /src/dom/base/TimeoutManager.cpp:806 #2 mozilla::dom::TimeoutExecutor::MaybeExecute() /src/dom/base/TimeoutExecutor.cpp:171:11 #3 Notify /src/dom/base/TimeoutExecutor.cpp:239:5 #4 non-virtual thunk to mozilla::dom::TimeoutExecutor::Notify(nsITimer*) /src/dom/base/TimeoutExecutor.cpp #5 nsTimerImpl::Fire(int) /src/xpcom/threads/nsTimerImpl.cpp:704:40 #6 nsTimerEvent::Run() /src/xpcom/threads/TimerThread.cpp:286:11 #7 mozilla::ThrottledEventQueue::Inner::ExecuteRunnable() /src/xpcom/threads/ThrottledEventQueue.cpp:193:22 #8 mozilla::ThrottledEventQueue::Inner::Executor::Run() /src/xpcom/threads/ThrottledEventQueue.cpp:79:15 #9 nsThread::ProcessNextEvent(bool, bool*) /src/xpcom/threads/nsThread.cpp:1033:14 #10 NS_ProcessNextEvent(nsIThread*, bool) /src/xpcom/threads/nsThreadUtils.cpp:508:10 #11 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:97:21 #12 RunInternal /src/ipc/chromium/src/base/message_loop.cc:326:10 #13 RunHandler /src/ipc/chromium/src/base/message_loop.cc:319 #14 MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299 #15 nsBaseAppShell::Run() /src/widget/nsBaseAppShell.cpp:157:27 #16 nsAppStartup::Run() /src/toolkit/components/startup/nsAppStartup.cpp:288:30 #17 XREMain::XRE_mainRun() /src/toolkit/xre/nsAppRunner.cpp:4649:22 #18 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4811:8 #19 XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4903:21 #20 do_main /src/browser/app/nsBrowserApp.cpp:231:22 #21 main /src/browser/app/nsBrowserApp.cpp:304 #22 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:291 #23 _start (irefox+0x41e078)
Flags: in-testsuite?
Attached file prefs.js
This prefs file will help with repro.
Andreas has touched TimeoutManager code for throttling in the past recent months. Perhaps he knows what's going on here.
Flags: needinfo?(afarre)
This happens when requestIdleCallback(...) gets called _after_ a window has been detached, because for some reason rIC is allowed to set a timeout even though the timeout manager's timeouts have been cleared.
Assignee: nobody → afarre
Flags: needinfo?(afarre)
Priority: -- → P2
Attachment #8933282 - Flags: review?(bkelly) → review+
Keywords: checkin-needed
Pushed by ryanvm@gmail.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/c0235640b47e Don't schedule idle callback if window is shutting down. r=bkelly
Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla59
Is the attached testcase something we can land as a crashtest? Also, is there a user impact here that justifies uplift consideration or can it ride the 59 train?
Flags: needinfo?(afarre)
Comment on attachment 8933282 [details] [diff] [review] 0001-Bug-1421009-Don-t-schedule-idle-callback-if-window-i.patch Approval Request Comment [Feature/Bug causing the regression]: requestIdleCallback [User impact if declined]: This might delay tear down of windows, since the executor will get rescheduled unnecessarily. [Is this code covered by automated tests?]: No. [Has the fix been verified in Nightly?]: Yes. [Needs manual test from QE? If yes, steps to reproduce]: No. [List of other uplifts needed for the feature/fix]: None. [Is the change risky?]: No. [Why is the change risky/not risky?]: The change will result in reqeustIdleCallback doing nothing when the window is going down. [String changes made/needed]: None.
Flags: needinfo?(afarre)
Attachment #8933282 - Flags: approval-mozilla-beta?
Comment on attachment 8933282 [details] [diff] [review] 0001-Bug-1421009-Don-t-schedule-idle-callback-if-window-i.patch Fix an assertion failure. Beta58+.
Attachment #8933282 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Added patch for beta, same content but wihtout nsGlobalWindow instead of nsGlobalWindowInner
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: