code: def test_call_actors_indirect_through_tasks(ray_start_regular_shared):
      @ray.remote
      class Counter:
          def __init__(self, value):
              self.value = int(value)
  
          def increase(self, delta):
              self.value += int(delta)
              return self.value
  
      @ray.remote
      def foo(object):
          return ray.get(object.increase.remote(1))
  
      @ray.remote
      def bar(object):
          return ray.get(object.increase.remote(1))
  
      @ray.remote
      def zoo(object):
          return ray.get(object[0].increase.remote(1))
  
      c = Counter.remote(0)
      for _ in range(0, 100):
          ray.get(foo.remote(c))
          ray.get(bar.remote(c))
          ray.get(zoo.remote([c]))
  
imports: import array
  import logging
  import os
  import random
  import subprocess
  import sys
  import tempfile
  import threading
  import time
  from unittest.mock import MagicMock, patch
  import pytest
  from ray._private.ray_constants import KV_NAMESPACE_FUNCTION_TABLE
  from ray._private.test_utils import client_test_enabled
  from ray.cluster_utils import Cluster, cluster_not_supported
  from ray.exceptions import GetTimeoutError, RayTaskError
  from ray.tests.client_test_utils import create_remote_signal_actor
label_desc: Use image node_id 11 for calling a global function with example usage: test_call_actors_indirect_through_tasks(ray_start_regular_shared) and returns: ray, ray, ray, self