40 lines
931 B
Python
40 lines
931 B
Python
import signal
|
|
import sys
|
|
|
|
import pytest
|
|
|
|
import ray
|
|
from ray._common.test_utils import wait_for_condition
|
|
|
|
import psutil
|
|
|
|
|
|
def get_pid(name):
|
|
pids = psutil.process_iter()
|
|
for pid in pids:
|
|
if name in pid.name():
|
|
return pid.pid
|
|
return -1
|
|
|
|
|
|
@pytest.mark.skipif(sys.platform == "win32", reason="Not support on Windows.")
|
|
def test_kill_raylet_signal_log(ray_start_regular):
|
|
session_dir = ray._private.worker._global_node.get_session_dir_path()
|
|
raylet_out_path = "{}/logs/raylet.err".format(session_dir)
|
|
pid = get_pid("raylet")
|
|
assert pid > 0
|
|
p = psutil.Process(pid)
|
|
p.send_signal(signal.SIGABRT)
|
|
p.wait(timeout=15)
|
|
|
|
def check_for_sigabrt_in_log():
|
|
with open(raylet_out_path) as f:
|
|
s = f.read()
|
|
return "SIGABRT" in s
|
|
|
|
wait_for_condition(check_for_sigabrt_in_log)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(pytest.main(["-sv", __file__]))
|