code: def test_recovering_controller_no_redeploy():
      """Ensure controller doesn't redeploy running deployments when recovering."""
      ray_context = ray.init(namespace="x")
      address = ray_context.address_info["address"]
      serve.start()
      client = _get_global_client()
  
      @serve.deployment
      def f():
          pass
  
      serve.run(f.bind())
  
      num_actors = len(
          list_actors(address, filters=[("state", "=", "ALIVE")])
      )
      assert num_actors > 0
  
      pid = ray.get(client._controller.get_pid.remote())
  
      ray.kill(client._controller, no_restart=False)
  
      wait_for_condition(
          lambda: ray.get(client._controller.get_pid.remote()) != pid
      )
  
      # Confirm that no new deployment is deployed over the next 5 seconds
      with pytest.raises(RuntimeError):
          wait_for_condition(
              lambda: len(
                  list_actors(
                      address, filters=[("state", "=", "ALIVE")]
                  )
              )
              > num_actors,
              timeout=5,
          )
  
      serve.shutdown()
      ray.shutdown()
  
imports: import logging
  import os
  import socket
  import sys
  import time
  import pytest
  import requests
  import ray
  import ray._private.gcs_utils
  from ray import serve
  from ray._private.services import new_port
  from ray._private.test_utils import convert_actor_state, run_string_as_driver, wait_for_condition
  from ray._raylet import GcsClient
  from ray.cluster_utils import Cluster, cluster_not_supported
  from ray.serve._private import api
  from ray.serve._private.constants import SERVE_CONTROLLER_NAME, SERVE_DEFAULT_APP_NAME, SERVE_NAMESPACE, SERVE_PROXY_NAME, SERVE_ROOT_URL_ENV_KEY
  from ray.serve._private.default_impl import create_cluster_node_info_cache
  from ray.serve._private.http_util import set_socket_reuse_port
  from ray.serve._private.utils import block_until_http_ready, format_actor_name
  from ray.serve.config import DeploymentMode, HTTPOptions, ProxyLocation
  from ray.serve.context import _get_global_client
  from ray.serve.exceptions import RayServeException
  from ray.serve.schema import ServeApplicationSchema, ServeDeploySchema
  from ray.tests.conftest import maybe_external_redis
  from ray.tests.conftest import ray_start_with_dashboard
  from ray.util.state import list_actors
label_desc: Use image node_id 21 for calling a global function with example usage: test_recovering_controller_no_redeploy() without return types