code: def test_http_proxy_failure(serve_instance):
      @serve.deployment(name="proxy_failure")
      def function(_):
          return "hello1"
  
      serve.run(function.bind())
  
      assert (
          request_with_retries("/proxy_failure/", timeout=1.0).text
          == "hello1"
      )
  
      for _ in range(10):
          response = request_with_retries("/proxy_failure/", timeout=30)
          assert response.text == "hello1"
  
      _kill_http_proxies()
  
      def function2(_):
          return "hello2"
  
      serve.run(function.options(func_or_class=function2).bind())
  
      def check_new():
          for _ in range(10):
              response = request_with_retries(
                  "/proxy_failure/", timeout=30
              )
              if response.text != "hello2":
                  return False
          return True
  
      wait_for_condition(check_new)
  
file_path: ray/python/ray/serve/tests/test_failure.py
imports: import os
  import sys
  import time
  import pytest
  import requests
  import ray
  from ray import serve
  from ray._private.test_utils import SignalActor, wait_for_condition
  from ray.serve._private.common import DeploymentID
  from ray.serve._private.constants import SERVE_DEFAULT_APP_NAME
label_desc: Use image node_id 4 for calling a global function with example usage: test_http_proxy_failure(serve_instance) and returns: str, str, True, False