code: def test_feature_flag(shutdown_only):
      ray.init(object_store_memory=100 * 1024 * 1024)
  
      @ray.remote
      def f(array):
          return np.sum(array)
  
      @ray.remote
      class Actor(object):
          def __init__(self):
              self.large_object = ray.put(
                  np.zeros(25 * 1024 * 1024, dtype=np.uint8)
              )
  
          def wait_for_actor_to_start(self):
              pass
  
          def get_large_object(self):
              return ray.get(self.large_object)
  
      actor = Actor.remote()
      ray.get(actor.wait_for_actor_to_start.remote())
  
      # The ray.get below fails with only LRU eviction, as the object
      # that was ray.put by the actor should have been evicted.
      ref = actor.get_large_object.remote()
      ray.get(ref)
  
      # Keep refs in scope so that they don't get GCed immediately.
      for _ in range(5):
          put_ref = ray.put(np.zeros(40 * 1024 * 1024, dtype=np.uint8))
      del put_ref
  
      wait_for_condition(
          lambda: not ray._private.worker.global_worker.core_worker.object_exists(
              ref
          )
      )
  
imports: import copy
  import logging
  import os
  import sys
  import time
  import numpy
  import pytest
  import ray
  import ray._private.gcs_utils
  import ray.cluster_utils
  from ray._private.test_utils import SignalActor, convert_actor_state, kill_actor_and_wait_for_failure, put_object, wait_for_condition, skip_flaky_core_test_premerge
label_desc: Use image node_id 9 for calling a global function with example usage: test_feature_flag(shutdown_only) and returns: np, ray