FRecastNavMeshGenerator does not cancel its async running tasks when destructing. This leads to leaking build tasks if any are running when the generator is destroyed.

Steps to Reproduce
  1. Add navmesh bounds volume that encompass the entire level. This works well with the open world template map.
  2. Change Navigation Mesh settings in Project Settings
    1. Runtime Generation: Dynamic
    2. Enable flag for Do Fully Async Nav Data Gathering
  3. Change Navigation System settings in Project Settings
    1. Enable flag for Generate Navigation Only Around Navigation Invokers
    2. Enable flag for Auto Create Navigation Data
  4. Create an Actor BP
    1. Add Navigation Invoker component to actor
    2. Disable the flag for Auto Activate
    3. Add node to activate the Navigation Invoker component in Begin Play
  5. Place actor in level. Several actors spread far apart (>5000uu ) makes it easier to catch with active build tasks running.
  6. PIE/SIE
  7. Exit PIE while some of the navmesh tiles are red (being built)

Expected Result: The navigation generator exits cleanly with no memory 

Actual Result: Active build tasks are never properly GC'd.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-189969 in the post.

Login to Vote

ComponentUE - AI - Navigation
Affects Versions5.
Target Fix5.4
Fix Commit26347050
Main Commit26347050
CreatedJun 29, 2023
ResolvedJun 30, 2023
UpdatedJul 18, 2023
View Jira Issue