Closed Bug 1323716 Opened 7 years ago Closed 7 years ago

stylo: layout/style/crashtests/1230408-1.html fatally asserts with "MOZ_ASSERT_UNREACHABLE: Any line break inside ruby box should have been suppressed"

Categories

(Core :: CSS Parsing and Computation, defect, P1)

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: heycam, Unassigned)

References

Details

#0  0x00007fffe70f77a2 in nsRubyBaseContainerFrame::ReflowOneColumn (this=0x7fffb72f8978, aReflowInput=..., aColumnIndex=0, aColumn=..., aStatus=@0x7fffffff4cec: 0) at /z/stylo/hg-incubator/layout/generic/nsRubyBaseContainerFrame.cpp:666
#1  0x00007fffe70f69d0 in nsRubyBaseContainerFrame::ReflowColumns (this=0x7fffb72f8978, aReflowInput=..., aStatus=@0x7fffffff61c4: 0) at /z/stylo/hg-incubator/layout/generic/nsRubyBaseContainerFrame.cpp:482
#2  0x00007fffe70f6463 in nsRubyBaseContainerFrame::Reflow (this=0x7fffb72f8978, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffff61c4: 0)
    at /z/stylo/hg-incubator/layout/generic/nsRubyBaseContainerFrame.cpp:394
#3  0x00007fffe6fe54b5 in nsLineLayout::ReflowFrame (this=0x7fffffff6568, aFrame=0x7fffb72f8978, aReflowStatus=@0x7fffffff61c4: 0, aMetrics=0x7fffffff59e0, aPushedFrame=@0x7fffffff59df: false)
    at /z/stylo/hg-incubator/layout/generic/nsLineLayout.cpp:939
#4  0x00007fffe71288fb in nsRubyFrame::ReflowSegment (this=0x7fffb72f88f8, aPresContext=0x7fffb4235800, aReflowInput=..., aBaseContainer=0x7fffb72f8978, aStatus=@0x7fffffff61c4: 0)
    at /z/stylo/hg-incubator/layout/generic/nsRubyFrame.cpp:205
#5  0x00007fffe71284d6 in nsRubyFrame::Reflow (this=0x7fffb72f88f8, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffff61c4: 0) at /z/stylo/hg-incubator/layout/generic/nsRubyFrame.cpp:148
#6  0x00007fffe6fe54b5 in nsLineLayout::ReflowFrame (this=0x7fffffff6568, aFrame=0x7fffb72f88f8, aReflowStatus=@0x7fffffff61c4: 0, aMetrics=0x0, aPushedFrame=@0x7fffffff61c3: false)
    at /z/stylo/hg-incubator/layout/generic/nsLineLayout.cpp:939
#7  0x00007fffe7038a65 in nsBlockFrame::ReflowInlineFrame (this=0x7fffb72f8268, aState=..., aLineLayout=..., aLine=..., aFrame=0x7fffb72f88f8, aLineReflowStatus=0x7fffffff641c)
    at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:4120
#8  0x00007fffe7037efb in nsBlockFrame::DoReflowInlineFrames (this=0x7fffb72f8268, aState=..., aLineLayout=..., aLine=..., aFloatAvailableSpace=..., aAvailableSpaceBSize=@0x7fffffff6698: 0, aFloatStateBeforeLine=0x7fffffff6670, 
    aKeepReflowGoing=0x7fffffff6c7f, aLineReflowStatus=0x7fffffff669c, aAllowPullUp=true) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:3921
#9  0x00007fffe7034030 in nsBlockFrame::ReflowInlineFrames (this=0x7fffb72f8268, aState=..., aLine=..., aKeepReflowGoing=0x7fffffff6c7f) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:3795
#10 0x00007fffe7030823 in nsBlockFrame::ReflowLine (this=0x7fffb72f8268, aState=..., aLine=..., aKeepReflowGoing=0x7fffffff6c7f) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:2801
#11 0x00007fffe702bde4 in nsBlockFrame::ReflowDirtyLines (this=0x7fffb72f8268, aState=...) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:2337
#12 0x00007fffe70285b2 in nsBlockFrame::Reflow (this=0x7fffb72f8268, aPresContext=0x7fffb4235800, aMetrics=..., aReflowInput=..., aStatus=@0x7fffffff7c94: 0) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:1200
#13 0x00007fffe7036af4 in nsBlockReflowContext::ReflowBlock (this=0x7fffffff7ff8, aSpace=..., aApplyBStartMargin=true, aPrevMargin=..., aClearance=0, aIsAdjacentWithBStart=true, aLine=0x7fffb72f8fb0, aFrameRI=..., 
    aFrameReflowStatus=@0x7fffffff7c94: 0, aState=...) at /z/stylo/hg-incubator/layout/generic/nsBlockReflowContext.cpp:306
#14 0x00007fffe7032bad in nsBlockFrame::ReflowBlockFrame (this=0x7fffb72f7d30, aState=..., aLine=..., aKeepReflowGoing=0x7fffffff863f) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:3429
#15 0x00007fffe70307e2 in nsBlockFrame::ReflowLine (this=0x7fffb72f7d30, aState=..., aLine=..., aKeepReflowGoing=0x7fffffff863f) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:2798
#16 0x00007fffe702bde4 in nsBlockFrame::ReflowDirtyLines (this=0x7fffb72f7d30, aState=...) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:2337
#17 0x00007fffe70285b2 in nsBlockFrame::Reflow (this=0x7fffb72f7d30, aPresContext=0x7fffb4235800, aMetrics=..., aReflowInput=..., aStatus=@0x7fffffff97b0: 0) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:1200
#18 0x00007fffe704ebb7 in nsContainerFrame::ReflowChild (this=0x7fffb72f7408, aKidFrame=0x7fffb72f7d30, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aWM=..., aPos=..., aContainerSize=..., aFlags=0, 
    aStatus=@0x7fffffff97b0: 0, aTracker=0x0) at /z/stylo/hg-incubator/layout/generic/nsContainerFrame.cpp:1027
#19 0x00007fffe704e1c8 in nsCanvasFrame::Reflow (this=0x7fffb72f7408, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffff97b0: 0) at /z/stylo/hg-incubator/layout/generic/nsCanvasFrame.cpp:677
#20 0x00007fffe704ebb7 in nsContainerFrame::ReflowChild (this=0x7fffb72f7498, aKidFrame=0x7fffb72f7408, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aWM=..., aPos=..., aContainerSize=..., aFlags=3, 
    aStatus=@0x7fffffff97b0: 0, aTracker=0x0) at /z/stylo/hg-incubator/layout/generic/nsContainerFrame.cpp:1027
#21 0x00007fffe70b2780 in nsHTMLScrollFrame::ReflowScrolledFrame (this=0x7fffb72f7498, aState=0x7fffffff9c90, aAssumeHScroll=false, aAssumeVScroll=true, aMetrics=0x7fffffff9a88, aFirstPass=true)
    at /z/stylo/hg-incubator/layout/generic/nsGfxScrollFrame.cpp:552
#22 0x00007fffe70b3018 in nsHTMLScrollFrame::ReflowContents (this=0x7fffb72f7498, aState=0x7fffffff9c90, aDesiredSize=...) at /z/stylo/hg-incubator/layout/generic/nsGfxScrollFrame.cpp:664
#23 0x00007fffe70b44b0 in nsHTMLScrollFrame::Reflow (this=0x7fffb72f7498, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffffa4d4: 0) at /z/stylo/hg-incubator/layout/generic/nsGfxScrollFrame.cpp:1039
#24 0x00007fffe70557ff in nsContainerFrame::ReflowChild (this=0x7fffb72f7148, aKidFrame=0x7fffb72f7498, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aX=0, aY=0, aFlags=0, aStatus=@0x7fffffffa4d4: 0, aTracker=0x0)
    at /z/stylo/hg-incubator/layout/generic/nsContainerFrame.cpp:1070
#25 0x00007fffe70147f3 in mozilla::ViewportFrame::Reflow (this=0x7fffb72f7148, aPresContext=0x7fffb4235800, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffffa4d4: 0) at /z/stylo/hg-incubator/layout/generic/ViewportFrame.cpp:316
#26 0x00007fffe6ef16e3 in mozilla::PresShell::DoReflow (this=0x7fffb97c8400, target=0x7fffb72f7148, aInterruptible=false) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:9401
#27 0x00007fffe6ef9865 in mozilla::PresShell::ProcessReflowCommands (this=0x7fffb97c8400, aInterruptible=false) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:9574
#28 0x00007fffe6ef9435 in mozilla::PresShell::FlushPendingNotifications (this=0x7fffb97c8400, aFlush=...) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:4150
#29 0x00007fffe6ef8ca0 in mozilla::PresShell::FlushPendingNotifications (this=0x7fffb97c8400, aType=Flush_Layout) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:4007
#30 0x00007fffe6f7e94d in nsDocumentViewer::LoadComplete (this=0x7fffbf641b20, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/layout/base/nsDocumentViewer.cpp:953
#31 0x00007fffe772771d in nsDocShell::EndPageLoad (this=0x7fffb197d000, aProgress=0x7fffb197d028, aChannel=0x7fffbf6b2390, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/docshell/base/nsDocShell.cpp:7571
#32 0x00007fffe77259d3 in nsDocShell::OnStateChange (this=0x7fffb197d000, aProgress=0x7fffb197d028, aRequest=0x7fffbf6b2390, aStateFlags=131088, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/docshell/base/nsDocShell.cpp:7375
#33 0x00007fffe3f27cce in nsDocLoader::DoFireOnStateChange (this=0x7fffb197d000, aProgress=0x7fffb197d028, aRequest=0x7fffbf6b2390, aStateFlags=@0x7fffffffb824: 131088, aStatus=nsresult::NS_OK)
    at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:1255
#34 0x00007fffe3f277a9 in nsDocLoader::doStopDocumentLoad (this=0x7fffb197d000, request=0x7fffbf6b2390, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:840
#35 0x00007fffe3f2626f in nsDocLoader::DocLoaderIsEmpty (this=0x7fffb197d000, aFlushLayout=true) at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:730
#36 0x00007fffe3f271ac in nsDocLoader::OnStopRequest (this=0x7fffb197d000, aRequest=0x7fffd55d0920, aCtxt=0x0, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:612
#37 0x00007fffe2c4798f in mozilla::net::nsLoadGroup::RemoveRequest (this=0x7fffb6806bf0, request=0x7fffd55d0920, ctxt=0x0, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/netwerk/base/nsLoadGroup.cpp:633
#38 0x00007fffe48a9dd0 in nsDocument::DoUnblockOnload (this=0x7fffbf77e000) at /z/stylo/hg-incubator/dom/base/nsDocument.cpp:8622
#39 0x00007fffe48a9b8d in nsDocument::UnblockOnload (this=0x7fffbf77e000, aFireSync=true) at /z/stylo/hg-incubator/dom/base/nsDocument.cpp:8550
#40 0x00007fffe489ab73 in nsDocument::DispatchContentLoadedEvents (this=0x7fffbf77e000) at /z/stylo/hg-incubator/dom/base/nsDocument.cpp:5058
#41 0x00007fffe4928d1a in mozilla::detail::RunnableMethodArguments<>::applyImpl<nsDocument, void (nsDocument::*)()>(nsDocument*, void (nsDocument::*)(), mozilla::Tuple<>&, mozilla::IndexSequence<>) (o=0x7fffbf77e000, 
    m=(void (nsDocument::*)(nsDocument * const)) 0x7fffe489a380 <nsDocument::DispatchContentLoadedEvents()>, args=...) at /z/stylo/hg-incubator/obj/dist/include/nsThreadUtils.h:791
#42 0x00007fffe4928c99 in mozilla::detail::RunnableMethodArguments<>::apply<nsDocument, void (nsDocument::*)()>(nsDocument*, void (nsDocument::*)()) (this=0x7fffbf7e1140, o=0x7fffbf77e000, 
    m=(void (nsDocument::*)(nsDocument * const)) 0x7fffe489a380 <nsDocument::DispatchContentLoadedEvents()>) at /z/stylo/hg-incubator/obj/dist/include/nsThreadUtils.h:797
#43 0x00007fffe4928b22 in mozilla::detail::RunnableMethodImpl<void (nsDocument::*)(), true, false>::Run (this=0x7fffbf7e1100) at /z/stylo/hg-incubator/obj/dist/include/nsThreadUtils.h:826
#44 0x00007fffe2ad0ca8 in nsThread::ProcessNextEvent (this=0x7fffdfe43460, aMayWait=false, aResult=0x7fffffffc24e) at /z/stylo/hg-incubator/xpcom/threads/nsThread.cpp:1213
#45 0x00007fffe2b505fc in NS_ProcessNextEvent (aThread=0x7fffdfe43460, aMayWait=false) at /z/stylo/hg-incubator/xpcom/glue/nsThreadUtils.cpp:381
#46 0x00007fffe33cb0e9 in mozilla::ipc::MessagePump::Run (this=0x7fffdfe82a80, aDelegate=0x7ffff6bb9410) at /z/stylo/hg-incubator/ipc/glue/MessagePump.cpp:96
#47 0x00007fffe33296c5 in MessageLoop::RunInternal (this=0x7ffff6bb9410) at /z/stylo/hg-incubator/ipc/chromium/src/base/message_loop.cc:232
#48 0x00007fffe3329645 in MessageLoop::RunHandler (this=0x7ffff6bb9410) at /z/stylo/hg-incubator/ipc/chromium/src/base/message_loop.cc:225
#49 0x00007fffe332961d in MessageLoop::Run (this=0x7ffff6bb9410) at /z/stylo/hg-incubator/ipc/chromium/src/base/message_loop.cc:205
#50 0x00007fffe6ad4003 in nsBaseAppShell::Run (this=0x7fffd52ddef0) at /z/stylo/hg-incubator/widget/nsBaseAppShell.cpp:156
#51 0x00007fffe7cab192 in nsAppStartup::Run (this=0x7fffd52dcdd0) at /z/stylo/hg-incubator/toolkit/components/startup/nsAppStartup.cpp:283
#52 0x00007fffe7da48ac in XREMain::XRE_mainRun (this=0x7fffffffcc28) at /z/stylo/hg-incubator/toolkit/xre/nsAppRunner.cpp:4485
#53 0x00007fffe7da5396 in XREMain::XRE_main (this=0x7fffffffcc28, argc=4, argv=0x7fffffffe108, aAppData=0x7fffffffcee8) at /z/stylo/hg-incubator/toolkit/xre/nsAppRunner.cpp:4618
#54 0x00007fffe7da5b6f in XRE_main (argc=4, argv=0x7fffffffe108, aAppData=0x7fffffffcee8, aFlags=0) at /z/stylo/hg-incubator/toolkit/xre/nsAppRunner.cpp:4709
#55 0x000000000040633f in do_main (argc=4, argv=0x7fffffffe108, envp=0x7fffffffe130, xreDirectory=0x7ffff6b66b40) at /z/stylo/hg-incubator/browser/app/nsBrowserApp.cpp:328
#56 0x0000000000405a62 in main (argc=4, argv=0x7fffffffe108, envp=0x7fffffffe130) at /z/stylo/hg-incubator/browser/app/nsBrowserApp.cpp:461
Summary: stylo: layout/style/crashtests/1230408-1.html fatally asserts with "MOZ_ASSERT_UNREACHABLE: Any line break inside ruby box should have been suppressed" → stylo: layout/style/crashtests/1233135-1.html fatally asserts with "MOZ_ASSERT_UNREACHABLE: Any line break inside ruby box should have been suppressed"
Summary: stylo: layout/style/crashtests/1233135-1.html fatally asserts with "MOZ_ASSERT_UNREACHABLE: Any line break inside ruby box should have been suppressed" → stylo: layout/style/crashtests/1230408-1.html fatally asserts with "MOZ_ASSERT_UNREACHABLE: Any line break inside ruby box should have been suppressed"
This affects layout/reftests/w3c-css/submitted/ruby/ruby-inlinize-blocks-001.html too.  And 004/005.
Priority: -- → P3
Priority: P3 → P2
According to the crash log, it hits this assertion[1]. Need to figure out why it happens.

[1]: https://dxr.mozilla.org/mozilla-central/source/layout/generic/nsRubyBaseContainerFrame.cpp#667
This assertion, as well as other ruby-related failures, are likely because that stylo doesn't do the whole bunch of style fixup for ruby here: https://dxr.mozilla.org/mozilla-central/rev/2fe636103d7167f3a5d57f61bd19fddcc878ca3c/layout/style/nsStyleContext.cpp#925-958
+jryans, who's been looking at style fixup recently.
Depends on: 1364274
Marking this as P1 because it's the remaining crashes in crashtests.
Priority: P2 → P1
(In reply to Shing Lyu [:shinglyu] from comment #6)
> Marking this as P1 because it's the remaining crashes in crashtests.

I see 18 instances of "skip-if(stylo" in the crashtest manifests. Does that mean they're all this bug?
Should have been fixed by bug 1364274.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.