code: def test_spill_remote_object(
      ray_start_cluster_enabled, multi_node_object_spilling_config
  ):
      cluster = ray_start_cluster_enabled
      object_spilling_config, _ = multi_node_object_spilling_config
      cluster.add_node(
          num_cpus=0,
          object_store_memory=75 * 1024 * 1024,
          _system_config={
              "automatic_object_spilling_enabled": True,
              "object_store_full_delay_ms": 100,
              "max_io_workers": 4,
              "object_spilling_config": object_spilling_config,
              "min_spilling_size": 0,
          },
      )
      ray.init(address=cluster.address)
      cluster.add_node(object_store_memory=75 * 1024 * 1024)
      cluster.wait_for_nodes()
  
      @ray.remote
      def put():
          return np.random.rand(5 * 1024 * 1024)  # 40 MB data
  
      @ray.remote
      def depends(arg):
          return
  
      ref = put.remote()
      copy = np.copy(ray.get(ref))
      # Evict local copy.
      ray.put(np.random.rand(5 * 1024 * 1024))  # 40 MB data
      # Remote copy should cause first remote object to get spilled.
      ray.get(put.remote())
  
      sample = ray.get(ref)
      assert np.array_equal(sample, copy)
      # Evict the spilled object.
      del sample
      ray.get(put.remote())
      ray.put(np.random.rand(5 * 1024 * 1024))  # 40 MB data
  
      # Test passing the spilled object as an arg to another task.
      ray.get(depends.remote(ref))
      assert_no_thrashing(cluster.address)
  
imports: import copy
  import json
  import platform
  import random
  import sys
  from datetime import datetime, timedelta
  from unittest.mock import patch
  import numpy
  import pytest
  import ray
  from ray._private.external_storage import create_url_with_offset, parse_url_with_offset, _get_unique_spill_filename, FileSystemStorage, ExternalStorageSmartOpenImpl
  from ray._private.internal_api import memory_summary
  from ray._private.test_utils import wait_for_condition
  from ray._raylet import GcsClientOptions
  from ray.tests.conftest import buffer_object_spilling_config, file_system_object_spilling_config, mock_distributed_fs_object_spilling_config
label_desc: Use image node_id 11 for calling a global function with example usage: test_spill_remote_object(ray_start_cluster_enabled, multi_node_object_spilling_config) and returns: np