Unverified Commit 9f3bc0f5 authored by Cody Yu's avatar Cody Yu Committed by GitHub
Browse files

[MISC][V1] Register process killing handler only in the main thread (#14380)


Signed-off-by: default avatarCody Yu <hao.yu.cody@gmail.com>
parent 980385f8
......@@ -4,6 +4,7 @@ import asyncio
import os
import queue
import signal
import threading
import uuid
import weakref
from abc import ABC, abstractmethod
......@@ -260,7 +261,14 @@ class MPClient(EngineCoreClient):
"down. See stack trace above for root cause issue.")
kill_process_tree(os.getpid())
signal.signal(signal.SIGUSR1, sigusr1_handler)
if threading.current_thread() == threading.main_thread():
signal.signal(signal.SIGUSR1, sigusr1_handler)
else:
logger.warning("SIGUSR1 handler not installed because we are not "
"running in the main thread. In this case the "
"forked engine process may not be killed when "
"an exception is raised, and you need to handle "
"the engine process shutdown manually.")
# Serialization setup.
self.encoder = MsgpackEncoder()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment