Mac Editor Lockups: FDebug::EnsureFailed

The UE4Editor on Mac OS X when playing with landscapes has started to lock up on me. Adding a new section to the landscape and even navigating have become plagued with frequent lockups.

I’ve CPU profiled the editor with Instruments.app during various lockups and the consistent thing in all fo them is FDebug::EnsureFailed() taking all the time. Example:

Running Time	Self		Symbol Name
2025.0ms   95.9%	0.0	 	                      FEngineLoop::Tick()
2025.0ms   95.9%	0.0	 	                       UUnrealEdEngine::Tick(float, bool)
2025.0ms   95.9%	0.0	 	                        UEditorEngine::Tick(float, bool)
2025.0ms   95.9%	0.0	 	                         UWorld::Tick(ELevelTick, float)
2025.0ms   95.9%	0.0	 	                          UNavigationSystem::Tick(float)
2025.0ms   95.9%	0.0	 	                           UNavigationSystem::AddElementToNavOctree(FNavigationDirtyElement const&)
2025.0ms   95.9%	0.0	 	                            UNavigationSystem::AddComponentElementToNavOctree(UActorComponent*, FNavigationDirtyElement const&, FBox const&)
2005.0ms   94.9%	0.0	 	                             FDebug::EnsureFailed(char const*, char const*, int, wchar_t const*)
2005.0ms   94.9%	0.0	 	                              FGenericPlatformStackWalk::StackWalkAndDump(char*, unsigned long, int, void*)
2005.0ms   94.9%	0.0	 	                               FApplePlatformStackWalk::ProgramCounterToHumanReadableString(int, unsigned long long, char*, unsigned long, unsigned int, FGenericCrashContext*)
2000.0ms   94.7%	0.0	 	                                FApplePlatformStackWalk::ProgramCounterToSymbolInfo(unsigned long long, FProgramCounterSymbolInfo&)
1984.0ms   93.9%	0.0	 	                                 <Unknown Address>
1984.0ms   93.9%	1984.0	 	                                  __fork
6.0ms    0.2%	1.0	 	                                 fork
4.0ms    0.1%	0.0	 	                                 dladdr
3.0ms    0.1%	3.0	 	                                 read
2.0ms    0.0%	0.0	 	                                 __cxa_demangle
1.0ms    0.0%	1.0	 	                                 __wait4
5.0ms    0.2%	0.0	 	                                dladdr
  • Branch: UE 4.4.0-2237849 Binary
  • OS X 10.9.4
  • iMac 3.5 GHz quad core i7, 16 GB RAM
  • NVIDIA GeForce GTX 780M 4 GB VRAM

When an ensure condition fails the callstack is recoded, which is quite a slow operation. We’ll need the project logs from ~/Library/Logs/Unreal Engine/ to start with.

I’d be interested in knowing if this can be reproduced on Windows, since there isn’t anything Mac specific about the landscape or navigation systems, so some details about the landscape you’ve built would be very helpful too.

I’m preeeetty sure this is the right log.

Log

Looks like the navtree system has fallen over: GetObjectsNavOctreeId(ActorComp) == NULL

I doubt that this is a Mac specific problem.