code: def test_reconstruction_stress(config, ray_start_cluster):
      config["task_retry_delay_ms"] = 100
      config["max_direct_call_object_size"] = 100
      cluster = ray_start_cluster
      # Head node with no resources.
      cluster.add_node(
          num_cpus=0,
          _system_config=config,
          enable_object_reconstruction=True,
      )
      ray.init(address=cluster.address)
      # Node to place the initial object.
      node_to_kill = cluster.add_node(
          num_cpus=1,
          resources={"node1": 1},
          object_store_memory=10**8,
      )
      cluster.add_node(
          num_cpus=1,
          resources={"node2": 1},
          object_store_memory=10**8,
      )
      cluster.wait_for_nodes()
  
      @ray.remote
      def large_object():
          return np.zeros(10**5, dtype=np.uint8)
  
      @ray.remote
      def dependent_task(x):
          return
  
      for _ in range(3):
          obj = large_object.options(resources={"node1": 1}).remote()
          ray.get(
              dependent_task.options(resources={"node2": 1}).remote(obj)
          )
  
          outputs = [
              large_object.options(resources={"node1": 1}).remote()
              for _ in range(1000)
          ]
          outputs = [
              dependent_task.options(resources={"node2": 1}).remote(obj)
              for obj in outputs
          ]
  
          cluster.remove_node(node_to_kill, allow_graceful=False)
          node_to_kill = cluster.add_node(
              num_cpus=1,
              resources={"node1": 1},
              object_store_memory=10**8,
          )
  
          i = 0
          while outputs:
              ray.get(outputs.pop(0))
              print(i)
              i += 1
  
file_path: ray/python/ray/tests/test_reconstruction_stress.py
imports: import os
  import signal
  import sys
  import numpy
  import pytest
  import ray
label_desc: Use image node_id 2 for calling a global function with example usage: test_reconstruction_stress(config, ray_start_cluster) and returns: np