Developer Notes

Could not repro, added security to code for this crash

Description

Crash occurs if the Recast Navmesh is set to Dynamic and the BehaviorTree runs a 'Does Path Exist' decorator.

Crashreporter info:

[Link Removed]

Steps to Reproduce

1. Open QA-Game
2. Create a bp AIController class named 'BP_AIController'
3. Create a bp Character class named 'BP_AI' & open it
4. In BP_AI > Class Defaults > Pawn > Set the AI Controller Class to BP_AIController
5. Compile & save
6. Create a Blackboard bp named 'BP_Blackboard' & open it
7. Add 2 Vector keys, one named 'Spawn' and the other 'Core'
8. Save & close the bb
9. Create a Behavior Tree bp named 'BP_BehaviorTree'
10. In the Details panel, make sure the Blackboard Asset is set to BP_Blackboard
11. Add a New Task
12. Open the Task and created the bp from Screenshot #01
13. Compile & save the task
14. In the BP_AIController, create the bp from Screenshot #02
15. Compile & save
16. In the BP_BehaviorTree, create the setup from Screenshot #03
17. Make sure to set the keys in the Details panel to Spawn & Core
18. Save the bt
19. Back in the editor, add the BP_AI to the level
20. Add a NavMeshBoundsVolume to the level
21. In the World Outliner, select the RecastNavMesh
22. In the Details panel, scroll to the bottom to make sure that RuntimeGeneration is set to Dynamic
23. Build the level & after it is finished, save all
24. PIE

Results: The editor will crash

Expected: For the Behavior Tree to run the Does Path Exist decorator when the RecastNavMesh is set to Dynamic

Callstack
MachineId:DE189244480D3CD0F8CA729A02DD38A6
EpicAccountId:75f47e038a8442f0af6c18e1f38eeb85

Access violation - code c0000005 (first/second chance not available)

""

UE4Editor_Navmesh!dtNavMeshQuery::queryPolygons() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\navmesh\private\detour\detournavmeshquery.cpp:1226]
UE4Editor_Navmesh!dtNavMeshQuery::findNearestPoly() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\navmesh\private\detour\detournavmeshquery.cpp:1040]
UE4Editor_Engine!FPImplRecastNavMesh::InitPathfinding() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\ai\navigation\pimplrecastnavmesh.cpp:955]
UE4Editor_Engine!FPImplRecastNavMesh::TestClusterPath() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\ai\navigation\pimplrecastnavmesh.cpp:928]
UE4Editor_Engine!ARecastNavMesh::TestHierarchicalPath() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\ai\navigation\recastnavmesh.cpp:1812]
UE4Editor_Engine!UNavigationSystem::TestPathSync() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\ai\navigation\navigationsystem.cpp:935]
UE4Editor_AIModule!UBTDecorator_DoesPathExist::CalculateRawConditionValue() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\aimodule\private\behaviortree\decorators\btdecorator_doespathexist.cpp:78]
UE4Editor_AIModule!UBTDecorator::WrappedCanExecute() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\aimodule\private\behaviortree\btdecorator.cpp:53]
UE4Editor_AIModule!UBTCompositeNode::DoDecoratorsAllowExecution() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\aimodule\private\behaviortree\btcompositenode.cpp:381]
UE4Editor_AIModule!UBTCompositeNode::FindChildToExecute() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\aimodule\private\behaviortree\btcompositenode.cpp:39]
UE4Editor_AIModule!UBehaviorTreeComponent::ProcessExecutionRequest() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\aimodule\private\behaviortree\behaviortreecomponent.cpp:1112]
UE4Editor_AIModule!UBehaviorTreeComponent::TickComponent() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\aimodule\private\behaviortree\behaviortreecomponent.cpp:984]
UE4Editor_Engine!UActorComponent::ConditionalTickComponent() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\components\actorcomponent.cpp:1116]
UE4Editor_Engine!FActorComponentTickFunction::ExecuteTick() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\components\actorcomponent.cpp:656]
UE4Editor_Engine!FTickTaskSequencer::FTickFunctionTask::DoTask() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\ticktaskmanager.cpp:113]
UE4Editor_Engine!TGraphTask<FTickTaskSequencer::FTickFunctionTask>::ExecuteTask() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\core\public\async\taskgraphinterfaces.h:758]
UE4Editor_Core!FTaskThread::ProcessTasks() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\core\private\async\taskgraph.cpp:429]
UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\core\private\async\taskgraph.cpp:272]
UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\core\private\async\taskgraph.cpp:990]
UE4Editor_Engine!FTaskGraphInterface::WaitUntilTaskCompletes() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\core\public\async\taskgraphinterfaces.h:191]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\ticktaskmanager.cpp:232]
UE4Editor_Engine!FTickTaskManager::RunTickGroup() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\ticktaskmanager.cpp:643]
UE4Editor_Engine!UWorld::RunTickGroup() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\leveltick.cpp:700]
UE4Editor_Engine!UWorld::Tick() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\engine\private\leveltick.cpp:1138]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\editor\unrealed\private\editorengine.cpp:1345]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\editor\unrealed\private\unrealedengine.cpp:369]
UE4Editor!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\launch\private\launchengineloop.cpp:2376]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++depot+ue4\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]

Have Comments or More Details?

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

0
Login to Vote

Cannot Reproduce
ComponentUE - AI
Affects Versions4.84.9
Target Fix4.9
Fix Commit2598631
CreatedJun 16, 2015
ResolvedJun 24, 2015
UpdatedApr 27, 2018
View Jira Issue