Windows enabled 'Fault Tolerant Heap' for 3dsmax or dependent processes. This may have severe performance impact on Corona. Please follow the link to learn how to solve the problem.
Affected executables are:
xxxx (typically 3dsmax.exe)



This article contains possible solutions to following problems:

  • Very long or infinite pre-rendering phase ("transforming vertices", "building acc. structure", "parsing the scene") - usually in distributed rendering
  • Very long scene saving times
  • Usually the problems appear in large scenes (but it is not a rule)
  • Other problems like freezing, or infinite loading, which are hard to diagnose


These problems may be related to Microsoft Windows detecting an application which is often crashing (in this case 3ds Max, Corona, or other plugin) and applying special mitigations to it. In some cases this can prevent the application from crashing, but at the same time makes it extremely slow.


The solution to these problems may be disabling the Fault Tolerant Heap globally, or for a specific application (see below).




What is FTH?


The Fault Tolerant Heap (FTH) is a subsystem of Windows 7 responsible for monitoring application crashes and autonomously applying mitigations to prevent future crashes on a per application basis. For the vast majority of users, FTH will function with no need for intervention or change on their part. However, in some cases, application developers and software testers may need to override the default behavior of this system.

Source: Microsoft Dev Center




Viewing FTH Logs


This helps identify the problem. To confirm that the problem you are experiencing is triggering FTH, you should look for 3dsmax.exe, WsCommCntr4.exe, or any other .exe file associated with 3ds Max in the FTH logs.


Viewing Fault Tolerant Heap activity

Fault Tolerant Heap logs information when the service starts, stops, or starts mitigating problems for a new application. To view this information, follow these steps:

  1. Click the Start menu.
  2. Right-click Computer and click Manage.
  3. Click Event Viewer > Applications and Services Logs > Microsoft > Windows > Fault-Tolerant-Heap
  4. View FTH Events.
The service stop and start events contain no additional data. The FTH Enabled event contains the Process ID (PID), the process image name, and the process instance start time.

Source: Microsoft Dev Center




Disabling FTH


Note: basic knowledge on editing the Windows registry is required to perform the below steps. Please see: Windows registry information for advanced users

1. Excluding an application from FTH - method #1:

This will permanently exclude an application from FTH, unless it is reverted by the user.

Add the name of the application (the one which was listed in the FTH log - for example 3dsmax.exe) to the following registry entry:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList


Then delete the exe entry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State


This should disable FTH for the added application.

Source: Stack overflow



2. Excluding an application from FTH - method #2:

This will temporarily exclude an application from FTH, and Windows will be able to autonomously include the application again in the future.

Go to HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER versions of Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\your_application.exe and delete the Fault­Tolerant­Heap entry.

Source: The Old New Thing



3. Disabling FTH completely:

To disable Fault Tolerant Heap entirely on a system, set the REG_DWORD value HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled to 0.

After changing this value, restart the system. FTH will no longer activate for new applications.

Source: Microsoft Dev Center


You may additionally need to delete the exe entry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State



4. Resetting the list of applications tracked by FTH

Fault Tolerant heap is self-managing and will autonomously stop applying in the case that mitigations are not effective for a given application. However, if you need to reset the list of applications for which FTH is mitigating problems (for example, if you are testing an application and need to reproduce a crash that FTH is mitigating), you can run the following command from an elevated command prompt:


Rundll32.exe fthsvc.dll,FthSysprepSpecialize


Caution Running this command will clear all FTH applications, so applications that are currently functioning properly may begin to crash again after running this command.

Source: Microsoft Dev Center




Related forum threads


Parsing the scene and network performance (solved by disabling FTH)

https://corona-renderer.com/forum/index.php/topic,9934.msg63416.html#msg63416


Corona 1.01.00 Transforming Vertices too long on Slave (WSCommCntr4.exe was found in FTH logs, solved by renaming WSCommCntr4.exe and thus preventing it from running)

https://corona-renderer.com/forum/index.php/topic,8625.msg56436.html#msg56436