code: def test_kill_driver_keep_infeasible_detached_actor(
      ray_start_cluster,
  ):
      cluster = ray_start_cluster
      address = cluster.address
  
      cluster.add_node(num_cpus=1)
  
      driver_script = """
  import ray
  
  @ray.remote
  class A:
      def fn(self):
          pass
  
  ray.init(address="{}", namespace="test_det")
  
  ray.get(A.options(num_cpus=123, name="det", lifetime="detached").remote())
  """.format(
          cluster.address
      )
  
      proc = run_string_as_driver_nonblocking(driver_script)
  
      ctx = ray.init(address=address, namespace="test_det")
  
      wait_for_condition(
          check_infeasible,
          timeout=10,
          retry_interval_ms=1000,
          expect_infeasible=True,
          ray_ctx=ctx,
      )
  
      os.kill(proc.pid, 9)
  
      cluster.add_node(num_cpus=200)
  
      det_actor = ray.get_actor("det")
  
      ray.get(det_actor.fn.remote())
  
file_path: ray/python/ray/tests/test_node_manager.py
imports: import ray
  from ray.util.state import list_workers
  from ray._private.test_utils import get_load_metrics_report, run_string_as_driver, run_string_as_driver_nonblocking, wait_for_condition, get_resource_usage
  import pytest
  import os
  from ray.util.state import list_objects
  import subprocess
  from ray._private.utils import get_num_cpus
  import time
  import sys
label_desc: Use image node_id 6 for calling a global function with example usage: test_kill_driver_keep_infeasible_detached_actor(ray_start_cluster) without return types