code: def test_internal_free_edge_case(shutdown_only):
      ray.init(
          num_cpus=1,
          _system_config={
              "fetch_fail_timeout_milliseconds": 200,
          },
      )
  
      @ray.remote
      def gen():
          return ray.put(np.ones(1024 * 1024 * 100))
  
      @ray.remote
      def free(x):
          ray._private.internal_api.free(x[0], local_only=False)
  
      x = ray.get(gen.remote())
      ray.get(x)
      ray.get(free.remote([x]))
  
      # This currently hangs, since as a borrower we never subscribe for
      # object deletion events. Check that we at least hit the fetch timeout.
      with pytest.raises(ray.exceptions.ObjectFetchTimedOutError):
          ray.get(x)
  
imports: import json
  import logging
  import os
  import sys
  import time
  import numpy
  import pytest
  import ray._private.profiling
  import ray.cluster_utils
  from ray._private.internal_api import memory_summary
  from ray._private.test_utils import client_test_enabled, wait_for_condition
  from ray.exceptions import ObjectFreedError
label_desc: Use image node_id 3 for calling a global function with example usage: test_internal_free_edge_case(shutdown_only) and returns: ray