Description

Editor crashes when Oculus boundary component is added without a HMD connected.

This was discovered while researching a separate bug report. A user stated that on a project that had been upgraded from 4.17 to 4.18 they were having crashes with OnTick using the boundary component when there is no HMD connected.

Steps to Reproduce
  1. Ensure no Oculus HMD is connected.
  2. Create a Virtual Reality project.
  3. Create a new Actor Blueprint.
  4. Open the new Blueprint editor and add a OculusBoundary component.
  5. The editor crashes.

Results: The editor is crashing when adding an Oculus boundary component when no Oculus HMD is connected.

Expected: The boundary component should be added without crashing the editor.

Callstack
>	[Inline Frame] UE4Editor-OculusHMD.dll!FWindowsPlatformMisc::DebugBreak() Line 56	C++	Symbols loaded.
 	[Inline Frame] UE4Editor-OculusHMD.dll!TSharedPtr<IXRTrackingSystem,1>::operator->() Line 835	C++	Symbols loaded.
 	UE4Editor-OculusHMD.dll!UOculusBoundaryComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction) Line 231	C++	Symbols loaded.
 	[Inline Frame] UE4Editor-Engine.dll!FActorComponentTickFunction::ExecuteTick::__l2::<lambda_a8128609955b5bb0ccb5da311e0c1d1a>::operator()(float) Line 792	C++	Symbols loaded.
 	UE4Editor-Engine.dll!FActorComponentTickFunction::ExecuteTickHelper<<lambda_a8128609955b5bb0ccb5da311e0c1d1a> >(UActorComponent * Target, bool bTickInEditor, float DeltaTime, ELevelTick TickType, const FActorComponentTickFunction::ExecuteTick::__l2::<lambda_a8128609955b5bb0ccb5da311e0c1d1a> & ExecuteTickFunc) Line 3100	C++	Symbols loaded.
 	UE4Editor-Engine.dll!FActorComponentTickFunction::ExecuteTick(float DeltaTime, ELevelTick TickType, ENamedThreads::Type CurrentThread, const TRefCountPtr<FGraphEvent> & MyCompletionGraphEvent) Line 794	C++	Symbols loaded.
 	UE4Editor-Engine.dll!FTickFunctionTask::DoTask(ENamedThreads::Type CurrentThread, const TRefCountPtr<FGraphEvent> & MyCompletionGraphEvent) Line 273	C++	Symbols loaded.
 	UE4Editor-Engine.dll!TGraphTask<FTickFunctionTask>::ExecuteTask(TArray<FBaseGraphTask *,FDefaultAllocator> & NewTasks, ENamedThreads::Type CurrentThread) Line 784	C++	Symbols loaded.
 	[Inline Frame] UE4Editor-Core.dll!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,FDefaultAllocator> & CurrentThread, ENamedThreads::Type) Line 466	C++	Symbols loaded.
 	UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread(int QueueIndex, bool bAllowStall) Line 651	C++	Symbols loaded.
 	UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksUntilIdle(int QueueIndex) Line 571	C++	Symbols loaded.
 	UE4Editor-Engine.dll!FTickTaskSequencer::ReleaseTickGroup(ETickingGroup WorldTickGroup, bool bBlockTillComplete) Line 559	C++	Symbols loaded.
 	UE4Editor-Engine.dll!FTickTaskManager::RunTickGroup(ETickingGroup Group, bool bBlockTillComplete) Line 1454	C++	Symbols loaded.
 	UE4Editor-Engine.dll!UWorld::RunTickGroup(ETickingGroup Group, bool bBlockTillComplete) Line 760	C++	Symbols loaded.
 	UE4Editor-Engine.dll!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) Line 1420	C++	Symbols loaded.
 	UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1459	C++	Symbols loaded.
 	UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 396	C++	Symbols loaded.
 	UE4Editor.exe!FEngineLoop::Tick() Line 3296	C++	Symbols loaded.
 	[Inline Frame] UE4Editor.exe!EngineTick() Line 62	C++	Symbols loaded.
 	UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 166	C++	Symbols loaded.
 	UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 199	C++	Symbols loaded.

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

2
Login to Vote

Cannot Reproduce
ComponentUE - Platform - XR
Affects Versions4.184.19
Target Fix4.19
CreatedNov 7, 2017
ResolvedJan 8, 2018
UpdatedApr 27, 2018
View Jira Issue