Closed Bug 1388727 Opened 7 years ago Closed 6 years ago

Crash in nsStyleContext::DoGetStyleDisplay<T>

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

RESOLVED INCOMPLETE
Tracking Status
firefox-esr52 --- wontfix
firefox56 --- wontfix
firefox57 --- wontfix
firefox58 --- wontfix
firefox59 --- wontfix

People

(Reporter: baffclan, Unassigned)

Details

(Keywords: crash, regression)

Crash Data

This bug was filed from the Socorro interface and is 
report bp-ce5a6ffd-9057-441d-9987-e60db0170809.
=============================================================

Crashing Thread (0)
Frame 	Module 	Signature 	Source
0 	xul.dll 	nsStyleContext::DoGetStyleDisplay<1>() 	obj-firefox/dist/include/nsStyleStructList.h:100
1 	xul.dll 	nsLayoutUtils::GetTouchActionFromFrame(nsIFrame*) 	layout/base/nsLayoutUtils.cpp:9073
2 	xul.dll 	nsDisplayLayerEventRegions::AddFrame(nsDisplayListBuilder*, nsIFrame*) 	layout/painting/nsDisplayList.cpp:4572
3 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3212
4 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
5 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
6 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3257
7 	xul.dll 	nsFlexContainerFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsFlexContainerFrame.cpp:2269
8 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3257
9 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
10 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
11 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:2997
12 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
13 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
14 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3257
15 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
16 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
17 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:2997
18 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
19 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
20 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:2997
21 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
22 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
23 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3257
24 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
25 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
26 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3257
27 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
28 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
29 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3257
30 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
31 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
32 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:2997
33 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
34 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
35 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:2997
36 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
37 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
38 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3257
39 	xul.dll 	DisplayLine 	layout/generic/nsBlockFrame.cpp:6706
40 	xul.dll 	nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsBlockFrame.cpp:6798
41 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:2997
42 	xul.dll 	nsCanvasFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsCanvasFrame.cpp:599
43 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:3242
44 	xul.dll 	mozilla::ScrollFrameHelper::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/nsGfxScrollFrame.cpp:3522
45 	xul.dll 	nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayListSet const&, unsigned int) 	layout/generic/nsFrame.cpp:2997
46 	xul.dll 	mozilla::ViewportFrame::BuildDisplayList(nsDisplayListBuilder*, nsRect const&, nsDisplayListSet const&) 	layout/generic/ViewportFrame.cpp:66
47 	xul.dll 	nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder*, nsRect const&, nsDisplayList*) 	layout/generic/nsFrame.cpp:2592
48 	xul.dll 	nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) 	layout/base/nsLayoutUtils.cpp:3615
49 	xul.dll 	mozilla::PresShell::Paint(nsView*, nsRegion const&, unsigned int) 	layout/base/PresShell.cpp:6473
50 	xul.dll 	nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) 	view/nsViewManager.cpp:480
51 	xul.dll 	nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) 	view/nsViewManager.cpp:412
52 	xul.dll 	nsViewManager::ProcessPendingUpdates() 	view/nsViewManager.cpp:1093
53 	xul.dll 	nsRefreshDriver::Tick(__int64, mozilla::TimeStamp) 	layout/base/nsRefreshDriver.cpp:2051
54 	xul.dll 	mozilla::RefreshDriverTimer::TickDriver(nsRefreshDriver*, __int64, mozilla::TimeStamp) 	layout/base/nsRefreshDriver.cpp:330
55 	xul.dll 	mozilla::RefreshDriverTimer::TickRefreshDrivers(__int64, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) 	layout/base/nsRefreshDriver.cpp:300
56 	xul.dll 	mozilla::RefreshDriverTimer::Tick(__int64, mozilla::TimeStamp) 	layout/base/nsRefreshDriver.cpp:322
57 	xul.dll 	mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) 	layout/base/nsRefreshDriver.cpp:763
58 	xul.dll 	mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) 	layout/base/nsRefreshDriver.cpp:676
59 	xul.dll 	mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::TimeStamp) 	layout/base/nsRefreshDriver.cpp:577
60 	xul.dll 	mozilla::layout::VsyncChild::RecvNotify(mozilla::TimeStamp const&) 	layout/ipc/VsyncChild.cpp:67
61 	xul.dll 	mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&) 	obj-firefox/ipc/ipdl/PVsyncChild.cpp:155
62 	xul.dll 	mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) 	obj-firefox/ipc/ipdl/PBackgroundChild.cpp:1608
63 	xul.dll 	mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) 	ipc/glue/MessageChannel.cpp:2092
64 	xul.dll 	mozilla::ipc::MessageChannel::DispatchMessageW(IPC::Message&&) 	ipc/glue/MessageChannel.cpp:2018
65 	xul.dll 	mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) 	ipc/glue/MessageChannel.cpp:1887
66 	xul.dll 	mozilla::ipc::MessageChannel::MessageTask::Run() 	ipc/glue/MessageChannel.cpp:1920
67 	xul.dll 	nsThread::ProcessNextEvent(bool, bool*) 	xpcom/threads/nsThread.cpp:1446
68 	xul.dll 	NS_ProcessNextEvent(nsIThread*, bool) 	xpcom/threads/nsThreadUtils.cpp:480
69 	xul.dll 	mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) 	ipc/glue/MessagePump.cpp:125
70 	xul.dll 	mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) 	ipc/glue/MessagePump.cpp:302
71 	xul.dll 	MessageLoop::RunHandler() 	ipc/chromium/src/base/message_loop.cc:319
72 	xul.dll 	MessageLoop::Run() 	ipc/chromium/src/base/message_loop.cc:299
73 	xul.dll 	nsBaseAppShell::Run() 	widget/nsBaseAppShell.cpp:156
74 	xul.dll 	nsAppShell::Run() 	widget/windows/nsAppShell.cpp:210
75 	xul.dll 	XRE_RunAppShell() 	toolkit/xre/nsEmbedFunctions.cpp:882
76 	xul.dll 	mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) 	ipc/glue/MessagePump.cpp:270
77 	xul.dll 	MessageLoop::RunHandler() 	ipc/chromium/src/base/message_loop.cc:319
78 	xul.dll 	MessageLoop::Run() 	ipc/chromium/src/base/message_loop.cc:299
79 	xul.dll 	XRE_InitChildProcess(int, char** const, XREChildData const*) 	toolkit/xre/nsEmbedFunctions.cpp:699
80 	firefox.exe 	content_process_main(mozilla::Bootstrap*, int, char** const) 	ipc/contentproc/plugin-container.cpp:64
81 	firefox.exe 	NS_internal_main(int, char**, char**) 	browser/app/nsBrowserApp.cpp:285
82 	firefox.exe 	wmain 	toolkit/xre/nsWindowsWMain.cpp:115
83 	firefox.exe 	__scrt_common_main_seh 	f:/dd/vctools/crt/vcstartup/src/startup/exe_common.inl:253
84 	kernel32.dll 	BaseThreadInitThunk 	
85 	ntdll.dll 	RtlUserThreadStart 	



Application Basics: 
Name:Firefox
Version: 57.0a1
Build ID: 20170808114032
Update Channel: nightly
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
OS: Windows_NT 10.0
Component: General → XUL
Component: XUL → Layout
This signature's volume is very low. It is content process top crash #146 in 56 and #300 in Beta 57. I don't see any reports from Nightly 58. Maybe it will go away with Stylo?
OS: Windows 10 → All
Priority: -- → P3
Hardware: x86 → All
I get this crash consistently on http://www.helsinginuutiset.fi/artikkeli/578597-tuleeko-naista-taistelu-maailman-ensimmainen-helsinki-viski-on-valmista

and other pages on the same site.

Latest nightly with stylo.
You can get the crash instantly on
http://www.helsinginuutiset.fi/artikkeli/578597-tuleeko-naista-taistelu-maailman-ensimmainen-helsinki-viski-on-valmista
by clicking repeatedly on the shuffling NayaDaya thing right arrow on the page.

Mozregression result:

2017-11-16T09:55:54: DEBUG : Using url: https://hg.mozilla.org/integration/mozilla-inbound/json-pushes?changeset=d5e1ed773fefe2eb9d52402dd74b5fea19b8b4a4&full=1
2017-11-16T09:55:55: DEBUG : Found commit message:
Bug 1416055 - Enable retained display lists for Nightly builds. r=miko

2017-11-16T09:55:55: INFO : The bisection is done.
ni to get some attention here
Flags: needinfo?(matt.woodrow)
Assignee: nobody → matt.woodrow
Blocks: 1352499
Flags: needinfo?(matt.woodrow)
The top frame is the same, but the rest of the stack is different from the bug as reported.

These new crashes look to be the same as bug 1417411, so I'll fix that there, and leave this bug for the longstanding issue with EventRegions.
Assignee: matt.woodrow → nobody
No longer blocks: 1352499
This has increased to become the #3 Windows topcrash in Nightly 20171117100127, with 51 occurrences.
(In reply to Nicholas Nethercote [:njn] from comment #6)
> This has increased to become the #3 Windows topcrash in Nightly
> 20171117100127, with 51 occurrences.

These crashes look to be the bug 1417411 version of this, fixed in the 2017-11-18 nightly. I don't see any crashes from that Nightly (or newer), so I think we're good here.
(In reply to Chris Peterson [:cpeterson] from comment #8)
> [Tracking Requested - why for this release]:
> 
> This Retain Display List crash is a top content process crash in Nightly 59
> with 400 crash reports in the last seven days.

As explained above, this doesn't need to track, it's a longstanding issue, with a very low crash rate.

There was a spike in a similar crash (same top frame, but different stack), which is bug 1417411 and is fixed.
nsStyleContext was renamed ComputedStyle, but looking at
ComputedStyle::DoGetStyleDisplay it seems this crash is gone.
The few crashes matching that signature appears to be an unrelated issue.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.