Open Bug 1464860 Opened 2 years ago Updated 1 year ago

Assertion failure: aMax >= aMin (clamped(): aMax must be greater than or equal to aMin), at src/obj-firefox/dist/include/nsAlgorithm.h:44

Categories

(Core :: XUL, defect, P3)

defect

Tracking

()

Tracking Status
firefox62 --- affected

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(1 file)

Reduced with m-c:
BuildID=20180527130648
SourceStamp=6b9076ac236cb0f9f301bc601eac03f9ec4205df

Assertion failure: aMax >= aMin (clamped(): aMax must be greater than or equal to aMin), at src/obj-firefox/dist/include/nsAlgorithm.h:44

#0 int const& mozilla::clamped<int>(int const&, int const&, int const&) src/obj-firefox/dist/include/nsAlgorithm.h:43:3
#1 0x7fe559df6d26 in nsStackLayout::XULLayout(nsIFrame*, nsBoxLayoutState&) src/layout/xul/nsStackLayout.cpp:344:33
#2 0x7fe559d951b1 in nsBoxFrame::DoXULLayout(nsBoxLayoutState&) src/layout/xul/nsBoxFrame.cpp:857:26
#3 0x7fe559d901bc in nsIFrame::XULLayout(nsBoxLayoutState&) src/layout/xul/nsBox.cpp:367:8
#4 0x7fe559d9393f in nsBoxFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) src/layout/xul/nsBoxFrame.cpp:666:3
#5 0x7fe559b8daf8 in nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&) src/layout/generic/nsLineLayout.cpp:924:13
#6 0x7fe559a30f8d in nsBlockFrame::ReflowInlineFrame(mozilla::BlockReflowInput&, nsLineLayout&, nsLineList_iterator, nsIFrame*, LineReflowStatus*) src/layout/generic/nsBlockFrame.cpp:4158:15
#7 0x7fe559a2f72d in nsBlockFrame::DoReflowInlineFrames(mozilla::BlockReflowInput&, nsLineLayout&, nsLineList_iterator, nsFlowAreaRect&, int&, nsFloatManager::SavedState*, bool*, LineReflowStatus*, bool) src/layout/generic/nsBlockFrame.cpp:3958:5
#8 0x7fe559a27af6 in nsBlockFrame::ReflowInlineFrames(mozilla::BlockReflowInput&, nsLineList_iterator, bool*) src/layout/generic/nsBlockFrame.cpp:3832:9
#9 0x7fe559a21ba1 in nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*) src/layout/generic/nsBlockFrame.cpp:2816:5
#10 0x7fe559a186a3 in nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&) src/layout/generic/nsBlockFrame.cpp:2352:7
#11 0x7fe559a1343f in nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) src/layout/generic/nsBlockFrame.cpp:1225:3
#12 0x7fe559a57b39 in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) src/layout/generic/nsContainerFrame.cpp:951:14
#13 0x7fe559a56c7e in nsCanvasFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) src/layout/generic/nsCanvasFrame.cpp:713:5
#14 0x7fe559a57b39 in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) src/layout/generic/nsContainerFrame.cpp:951:14
#15 0x7fe559b17770 in nsHTMLScrollFrame::ReflowScrolledFrame(mozilla::ScrollReflowInput*, bool, bool, mozilla::ReflowOutput*, bool) src/layout/generic/nsGfxScrollFrame.cpp:555:3
#16 0x7fe559b18d11 in nsHTMLScrollFrame::ReflowContents(mozilla::ScrollReflowInput*, mozilla::ReflowOutput const&) src/layout/generic/nsGfxScrollFrame.cpp:678:3
#17 0x7fe559b1b24c in nsHTMLScrollFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) src/layout/generic/nsGfxScrollFrame.cpp:1055:3
#18 0x7fe559a01a9d in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, int, int, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) src/layout/generic/nsContainerFrame.cpp:995:14
#19 0x7fe559a01023 in mozilla::ViewportFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) src/layout/generic/ViewportFrame.cpp:335:7
#20 0x7fe55985e182 in mozilla::PresShell::DoReflow(nsIFrame*, bool) src/layout/base/PresShell.cpp:8946:11
#21 0x7fe55986ce25 in mozilla::PresShell::ProcessReflowCommands(bool) src/layout/base/PresShell.cpp:9119:24
#22 0x7fe55986bb69 in mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush) src/layout/base/PresShell.cpp:4336:11
#23 0x7fe55986b0ec in mozilla::PresShell::DoFlushPendingNotifications(mozilla::FlushType) src/layout/base/PresShell.cpp:4129:3
#24 0x7fe557d2bef3 in mozilla::EventStateManager::PreHandleEvent(nsPresContext*, mozilla::WidgetEvent*, nsIFrame*, nsIContent*, nsEventStatus*, nsIContent*) src/dom/events/EventStateManager.cpp:687:5
#25 0x7fe5598837de in mozilla::PresShell::HandleEventInternal(mozilla::WidgetEvent*, nsEventStatus*, bool, nsIContent*) src/layout/base/PresShell.cpp:7607:19
#26 0x7fe55988230e in mozilla::PresShell::HandleEventWithTarget(mozilla::WidgetEvent*, nsIFrame*, nsIContent*, nsEventStatus*, bool, nsIContent**, nsIContent*) src/layout/base/PresShell.cpp:7427:5
#27 0x7fe557de4e60 in mozilla::PointerEventHandler::DispatchPointerFromMouseOrTouch(mozilla::PresShell*, nsIFrame*, nsIContent*, mozilla::WidgetGUIEvent*, bool, nsEventStatus*, nsIContent**) src/dom/events/PointerEventHandler.cpp:535:12
#28 0x7fe559881539 in mozilla::PresShell::HandleEvent(nsIFrame*, mozilla::WidgetGUIEvent*, bool, nsEventStatus*) src/layout/base/PresShell.cpp:7203:7
#29 0x7fe5593de006 in nsViewManager::DispatchEvent(mozilla::WidgetGUIEvent*, nsView*, nsEventStatus*) src/view/nsViewManager.cpp:812:14
#30 0x7fe5593ddbcb in nsView::HandleEvent(mozilla::WidgetGUIEvent*, bool) src/view/nsView.cpp:1141:9
#31 0x7fe559431cb6 in mozilla::widget::PuppetWidget::DispatchEvent(mozilla::WidgetGUIEvent*, nsEventStatus&) src/widget/PuppetWidget.cpp:410:35
#32 0x7fe5556af1ec in mozilla::layers::APZCCallbackHelper::DispatchWidgetEvent(mozilla::WidgetGUIEvent&) src/gfx/layers/apz/util/APZCCallbackHelper.cpp:500:21
#33 0x7fe558e775b7 in mozilla::dom::TabChild::HandleRealMouseButtonEvent(mozilla::WidgetMouseEvent const&, mozilla::layers::ScrollableLayerGuid const&, unsigned long const&) src/dom/ipc/TabChild.cpp:1739:3
#34 0x7fe558e2bc29 in mozilla::dom::TabChild::ProcessPendingCoalescedMouseDataAndDispatchEvents() src/dom/ipc/TabChild.cpp:1581:7
#35 0x7fe55981ce0f in nsRefreshDriver::Tick(long, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:1868:12
#36 0x7fe559826cd5 in mozilla::RefreshDriverTimer::TickRefreshDrivers(long, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) src/layout/base/nsRefreshDriver.cpp:301:7
#37 0x7fe559826aae in mozilla::RefreshDriverTimer::Tick(long, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:320:5
#38 0x7fe55982a16f in mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:760:5
#39 0x7fe5598290e5 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:673:35
#40 0x7fe55982881b in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:574:9
#41 0x7fe559e65529 in mozilla::layout::VsyncChild::RecvNotify(mozilla::TimeStamp const&) src/layout/ipc/VsyncChild.cpp:68:16
#42 0x7fe5548b4ff5 in mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&) src/obj-firefox/ipc/ipdl/PVsyncChild.cpp:167:20
#43 0x7fe5547de932 in mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) src/obj-firefox/ipc/ipdl/PBackgroundChild.cpp:1988:28
#44 0x7fe554446b0d in mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) src/ipc/glue/MessageChannel.cpp:2136:25
#45 0x7fe554444755 in mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) src/ipc/glue/MessageChannel.cpp:2066:17
#46 0x7fe55444533e in mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) src/ipc/glue/MessageChannel.cpp:1912:5
#47 0x7fe554445a5f in mozilla::ipc::MessageChannel::MessageTask::Run() src/ipc/glue/MessageChannel.cpp:1945:15
#48 0x7fe5537ccbc3 in nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1088:14
#49 0x7fe5537efaf8 in NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:519:10
#50 0x7fe55444de33 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:97:21
#51 0x7fe55438f398 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:326:10
#52 0x7fe55438f21c in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:299:3
#53 0x7fe559457faa in nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:157:27
#54 0x7fe55c536480 in XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:893:22
#55 0x7fe55444ea55 in mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:269:9
#56 0x7fe55438f398 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:326:10
#57 0x7fe55438f21c in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:299:3
#58 0x7fe55c535bce in XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:719:34
#59 0x4f3606 in content_process_main(mozilla::Bootstrap*, int, char**) src/browser/app/../../ipc/contentproc/plugin-container.cpp:50:30
#60 0x4f388e in main src/browser/app/nsBrowserApp.cpp:282:18
#61 0x7fe5734a582f in __libc_start_main /build/glibc-Cl5G7W/glibc-2.23/csu/../csu/libc-start.c:291
#62 0x423434 in _start (firefox+0x423434)
Flags: in-testsuite?
Priority: -- → P3

I can't reproduce an assertion-failure, when loading the attached testcase in a recent debug build.

Tyson, can you reproduce any badness at this point?

(Note: I did happen to hit an instance of this assertion-failure with a different interactive testcase, which I filed as bug 1539684.)

Flags: needinfo?(twsmith)

Ah, one possible reason that this became harmless is that the testcase uses display:-moz-inline-grid, and I think we turned that off for web content at some point.

Component: Layout → XUL

Yeah -- that happened in bug 1288572. If you toggle the pref layout.css.xul-display-values.content.enabled to true, then this testcase still causes the same assertion-failure.

--> canceling needinfo.

Flags: needinfo?(twsmith)
Attachment #8981196 - Attachment description: testcase.html → testcase.html (requires about:config pref layout.css.xul-display-values.content.enabled = true)
You need to log in before you can comment on or make changes to this bug.