code: def test_multiple_recursive(ray_start_reconstruction):
      plasma_store_memory, _, cluster = ray_start_reconstruction
      # Define the size of one task's return argument so that the combined
      # sum of all objects' sizes is at least twice the plasma stores'
      # combined allotted memory.
      num_objects = 100
      size = plasma_store_memory * 2 // (num_objects * 8)
  
      # Define a root task with no dependencies, which returns a numpy array
      # of the given size.
      @ray.remote
      def no_dependency_task(size):
          array = np.zeros(size)
          return array
  
      # Define a task with multiple dependencies, which returns its first
      # argument.
      @ray.remote
      def multiple_dependency(i, arg1, arg2, arg3):
          arg1 = np.copy(arg1)
          arg1[0] = i
          return arg1
  
      # Launch num_args instances of the root task. Then launch num_objects
      # instances of the multi-dependency remote task, each dependent on the
      # num_args tasks before it.
      num_args = 3
      args = []
      for i in range(num_args):
          arg = no_dependency_task.remote(size)
          args.append(arg)
      for i in range(num_objects):
          args.append(
              multiple_dependency.remote(i, *args[i : i + num_args])
          )
  
      # Get each value to force each task to finish. After some number of
      # gets, old values should be evicted.
      args = args[num_args:]
      for i in range(num_objects):
          value = ray.get(args[i])
          assert value[0] == i
      # Get each value again to force reconstruction.
      for i in range(num_objects):
          value = ray.get(args[i])
          assert value[0] == i
      # Get 10 values randomly.
      random_indexes = sorted_random_indexes(num_objects, 10)
      for i in random_indexes:
          value = ray.get(args[i])
          assert value[0] == i
  
      assert cluster.remaining_processes_alive()
  
file_path: ray/python/ray/tests/test_stress_failure.py
imports: import sys
  import time
  import numpy
  import pytest
  import ray
  import ray._private.ray_constants
  from ray._private.test_utils import get_error_message
  from ray.cluster_utils import Cluster, cluster_not_supported
label_desc: Use image node_id 5 for calling a global function with example usage: test_multiple_recursive(ray_start_reconstruction) and returns: array, arg1