Closed Bug 1304222 Opened 8 years ago Closed 5 years ago

[webvr] SECVRITY demo at mozvr.com crashes when using OSVR

Categories

(Core :: WebVR, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: kip, Assigned: kip)

References

()

Details

(Whiteboard: [webvr])

@georgiy in the WebVR slack reports that after a few seconds, the SECVRITY demo at mozvr.com crashes when using OSVR.

Stack trace:

#01: IPC::WriteParam<enum mozilla::gfx::VRDisplayCapabilityFlags> (c:\sandbox\gecko-dev\ipc\chromium\src\chrome\common\ipc_message_utils.h:111)
#02: IPC::ParamTraits<mozilla::gfx::VRHMDSensorState>::Write (c:\sandbox\gecko-dev\ff-debug\dist\include\vrmessageutils.h:84)
#03: IPC::WriteParam<mozilla::gfx::VRHMDSensorState> (c:\sandbox\gecko-dev\ipc\chromium\src\chrome\common\ipc_message_utils.h:111)
#04: mozilla::gfx::PVRManagerParent::Write<mozilla::gfx::VRHMDSensorState> (c:\sandbox\gecko-dev\ff-debug\ipc\ipdl\_ipdlheaders\mozilla\gfx\pvrmanagerparent.h:527)
#05: mozilla::gfx::PVRManagerParent::OnMessageReceived (c:\sandbox\gecko-dev\ff-debug\ipc\ipdl\pvrmanagerparent.cpp:762)
#06: mozilla::ipc::MessageChannel::DispatchSyncMessage (c:\sandbox\gecko-dev\ipc\glue\messagechannel.cpp:1633)
#07: mozilla::ipc::MessageChannel::DispatchMessageW (c:\sandbox\gecko-dev\ipc\glue\messagechannel.cpp:1596)
#08: mozilla::ipc::MessageChannel::OnMaybeDequeueOne (c:\sandbox\gecko-dev\ipc\glue\messagechannel.cpp:1569)
#09: mozilla::detail::RunnableMethodArguments<>::applyImpl<mozilla::ipc::MessageChannel,bool (__thiscall mozilla::ipc::MessageChannel::*)(void)> (c:\sandbox\gecko-dev\ff-debug\dist\include\nsthreadutils.h:730)
#10: mozilla::detail::RunnableMethodArguments<>::apply<mozilla::ipc::MessageChannel,bool (__thiscall mozilla::ipc::MessageChannel::*)(void)> (c:\sandbox\gecko-dev\ff-debug\dist\include\nsthreadutils.h:735)
#11: mozilla::detail::RunnableMethodImpl<bool (__thiscall mozilla::ipc::MessageChannel::*)(void),0,1>::Run (c:\sandbox\gecko-dev\ff-debug\dist\include\nsthreadutils.h:766)
#12: mozilla::ipc::MessageChannel::RefCountedTask::Run (c:\sandbox\gecko-dev\ff-debug\dist\include\mozilla\ipc\messagechannel.h:545)
#13: mozilla::ipc::MessageChannel::DequeueTask::Run (c:\sandbox\gecko-dev\ff-debug\dist\include\mozilla\ipc\messagechannel.h:566)
#14: MessageLoop::RunTask (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_loop.cc:347)
#15: MessageLoop::DeferOrRunPendingTask (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_loop.cc:357)
#16: MessageLoop::DoWork (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_loop.cc:429)
#17: base::MessagePumpForUI::DoRunLoop (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_pump_win.cc:212)
#18: base::MessagePumpWin::RunWithDispatcher (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_pump_win.cc:58)
#19: base::MessagePumpWin::Run (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_pump_win.h:80)
#20: MessageLoop::RunInternal (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_loop.cc:233)
#21: MessageLoop::RunHandler (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_loop.cc:226)
#22: MessageLoop::Run (c:\sandbox\gecko-dev\ipc\chromium\src\base\message_loop.cc:206)
#23: base::Thread::ThreadMain (c:\sandbox\gecko-dev\ipc\chromium\src\base\thread.cc:183)
#24: `anonymous namespace'::ThreadFunc (c:\sandbox\gecko-dev\ipc\chromium\src\base\platform_thread_win.cc:29)
#25: BaseThreadInitThunk[C:\WINDOWS\SYSTEM32\KERNEL32.DLL +0x138f4]
#26: RtlUnicodeStringToInteger[C:\WINDOWS\SYSTEM32\ntdll.dll +0x65de3]
#27: RtlUnicodeStringToInteger[C:\WINDOWS\SYSTEM32\ntdll.dll +0x65dae]

+		aMsg	0x0dcf8e70 {name_=0x17f8939c "PVRManager::Reply_GetSensorState" }	IPC::Message *
		aValue	34820	const mozilla::gfx::VRDisplayCapabilityFlags &
I have taken this bug to investigate further.
Summary: [webvr] → [webvr] SECVRITY demo at mozvr.com crashes when using OSVR
Is this the same problem that causes this output in the console (on linux) when a tab crashes?

IPDL protocol error: Error deserializing 'VRHMDSensorState'
[Child 8043] ###!!! ABORT: IPDL error [PVRManagerChild]: "Error deserializing 'VRHMDSensorState'". abort()ing as a result.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/ProtocolUtils.cpp, line 315
[Child 8043] ###!!! ABORT: IPDL error [PVRManagerChild]: "Error deserializing 'VRHMDSensorState'". abort()ing as a result.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/ProtocolUtils.cpp, line 315
[Parent 7939] WARNING: pipe error (104): Connection reset by peer: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 323
[Parent 7939] WARNING: pipe error (95): Connection reset by peer: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 323
[Parent 7939] WARNING: pipe error (88): Connection reset by peer: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 323

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007E,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv



If so, this happens to me on all webvr sites that actually work like the https://aframe.io/ examples.

Even the 00-hello-webvr example from https://toji.github.io/webvr-samples/ crashes. Interestingly this one works for about 2-3 seconds and only crashes then.
Whiteboard: [webvr]
This will be fixed while enabling direct rendering for OSVR in Bug 1276711.
Component: Graphics → WebVR

The code for serializing and deserializing VRHMDSensorState has been replaced some time ago.

The patch for Bug 1466702 re-implements the GPU process side of WebVR (VRMAnager) and its related classes.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.