Windows blue screen (BSOD) during reboot caused by controller.exe (robot)

Document ID : KB000006694
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

Upon rebooting a system, during or immediately after the reboot process, a Windows crash event (blue screen of death) may occur.

A memory dump/minidump related to the crash may show the following:

FAILURE_BUCKET_ID: 0xEF_wininit.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_controller.exe_c9f84880 
BUCKET_ID: 0xEF_wininit.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_controller.exe_c9f84880 
PRIMARY_PROBLEM_CLASS: 0xEF_wininit.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_controller.exe_c9f84880 

 

Environment:
Windows - any version
Cause:

When a robot restarts, it tries to shut down all the probes which are running. If they do not shut down within 10 seconds, the controller will issue a 'kill' command based on the PID. At this time the controller also records the PIDs of these processes, and when it restarts, it checks if these PIDs are still active, and if so, it kills those processes before starting up the probes again. 

 

Sometimes during a reboot, one or more probes can take longer to shut down and the reboot interrupts this process, so that after the reboot, a new process has taken a PID that was previously owned by a probe, and the controller terminates this process. If this is a system critical process it will cause a BSOD. 

Resolution:

This can be worked around with some configuration settings on the robot -- keep in mind that adding these settings may cause robot restarts to take longer than usual. 

 

These keys should be added to the robot.cfg in the main <controller> Section. 

 

use_force_stop = 0 

 

to prevent the robot forcing stopping probe processes – it will loop waiting for probes to shut down naturally instead. 

 

stop_existing_processes = 0 

 

to prevent the robot killing processes from a previous run of controller if it believes they exist. 

 

Working in tandem, these should mitigate cases where the controller could terminate processes it doesn’t own.

Additional Information:

Robot 7.80HF21 or higher is required for this functionality.