code: def test_ray_stack(ray_start_2_cpus):
      def unique_name_1():
          time.sleep(1000)
  
      @ray.remote
      def unique_name_2():
          time.sleep(1000)
  
      @ray.remote
      def unique_name_3():
          unique_name_1()
  
      unique_name_2.remote()
      unique_name_3.remote()
  
      success = False
      start_time = time.time()
      while time.time() - start_time < 30:
          # Attempt to parse the "ray stack" call.
          output = ray._private.utils.decode(
              check_call_ray(["stack"], capture_stdout=True)
          )
          if (
              "unique_name_1" in output
              and "unique_name_2" in output
              and "unique_name_3" in output
          ):
              success = True
              break
  
      if not success:
          raise Exception(
              "Failed to find necessary information with 'ray stack'"
          )
  
imports: import logging
  import os
  import pickle
  import socket
  import sys
  import time
  import numpy
  import pytest
  import ray
  import ray._private.utils
  import ray.cluster_utils
  import ray.util.accelerators
  from ray._private.test_utils import check_call_ray, wait_for_num_actors
  import setproctitle
label_desc: Use image node_id 10 for calling a global function with example usage: test_ray_stack(ray_start_2_cpus) without return types