Closed Bug 1147830 Opened 5 years ago Closed 5 years ago

crash in HMDInfoOculus::HMDInfoOculus(ovrHmdDesc_ const*) on Mac

Categories

(Core :: Graphics, defect, critical)

All
macOS
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla39
Tracking Status
firefox39 --- verified

People

(Reporter: jimm, Assigned: vlad)

References

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

Brand new, started showing up about a week ago - 

https://crash-stats.mozilla.com/report/list?product=Firefox&range_unit=days&version=Firefox%3A39.0a1&signature=HMDInfoOculus%3A%3AHMDInfoOculus%28ovrHmdDesc_+const*%29&date=2015-03-26&range_value=14#tab-sigsummary

report bp-63ac1f48-c19f-4c5e-81f2-9bc512150317

0 	XUL 	HMDInfoOculus::HMDInfoOculus(ovrHmdDesc_ const*) 	gfx/thebes/gfxVR.cpp
1 	XUL 	mozilla::gfx::VRHMDManagerOculusImpl::Init() 	gfx/thebes/gfxVR.cpp
2 	XUL 	mozilla::gfx::VRHMDManagerOculus::Init() 	gfx/thebes/gfxVR.cpp
3 	XUL 	mozilla::dom::VRDevice::CreateAllKnownVRDevices(nsISupports*, nsTArray<nsRefPtr<mozilla::dom::VRDevice> >&) 	dom/vr/VRDevice.cpp
4 	XUL 	nsGlobalWindow::GetVRDevices(nsTArray<nsRefPtr<mozilla::dom::VRDevice> >&) 	dom/base/nsGlobalWindow.cpp
5 	XUL 	mozilla::dom::Navigator::GetVRDevices(mozilla::ErrorResult&) 	dom/base/Navigator.cpp
6 	XUL 	mozilla::dom::NavigatorBinding::getVRDevices_promiseWrapper 	obj-firefox/x86_64/dom/bindings/NavigatorBinding.cpp
7 	XUL 	mozilla::dom::GenericPromiseReturningBindingMethod(JSContext*, unsigned int, JS::Value*) 	dom/bindings/BindingUtils.cpp
8 	XUL 	js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) 	js/src/jscntxtinlines.h
9 	XUL 	Interpret 	js/src/vm/Interpreter.cpp
10 	XUL 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp
11 	XUL 	js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp
12 	XUL 	js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) 	js/src/vm/Interpreter.cpp
13 	XUL 	JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) 	js/src/jsapi.cpp
14 	XUL 	mozilla::dom::EventListener::HandleEvent(JSContext*, JS::Handle<JS::Value>, mozilla::dom::Event&, mozilla::ErrorResult&) 	obj-firefox/x86_64/dom/bindings/EventListenerBinding.cpp
15 	XUL 	void mozilla::dom::EventListener::HandleEvent<mozilla::dom::EventTarget*>(mozilla::dom::EventTarget* const&, mozilla::dom::Event&, mozilla::ErrorResult&, mozilla::dom::CallbackObject::ExceptionHandling, JSCompartment*) 	obj-firefox/x86_64/dist/include/mozilla/dom/EventListenerBinding.h
16 	XUL 	mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, nsIDOMEvent*, mozilla::dom::EventTarget*) 	dom/events/EventListenerManager.cpp
17 	XUL 	mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent**, mozilla::dom::EventTarget*, nsEventStatus*) 	dom/events/EventListenerManager.cpp
18 	XUL 	mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) 	dom/events/EventDispatcher.cpp
19 	XUL 	mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) 	dom/events/EventDispatcher.cpp
20 	XUL 	mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, nsIDOMEvent*, nsPresContext*, nsEventStatus*) 	dom/events/EventDispatcher.cpp
21 	XUL 	nsINode::DispatchEvent(nsIDOMEvent*, bool*) 	dom/base/nsINode.cpp
22 	XUL 	nsContentUtils::DispatchEvent(nsIDocument*, nsISupports*, nsAString_internal const&, bool, bool, bool, bool*, bool) 	dom/base/nsContentUtils.cpp
23 	XUL 	nsContentUtils::DispatchTrustedEvent(nsIDocument*, nsISupports*, nsAString_internal const&, bool, bool, bool*) 	dom/base/nsContentUtils.cpp
24 	XUL 	nsDocument::DispatchContentLoadedEvents() 	dom/base/nsDocument.cpp
25 	XUL 	nsRunnableMethodImpl<void (nsDocument::*)(), true, >::Run 	obj-firefox/x86_64/dist/include/nsThreadUtils.h
26 	XUL 	nsThread::ProcessNextEvent(bool, bool*) 	xpcom/threads/nsThread.cpp
27 	XUL 	NS_ProcessPendingEvents(nsIThread*, unsigned int) 	xpcom/glue/nsThreadUtils.cpp
28 	XUL 	nsBaseAppShell::NativeEventCallback() 	widget/nsBaseAppShell.cpp
29 	XUL 	nsAppShell::ProcessGeckoEvents(void*) 	widget/cocoa/nsAppShell.mm
Assignee: nobody → vladimir
Not a startup crash as best I can see; it might show up with a low uptime if someone is restarting the browser with a VR page that's causing a crash.

Fix is simple though, need to nullcheck the result of ovrHmd_Create.
Summary: startup crash in HMDInfoOculus::HMDInfoOculus(ovrHmdDesc_ const*) on Mac → crash in HMDInfoOculus::HMDInfoOculus(ovrHmdDesc_ const*) on Mac
Attachment #8583971 - Flags: review?(jmuizelaar) → review+
Vlad, I just realized, I noticed this crash because it was in the content process. Is this expected? From the name, sounds like this module belongs in the chrome process, but I haven't had a chance to look.
https://hg.mozilla.org/mozilla-central/rev/d03894462a39
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla39
Flags: needinfo?(vladimir)
(In reply to Jim Mathies [:jimm] from comment #4)
> Vlad, I just realized, I noticed this crash because it was in the content
> process. Is this expected? From the name, sounds like this module belongs in
> the chrome process, but I haven't had a chance to look.

Ah yep, that would cause the crash.  We likely couldn't create the HMD device because it was already in use by the chrome process.  VR stuff is not e10s friendly at the moment, I'm afraid :(
Flags: needinfo?(vladimir)
Blocks: 1148529
You need to log in before you can comment on or make changes to this bug.