Closed Bug 1159150 Opened 9 years ago Closed 9 years ago

permaorange test_9999_cleanup.xul | application crashed [@ nsAutoLayoutPhase::Enter()], Assertion failure (painting in the middle of reflow)

Categories

(Core :: Layout, defect)

Unspecified
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla40
Tracking Status
firefox38 --- unaffected
firefox38.0.5 --- unaffected
firefox39 --- unaffected
firefox40 --- fixed
firefox-esr31 --- unaffected

People

(Reporter: cbook, Unassigned)

References

()

Details

(Keywords: crash, intermittent-failure)

Windows XP 32-bit fx-team debug test mochitest-other

https://treeherder.mozilla.org/logviewer.html#?job_id=2852909&repo=fx-team

22:51:55 INFO - Assertion failure: mPresContext->mLayoutPhaseCount[eLayoutPhase_Reflow] == 0 (painting in the middle of reflow), at c:\builds\moz2_slave\fx-team-w32-d-0000000000000000\build\src\layout\base\nsAutoLayoutPhase.cpp:37 

22:52:07 WARNING - PROCESS-CRASH | toolkit/mozapps/update/tests/chrome/test_9999_cleanup.xul | application crashed [@ nsAutoLayoutPhase::Enter()]
22:52:07 INFO - Crash dump filename: c:\docume~1\cltbld~1.t-x\locals~1\temp\tmpnc99lb.mozrunner\minidumps\33848d32-2947-49c0-b591-c96e3dd1f840.dmp
22:52:07 INFO - Operating system: Windows NT
22:52:07 INFO - 5.1.2600 Service Pack 3
22:52:07 INFO - CPU: x86
22:52:07 INFO - GenuineIntel family 6 model 30 stepping 5
22:52:07 INFO - 8 CPUs
22:52:07 INFO - Crash reason: EXCEPTION_BREAKPOINT
22:52:07 INFO - Crash address: 0x29eb872
22:52:07 INFO - Thread 0 (crashed)
22:52:07 INFO - 0 xul.dll!nsAutoLayoutPhase::Enter() [nsAutoLayoutPhase.cpp:7882ac796e0f : 51 + 0x20]
22:52:07 INFO - eip = 0x029eb872 esp = 0x0012ec08 ebp = 0x0012ec14 ebx = 0x0ff531f0
22:52:07 INFO - esi = 0x00000025 edi = 0x0fc84520 eax = 0x00000000 ecx = 0x002b0ad9
22:52:07 INFO - edx = 0x00370ea0 efl = 0x00200212
22:52:07 INFO - Found by: given as instruction pointer in context
22:52:07 INFO - 1 xul.dll!nsAutoLayoutPhase::nsAutoLayoutPhase(nsPresContext *,nsLayoutPhase) [nsAutoLayoutPhase.cpp:7882ac796e0f : 20 + 0x4]
22:52:07 INFO - eip = 0x029cf6b2 esp = 0x0012ec10 ebp = 0x0012ec14
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 2 xul.dll!PresShell::Paint(nsView *,nsRegion const &,unsigned int) [nsPresShell.cpp:7882ac796e0f : 6227 + 0x10]
22:52:07 INFO - eip = 0x02a330ed esp = 0x0012ec1c ebp = 0x0012ed14
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 3 xul.dll!nsViewManager::ProcessPendingUpdatesPaint(nsIWidget *) [nsViewManager.cpp:7882ac796e0f : 445 + 0x1b]
22:52:07 INFO - eip = 0x027e56d9 esp = 0x0012ed1c ebp = 0x0012ed54
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 4 xul.dll!nsViewManager::ProcessPendingUpdatesForView(nsView *,bool) [nsViewManager.cpp:7882ac796e0f : 385 + 0x8]
22:52:07 INFO - eip = 0x027e557d esp = 0x0012ed5c ebp = 0x0012ed74
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 5 xul.dll!nsViewManager::ProcessPendingUpdates() [nsViewManager.cpp:7882ac796e0f : 1075 + 0xb]
22:52:07 INFO - eip = 0x027e547a esp = 0x0012ed7c ebp = 0x0012ed98
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 6 xul.dll!nsViewManager::WillPaintWindow(nsIWidget *) [nsViewManager.cpp:7882ac796e0f : 679 + 0x6]
22:52:07 INFO - eip = 0x027e60c2 esp = 0x0012ed8c ebp = 0x0012ed98
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 7 xul.dll!nsView::WillPaintWindow(nsIWidget *) [nsView.cpp:7882ac796e0f : 1027 + 0x11]
22:52:07 INFO - eip = 0x027e3cc4 esp = 0x0012eda0 ebp = 0x0012edac
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 8 xul.dll!nsWindow::OnPaint(HDC__ *,unsigned int) [nsWindowGfx.cpp:7882ac796e0f : 290 + 0x7]
22:52:07 INFO - eip = 0x02852bc6 esp = 0x0012edb4 ebp = 0x0012ef10
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 9 xul.dll!nsWindow::ProcessMessage(unsigned int,unsigned int &,long &,long *) [nsWindow.cpp:7882ac796e0f : 4800 + 0xa]
22:52:07 INFO - eip = 0x02854d18 esp = 0x0012ef18 ebp = 0x0012f0ac
22:52:07 INFO - Found by: call frame info
22:52:07 INFO - 10 xul.dll!nsWindow::WindowProcInternal(HWND__ *,unsigned int,unsigned int,long) [nsWindow.cpp:7882ac796e0f : 4365 + 0x16]
22:52:07 INFO - eip = 0x02859461 esp = 0x0012f0b4 ebp = 0x0012f0d8
22:52:07 INFO - Found by: call frame info
Retriggers on fx-team clearly point to https://hg.mozilla.org/integration/fx-team/rev/7882ac796e0f as the culprit. Titlebar changes breaking layout?
Blocks: 1158872
Flags: needinfo?(dbaron)
Also, this is permafail. Backing out bug 1158872.
The stack in the log (comment 0) is reasonably clear about what the problem is:

22:51:55 INFO - Assertion failure: mPresContext->mLayoutPhaseCount[eLayoutPhase_Reflow] == 0 (painting in the middle of reflow), at c:\builds\moz2_slave\fx-team-w32-d-0000000000000000\build\src\layout\base\nsAutoLayoutPhase.cpp:37
22:51:55 INFO - #01: PresShell::Paint(nsView *,nsRegion const &,unsigned int) [layout/base/nsPresShell.cpp:6233]
22:51:55 INFO - #02: nsViewManager::ProcessPendingUpdatesPaint(nsIWidget *) [view/nsViewManager.cpp:445]
22:51:55 INFO - #03: nsViewManager::ProcessPendingUpdatesForView(nsView *,bool) [view/nsViewManager.cpp:381]
22:51:55 INFO - #04: nsViewManager::ProcessPendingUpdates() [view/nsViewManager.cpp:1075]
22:51:55 INFO - #05: nsView::WillPaintWindow(nsIWidget *) [view/nsView.cpp:1028]
22:51:55 INFO - #06: nsWindow::OnPaint(HDC__ *,unsigned int) [widget/windows/nsWindowGfx.cpp:293]
22:51:55 INFO - #07: nsWindow::ProcessMessage(unsigned int,unsigned int &,long &,long *) [widget/windows/nsWindow.cpp:4800]
22:51:55 INFO - #08: nsWindow::WindowProcInternal(HWND__ *,unsigned int,unsigned int,long) [widget/windows/nsWindow.cpp:4365]
22:51:55 INFO - #09: CallWindowProcCrashProtected [xpcom/base/nsCrashOnException.cpp:35]
22:51:55 INFO - #10: nsWindow::WindowProc(HWND__ *,unsigned int,unsigned int,long) [widget/windows/nsWindow.cpp:4317]
22:51:55 INFO - #11: USER32 + 0x8734
22:51:55 INFO - #12: USER32 + 0x8816
22:51:55 INFO - #13: USER32 + 0x18ea0
22:51:55 INFO - #14: USER32 + 0x18eec
22:51:55 INFO - #15: ntdll + 0xe453
22:51:55 INFO - #16: USER32 + 0x1c2d0
22:51:55 INFO - #17: nsWindow::SetWindowTranslucencyInner(nsTransparencyMode) [widget/windows/nsWindow.cpp:6865]
22:51:55 INFO - #18: nsWindow::SetTransparencyMode(nsTransparencyMode) [widget/windows/nsWindow.cpp:2631]
22:51:55 INFO - #19: nsContainerFrame::SyncWindowProperties(nsPresContext *,nsIFrame *,nsView *,nsRenderingContext *) [layout/generic/nsContainerFrame.cpp:656]
22:51:55 INFO - #20: PresShell::DoReflow(nsIFrame *,bool) [layout/base/nsPresShell.cpp:9250] 

I'm inclined to say that this is something that the windows widget code shouldn't be doing, although there are probably some other possible explanations of who's at fault.
Flags: needinfo?(dbaron) → needinfo?(jmathies)
Summary: Intermittent test_9999_cleanup.xul | application crashed [@ nsAutoLayoutPhase::Enter()] → permaorange test_9999_cleanup.xul | application crashed [@ nsAutoLayoutPhase::Enter()], Assertion failure (painting in the middle of reflow)
Looks like we've triggered a spurious paint somehow with this css change. Shouldn't be hard to debug where it's coming from.
Flags: needinfo?(jmathies)
fixed by backout.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
(In reply to Jim Mathies [:jimm] from comment #20)
> fixed by backout.

Which backout are you talking about?  If you mean Bug 1158872, we need to reland it before the merge date to fix a major issue in the Windows theme for Dev Edition.  All it does is set a transparent background color for a lightweight theme: https://hg.mozilla.org/mozilla-central/rev/7882ac796e0f.  I can try to set it to `rgba(255, 255, 255, .001)` or similar and see if this can be worked around, but surely setting a transparent background color shouldn't cause a crash?
Flags: needinfo?(jmathies)
(In reply to Brian Grinstead [:bgrins] from comment #21)
> (In reply to Jim Mathies [:jimm] from comment #20)
> > fixed by backout.
> 
> Which backout are you talking about?

(In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #10)
> Also, this is permafail. Backing out bug 1158872.

Generally when a patch that lands causes a permafail we backout the offending patch and resolve the test bug as fixed by the backout. Then the people responsible for the regression can investigate why their change broke something in the original bug.

You can also file a blocker on your work if you feel the problem is isolated and need to be addressed by another team. This seem like a reasonable thing to do in this case I suppose.
Flags: needinfo?(jmathies)
Depends on: 1159772
(In reply to Jim Mathies [:jimm] from comment #22)
> (In reply to Brian Grinstead [:bgrins] from comment #21)
> > (In reply to Jim Mathies [:jimm] from comment #20)
> > > fixed by backout.
> > 
> > Which backout are you talking about?
> 
> (In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #10)
> > Also, this is permafail. Backing out bug 1158872.
> 
> Generally when a patch that lands causes a permafail we backout the
> offending patch and resolve the test bug as fixed by the backout. Then the
> people responsible for the regression can investigate why their change broke
> something in the original bug.
> 
> You can also file a blocker on your work if you feel the problem is isolated
> and need to be addressed by another team. This seem like a reasonable thing
> to do in this case I suppose.

OK, got it.  Filed Bug 1159772 as a blocker for the original bug.
You need to log in before you can comment on or make changes to this bug.