Closed Bug 848913 Opened 9 years ago Closed 8 years ago

crash in MetroWidget::GetLayerManager with abort message: "Couldn't create layer manager"

Categories

(Core Graveyard :: Widget: WinRT, defect)

22 Branch
All
Windows 8.1
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: scoobidiver, Unassigned)

References

Details

(Keywords: crash, regression, Whiteboard: [metro-crash])

Crash Data

It's #3 browser crasher in MetroFirefox and first showed up in 22.0a1/20130305. The regression range is:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=86c98c4d36da&tochange=015da7030aab
It's likely a regression from bug 839808.

Signature 	mozalloc_abort(char const* const) | NS_DebugBreak_P | MetroWidget::GetLayerManager(mozilla::layers::PLayersChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*) More Reports Search
UUID	39110856-1f46-4412-9df2-5a79b2130307
Date Processed	2013-03-07 18:12:47
Uptime	56
Install Age	56 seconds since version was first installed.
Install Time	2013-03-07 18:11:45
Product	MetroFirefox
Version	22.0a1
Build ID	20130307030926
Release Channel	nightly
OS	Windows NT
OS Version	6.2.9200
Build Architecture	x86
Build Architecture Info	GenuineIntel family 6 model 42 stepping 7
Crash Reason	EXCEPTION_BREAKPOINT
Crash Address	0x73511999
App Notes 	
AdapterVendorID: 0x1002, AdapterDeviceID: 0x68a8, AdapterSubsysID: 050e1025, AdapterDriverVersion: 8.982.0.0
D2D! D2D+ DWrite? DWrite+ D3D10 Layers! D3D10 Layers+ xpcom_runtime_abort(###!!! ABORT: Couldn't create layer manager: file e:/builds/moz2_slave/m-cen-w32-ntly-000000000000000/build/widget/windows/winrt/MetroWidget.cpp, line 843)
Processor Notes 	sp-processor06.phx1.mozilla.com_22306:2008; WARNING: JSON file missing Add-ons
EMCheckCompatibility	True
Adapter Vendor ID	0x1002
Adapter Device ID	0x68a8
Total Virtual Memory	4294836224
Available Virtual Memory	3859263488
System Memory Use Percentage	54
Available Page File	5023174656
Available Physical Memory	1345716224
Accessibility	Active

Frame 	Module 	Signature 	Source
0 	mozalloc.dll 	mozalloc_abort 	memory/mozalloc/mozalloc_abort.cpp:30
1 	xul.dll 	NS_DebugBreak_P 	xpcom/base/nsDebugImpl.cpp:417
2 	xul.dll 	MetroWidget::GetLayerManager 	widget/windows/winrt/MetroWidget.cpp:843
3 	xul.dll 	PresShell::Paint 	layout/base/nsPresShell.cpp:5518
4 	xul.dll 	nsViewManager::Refresh 	view/src/nsViewManager.cpp:335
5 	xul.dll 	nsView::PaintWindow 	view/src/nsView.cpp:972
6 	xul.dll 	MetroWidget::Paint 	widget/windows/winrt/MetroWidget.cpp:917
7 	xul.dll 	mozilla::widget::winrt::FrameworkView::Render 	widget/windows/winrt/FrameworkViewGfx.cpp:71
8 	xul.dll 	MetroWidget::WindowProcedure 	widget/windows/winrt/MetroWidget.cpp:654
9 	xul.dll 	MetroWidget::StaticWindowProcedure 	widget/windows/winrt/MetroWidget.cpp:629
10 	user32.dll 	InternalCallWinProc 	
11 	user32.dll 	GetRealWindowOwner 	
12 	user32.dll 	DispatchClientMessage 	
13 	user32.dll 	__fnDWORD 	
14 	ntdll.dll 	KiUserCallbackDispatcher 	
15 	ntdll.dll 	KiUserApcDispatcher 	
16 	user32.dll 	DispatchMessageW 	
17 	windows.ui.dll 	Windows::UI::Core::CDispatcher::ProcessMessage 	d:\w8rtm\windows\advcore\winrt\iwindow\corewindow\dispatcher.cpp:116
18 	xul.dll 	nsTArray_base<nsTArrayInfallibleAllocator>::ShiftData 	obj-firefox/dist/include/nsTArray-inl.h:234
19 	windows.ui.dll 	Microsoft::WRL::Details::RuntimeClassBaseT<3>::AsIID<Microsoft::WRL::Details::Ru 	d:\w8rtm.public.x86fre\sdk\inc\wrl\implements.h:282
20 	xul.dll 	MetroAppShell::ProcessOneNativeEventIfPresent 	widget/windows/winrt/MetroAppShell.cpp:128
21 	xul.dll 	nsBaseAppShell::OnProcessNextEvent 	widget/xpwidgets/nsBaseAppShell.cpp:280
22 	xul.dll 	nsThread::ProcessNextEvent 	xpcom/threads/nsThread.cpp:600
23 	xul.dll 	NS_ProcessPendingEvents_P 	obj-firefox/xpcom/build/nsThreadUtils.cpp:188
24 	xul.dll 	nsBaseAppShell::NativeEventCallback 	widget/xpwidgets/nsBaseAppShell.cpp:97
25 	xul.dll 	MetroAppShell::NativeCallback 	widget/windows/winrt/MetroAppShell.cpp:174
26 	xul.dll 	MetroAppShell::EventWindowProc 	widget/windows/winrt/MetroAppShell.cpp:199
27 	user32.dll 	InternalCallWinProc 	
28 	user32.dll 	UserCallWinProcCheckWow 	
29 	user32.dll 	DispatchMessageWorker 	
30 	user32.dll 	DispatchMessageW 	
31 	windows.ui.dll 	Windows::UI::Core::CDispatcher::ProcessMessage 	d:\w8rtm\windows\advcore\winrt\iwindow\corewindow\dispatcher.cpp:116
32 	xul.dll 	Microsoft::WRL::ComPtr<ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows 	client.h:177
33 	xul.dll 	mozilla::widget::winrt::FrameworkView::Run 	widget/windows/winrt/FrameworkView.cpp:129
34 	twinapi.dll 	Windows::ApplicationModel::Core::CoreApplicationView::Run 	d:\win8_gdr\shell\coreapplication\application\lib\coreapplicationview.cpp:888
35 	twinapi.dll 	`Windows::ApplicationModel::Core::CoreApplicationViewAgileContainer::RuntimeClas 	d:\win8_gdr\shell\coreapplication\application\lib\coreapplicationview.cpp:559
36 	twinapi.dll 	`Windows::ApplicationModel::Core::CoreApplicationViewAgileContainer::RuntimeClas 	d:\win8_gdr\shell\coreapplication\application\lib\coreapplicationview.cpp:613
37 	SHCore.dll 	SHReleaseThreadRef 	
38 	kernel32.dll 	BaseThreadInitThunk 	
39 	ntdll.dll 	__RtlUserThreadStart 	
40 	ntdll.dll 	_RtlUserThreadStart

More reports at:
https://crash-stats.mozilla.com/report/list?signature=mozalloc_abort%28char+const*+const%29+|+NS_DebugBreak_P+|+MetroWidget%3A%3AGetLayerManager%28mozilla%3A%3Alayers%3A%3APLayersChild*%2C+mozilla%3A%3Alayers%3A%3ALayersBackend%2C+nsIWidget%3A%3ALayerManagerPersistence%2C+bool*%29
Interesting, mView is valid, so I'm guessing layerManager->Initialize(true) fails.
Uptimes are also all over the map. I wonder if this has something to do with the driver shutting down. bbondy, any ideas?
something like this? bug 774285
Crashes have stopped since 22.0a1/20130310. If it's confirmed, the working range would be:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=e6215e0357fa&tochange=9e6232e86000
There's one crash in 22.0a1/20130312: bp-6994bbda-5a20-49bd-97ce-fd7ed2130313.
It's #1 top crasher in MetroFirefox.
Two different situations. Low uptime w/D2D! D2D- in the annotation notes. The rest are more general for a broad range of hardware.

I'm more interested in the systems that can't get D2D up and running:

AdapterVendorID: 0x8086, AdapterDeviceID: 0x08cf, AdapterSubsysID: 00000000, AdapterDriverVersion: 9.14.3.1117
AdapterVendorID: 0x8086, AdapterDeviceID: 0x08cf, AdapterSubsysID: 00000000, AdapterDriverVersion: 9.14.3.1117
AdapterVendorID: 0x1002, AdapterDeviceID: 0x71c4, AdapterSubsysID: 202b17aa, AdapterDriverVersion: 8.383.1.1000
AdapterVendorID: 0x10de, AdapterDeviceID: 0x029e, AdapterSubsysID: 032c10de, AdapterDriverVersion: 9.18.13.697
AdapterVendorID: 0x1002, AdapterDeviceID: 0x71c4, AdapterSubsysID: 202b17aa, AdapterDriverVersion: 8.383.1.1000
AdapterVendorID: 0x1002, AdapterDeviceID: 0x71c4, AdapterSubsysID: 202b17aa, AdapterDriverVersion: 8.383.1.1000
(In reply to Jim Mathies [:jimm] from comment #8)
> I'm more interested in the systems that can't get D2D up and running:
> AdapterVendorID: 0x8086, AdapterDeviceID: 0x08cf  -> Intel GMA (see bug 829127 comment 3)
> AdapterVendorID: 0x1002, AdapterDeviceID: 0x71c4  -> ATI Mobility FireGL V5200	
> AdapterVendorID: 0x10de, AdapterDeviceID: 0x029e  -> NVIDIA Quadro FX 1500
They are DirectX 9.0c GPUs found in bug 844361.
No longer blocks: basic-metro-omtc
Maybe we need to detect individual hardware in the CEH and dump these devices out to desktop.

I see one recent startup crash for

AdapterVendorID: 0x8086, AdapterDeviceID: 0x08cf, AdapterSubsysID: 00000000, AdapterDriverVersion: 9.14.3.1117 D2D! D2D-

-> Intel GMA

in the 3/24 nightly.
I think we should see what happens when OMTC lands
Those who have Direct2D disabled crash within 3 seconds (32% of crashes). The breakdown for those is as follow (same users counted several times):
* Intel GMA: 61%
* ATI Mobility FireGL V5200: 23%
* NVIDIA Quadro FX 1500: 8%
* NVIDIA GeForce 7900 GS: 8%
Crash Signature: [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | MetroWidget::GetLayerManager(mozilla::layers::PLayersChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*)] → [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | MetroWidget::GetLayerManager(mozilla::layers::PLayersChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*)] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P]
Hardware: x86 → All
Crash Signature: [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | MetroWidget::GetLayerManager(mozilla::layers::PLayersChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*)] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P] → [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | MetroWidget::GetLayerManager(mozilla::layers::PLayersChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*)] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P] [@ …
There have been no crashes since 22.0a1/20130325 when the fix of bug 844954 landed.
Depends on: 844954
Depends on: 855294
Blocks: 855294
No longer depends on: 855294
Depends on: 858926
Depends on: 859077
Crash Signature: , bool*)] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | CLayeredObjectWithCLS<CBuffer>::`vector deleting destructor''(unsigned int)] → , bool*)] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | CLayeredObjectWithCLS<CBuffer>::`vector deleting destructor''(unsigned int)] [@ mozalloc_abort(char const* const) | NS_DebugBreak…
Crash Signature: NS_DebugBreak] [@ mozalloc_abort(char const* const) | NS_DebugBreak | MetroWidget::GetLayerManager(mozilla::layers::PLayersChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*)] → NS_DebugBreak ] [@ mozalloc_abort(char const* const) | NS_DebugBreak | MetroWidget::GetLayerManager(mozilla::layers::PLayersChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*) ] [@ mozalloc_abort(char const* const) | NS_D…
Crash Signature: , bool*) ] [@ mozalloc_abort(char const* const) | NS_DebugBreak | arena_malloc_small | nsStringBuffer::Alloc(unsigned __int64) ] → , bool*) ] [@ mozalloc_abort(char const* const) | NS_DebugBreak | MetroWidget::GetLayerManager(mozilla::layers::PLayerTransactionChild*, mozilla::layers::LayersBackend, nsIWidget::LayerManagerPersistence, bool*) ] [@ mozalloc_abort(char const* const) | …
I think these are all from atom devices that couldn't launch for a while. Once we fixed bug 904214 they were able to and report the last crash. All the latest reports fall off after 8/23.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
OS: Windows 8 Metro → Windows 8.1
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.