code: def test_actor_pass_by_ref(ray_start_regular_shared):
      @ray.remote
      class Actor:
          def __init__(self):
              pass
  
          def f(self, x):
              return x * 2
  
      @ray.remote
      def f(x):
          return x
  
      @ray.remote
      def error():
          sys.exit(0)
  
      a = Actor.remote()
      assert ray.get(a.f.remote(f.remote(1))) == 2
  
      fut = [a.f.remote(f.remote(i)) for i in range(100)]
      assert ray.get(fut) == [i * 2 for i in range(100)]
  
      # propagates errors for pass by ref
      with pytest.raises(Exception):
          ray.get(a.f.remote(error.remote()))
  
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 15 for calling a global function with example usage: test_actor_pass_by_ref(ray_start_regular_shared) and returns: x, unknown