code: def test_garbage_collection(setup_queue_actor):
      queue = setup_queue_actor
  
      @ray.remote
      def fork(queue):
          for i in range(10):
              x = queue.enqueue.remote(0, i)
              time.sleep(0.1)
          return ray.get(x)
  
      x = fork.remote(queue)
      ray.get(queue.read.remote())
      del queue
  
      print(ray.get(x))
  
imports: import os
  import sys
  import time
  import numpy
  import pytest
  import ray
  import ray._private.gcs_utils
  from ray.util.state import list_actors
  import ray.cluster_utils
  from ray._private.test_utils import SignalActor, convert_actor_state, kill_actor_and_wait_for_failure, make_global_state_accessor, run_string_as_driver, wait_for_condition, wait_for_pid_to_exit
  from ray._private.ray_constants import gcs_actor_scheduling_enabled
  from ray.experimental.internal_kv import _internal_kv_get, _internal_kv_put
label_desc: Use image node_id 14 for calling a global function with example usage: test_garbage_collection(setup_queue_actor) and returns: ray