Repository: mars-project/mars

Issue:
[BUG] `test_ray_client` run failed
<!--
Thank you for your contribution!

Please review https://github.com/mars-project/mars/blob/master/CONTRIBUTING.rst before opening an issue.
-->

**Describe the bug**

`mars/deploy/oscar/tests/test_ray_client.py::test_ray_client` run failed.

**To Reproduce**
To help us reproducing this bug, please provide information below:
1. Your Python version: python 3.8.16
2. The version of Mars you use: master
3. Versions of crucial packages, such as numpy, scipy and pandas
    numpy: 1.24.3
    pandas: 1.5.3
    ray: 2.4.0
5. Full stack of the error.

```python
____________________________ test_ray_client[mars] _____________________________

backend = 'mars'

    @require_ray
    @pytest.mark.parametrize(
        "backend",
        [
            "mars",
            "ray",
        ],
    )
    def test_ray_client(backend):
        server_code = """import time
    import ray.util.client.server.server as ray_client_server
    
    server = ray_client_server.init_and_serve("{address}", num_cpus=20)
    print("OK", flush=True)
    while True:
        time.sleep(1)
    """
    
        address = "127.0.0.1:50051"
    
        with tempfile.NamedTemporaryFile(mode="w", suffix=".py") as f:
            f.write(server_code.format(address=address))
            f.flush()
    
            proc = subprocess.Popen([sys.executable, "-u", f.name], stdout=subprocess.PIPE)
    
            try:
    
                def _check_ready(expect_exit=False):
                    while True:
                        line = proc.stdout.readline()
                        if proc.returncode is not None:
                            if expect_exit:
                                break
                            raise Exception(
                                f"Failed to start ray server at {address}, "
                                f"the return code is {proc.returncode}."
                            )
                        if b"OK" in line:
                            break
    
                # Avoid ray.init timeout.
                _check_ready()
    
                # Avoid blocking the subprocess when the stdout pipe is full.
                t = threading.Thread(target=_check_ready, args=(True,), daemon=True)
                t.start()
                try:
                    import ray
    
                    ray.client(address).connect()  # Ray 1.4
                except Exception:
                    try:
                        from ray.util.client import ray
    
                        ray.connect(address)  # Ray 1.2
                    except Exception:
                        import ray
    
                        ray.init(f"ray://{address}")  # Ray latest
                ray._inside_client_test = True
                try:
>                   new_ray_session_test(backend=backend)

mars/deploy/oscar/tests/test_ray_client.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
mars/deploy/oscar/tests/test_ray_cluster_standalone.py:76: in new_ray_session_test
    ds.filter(lambda row: row["a"] > 0.5).show(5)
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset.py:2295: in show
    for row in self.take(limit):
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset.py:2251: in take
    for row in self.iter_rows():
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset_iterator.py:232: in iter_rows
    for batch in self.iter_batches(**iter_batch_args):
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset_iterator.py:185: in iter_batches
    yield from iter_batches(
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:179: in iter_batches
    next_batch = next(async_batch_iter)
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:268: in make_async_gen
    raise next_item
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:249: in execute_computation
    for item in fn(thread_safe_generator):
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:170: in _async_iter_batches
    yield from extract_data_from_batch(batch_iter)
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:193: in extract_data_from_batch
    for batch in batch_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:307: in restore_original_order
    for batch in batch_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:221: in threadpool_computations
    yield from formatted_batch_iter
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:167: in format_batches
    for batch in block_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:126: in blocks_to_batches
    for block in block_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:64: in resolve_block_refs
    current_hit, current_miss, current_unknown = _calculate_ref_hits([block_ref])
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:41: in _calculate_ref_hits
    locs = ray.experimental.get_object_locations(refs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

obj_refs = [ClientObjectRef(eab74631758179e9ffffffffffffffffffffffff0100000003000000)]
timeout_ms = -1

    def get_object_locations(
        obj_refs: List[ObjectRef], timeout_ms: int = -1
    ) -> Dict[ObjectRef, Dict[str, Any]]:
        """Lookup the locations for a list of objects.
    
        It returns a dict maps from an object to its location. The dict excludes
        those objects whose location lookup failed.
    
        Args:
            object_refs (List[ObjectRef]): List of object refs.
            timeout_ms: The maximum amount of time in micro seconds to wait
                before returning. Wait infinitely if it's negative.
    
        Returns:
            A dict maps from an object to its location. The dict excludes those
            objects whose location lookup failed.
    
            The location is stored as a dict with following attributes:
    
            - node_ids (List[str]): The hex IDs of the nodes that have a
              copy of this object.
    
            - object_size (int): The size of data + metadata in bytes.
    
        Raises:
            RuntimeError: if the processes were not started by ray.init().
            ray.exceptions.GetTimeoutError: if it couldn't finish the
                request in time.
        """
        if not ray.is_initialized():
            raise RuntimeError("Ray hasn't been initialized.")
>       return ray._private.worker.global_worker.core_worker.get_object_locations(
            obj_refs, timeout_ms
        )
E       AttributeError: 'Worker' object has no attribute 'core_worker'

../../../miniconda/envs/test/lib/python3.8/site-packages/ray/experimental/locations.py:38: AttributeError
_____________________________ test_ray_client[ray] _____________________________

backend = 'ray'

    @require_ray
    @pytest.mark.parametrize(
        "backend",
        [
            "mars",
            "ray",
        ],
    )
    def test_ray_client(backend):
        server_code = """import time
    import ray.util.client.server.server as ray_client_server
    
    server = ray_client_server.init_and_serve("{address}", num_cpus=20)
    print("OK", flush=True)
    while True:
        time.sleep(1)
    """
    
        address = "127.0.0.1:50051"
    
        with tempfile.NamedTemporaryFile(mode="w", suffix=".py") as f:
            f.write(server_code.format(address=address))
            f.flush()
    
            proc = subprocess.Popen([sys.executable, "-u", f.name], stdout=subprocess.PIPE)
    
            try:
    
                def _check_ready(expect_exit=False):
                    while True:
                        line = proc.stdout.readline()
                        if proc.returncode is not None:
                            if expect_exit:
                                break
                            raise Exception(
                                f"Failed to start ray server at {address}, "
                                f"the return code is {proc.returncode}."
                            )
                        if b"OK" in line:
                            break
    
                # Avoid ray.init timeout.
                _check_ready()
    
                # Avoid blocking the subprocess when the stdout pipe is full.
                t = threading.Thread(target=_check_ready, args=(True,), daemon=True)
                t.start()
                try:
                    import ray
    
                    ray.client(address).connect()  # Ray 1.4
                except Exception:
                    try:
                        from ray.util.client import ray
    
                        ray.connect(address)  # Ray 1.2
                    except Exception:
                        import ray
    
                        ray.init(f"ray://{address}")  # Ray latest
                ray._inside_client_test = True
                try:
>                   new_ray_session_test(backend=backend)

mars/deploy/oscar/tests/test_ray_client.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
mars/deploy/oscar/tests/test_ray_cluster_standalone.py:76: in new_ray_session_test
    ds.filter(lambda row: row["a"] > 0.5).show(5)
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset.py:2295: in show
    for row in self.take(limit):
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset.py:2251: in take
    for row in self.iter_rows():
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset_iterator.py:232: in iter_rows
    for batch in self.iter_batches(**iter_batch_args):
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/dataset_iterator.py:185: in iter_batches
    yield from iter_batches(
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:179: in iter_batches
    next_batch = next(async_batch_iter)
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:268: in make_async_gen
    raise next_item
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:249: in execute_computation
    for item in fn(thread_safe_generator):
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:170: in _async_iter_batches
    yield from extract_data_from_batch(batch_iter)
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:193: in extract_data_from_batch
    for batch in batch_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:307: in restore_original_order
    for batch in batch_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/iter_batches.py:221: in threadpool_computations
    yield from formatted_batch_iter
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:167: in format_batches
    for batch in block_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:126: in blocks_to_batches
    for block in block_iter:
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:64: in resolve_block_refs
    current_hit, current_miss, current_unknown = _calculate_ref_hits([block_ref])
../../../miniconda/envs/test/lib/python3.8/site-packages/ray/data/_internal/block_batching/util.py:41: in _calculate_ref_hits
    locs = ray.experimental.get_object_locations(refs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

obj_refs = [ClientObjectRef(8c1a916673689fefffffffffffffffffffffffff0100000003000000)]
timeout_ms = -1

    def get_object_locations(
        obj_refs: List[ObjectRef], timeout_ms: int = -1
    ) -> Dict[ObjectRef, Dict[str, Any]]:
        """Lookup the locations for a list of objects.
    
        It returns a dict maps from an object to its location. The dict excludes
        those objects whose location lookup failed.
    
        Args:
            object_refs (List[ObjectRef]): List of object refs.
            timeout_ms: The maximum amount of time in micro seconds to wait
                before returning. Wait infinitely if it's negative.
    
        Returns:
            A dict maps from an object to its location. The dict excludes those
            objects whose location lookup failed.
    
            The location is stored as a dict with following attributes:
    
            - node_ids (List[str]): The hex IDs of the nodes that have a
              copy of this object.
    
            - object_size (int): The size of data + metadata in bytes.
    
        Raises:
            RuntimeError: if the processes were not started by ray.init().
            ray.exceptions.GetTimeoutError: if it couldn't finish the
                request in time.
        """
        if not ray.is_initialized():
            raise RuntimeError("Ray hasn't been initialized.")
>       return ray._private.worker.global_worker.core_worker.get_object_locations(
            obj_refs, timeout_ms
        )
E       AttributeError: 'Worker' object has no attribute 'core_worker'

../../../miniconda/envs/test/lib/python3.8/site-packages/ray/experimental/locations.py:38: AttributeError
=============================== warnings summary ===============================
../../../miniconda/envs/test/lib/python3.8/site-packages/coverage/inorout.py:460
  /home/runner/miniconda/envs/test/lib/python3.8/site-packages/coverage/inorout.py:460: CoverageWarning: --include is ignored because --source is set (include-ignored)
    self.warn("--include is ignored because --source is set", slug="include-ignored")

../../../miniconda/envs/test/lib/python3.8/site-packages/pkg_resources/__init__.py:121
  /home/runner/miniconda/envs/test/lib/python3.8/site-packages/pkg_resources/__init__.py:121: DeprecationWarning: pkg_resources is deprecated as an API
    warnings.warn("pkg_resources is deprecated as an API", DeprecationWarning)

../../../miniconda/envs/test/lib/python3.8/site-packages/pkg_resources/__init__.py:[2870](https://github.com/mars-project/mars/actions/runs/4826746350/jobs/8599779103?pr=3344#step:6:2871)
  /home/runner/miniconda/envs/test/lib/python3.8/site-packages/pkg_resources/__init__.py:2870: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`.
  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
    declare_namespace(pkg)

mars/deploy/oscar/tests/test_ray_client.py::test_ray_client[mars]
mars/deploy/oscar/tests/test_ray_client.py::test_ray_client[ray]
  /home/runner/work/mars/mars/mars/deploy/oscar/tests/test_ray_client.py:79: DeprecationWarning: Starting a connection through `ray.client` will be deprecated in future ray versions in favor of `ray.init`. See the docs for more details: https://docs.ray.io/en/latest/cluster/running-applications/job-submission/ray-client.html. You can replace your call to `ray.client().connect()` with the following:
        ray.init("ray://127.0.0.1:50051")
  
    ray.client(address).connect()  # Ray 1.4

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================== slowest durations ===============================
34.81s call     mars/deploy/oscar/tests/test_ray_client.py::test_ray_client[mars]
16.90s call     mars/deploy/oscar/tests/test_ray_client.py::test_ray_client[ray]

(4 durations < 0.005s hidden.  Use -vv to show these durations.)
=========================== short test summary info ============================
FAILED mars/deploy/oscar/tests/test_ray_client.py::test_ray_client[mars] - AttributeError: 'Worker' object has no attribute 'core_worker'
FAILED mars/deploy/oscar/tests/test_ray_client.py::test_ray_client[ray] - AttributeError: 'Worker' object has no attribute 'core_worker'
```

7. Minimized code to reproduce the error.
    Just run `pytest -s -v mars/deploy/oscar/tests/test_ray_client.py::test_ray_client`.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Additional context**
Add any other context about the problem here.



Discussion:

Resolving patch:
diff --git a/mars/services/storage/api/oscar.py b/mars/services/storage/api/oscar.py
--- a/mars/services/storage/api/oscar.py
+++ b/mars/services/storage/api/oscar.py
@@ -330,21 +330,7 @@ async def create(
 
         storage_configs = kwargs.get("storage_configs")
         if not storage_configs:
-            if sys.platform == "darwin":
-                plasma_dir = "/tmp"
-            else:
-                plasma_dir = "/dev/shm"
-            plasma_setup_params = dict(
-                store_memory=10 * 1024 * 1024,
-                plasma_directory=plasma_dir,
-                check_dir_size=False,
-            )
-            if _is_windows:
-                storage_configs = {"shared_memory": {}}
-            else:
-                storage_configs = {
-                    "plasma": plasma_setup_params,
-                }
+            storage_configs = {"shared_memory": {}}
 
         storage_handler_cls = kwargs.pop("storage_handler_cls", StorageHandlerActor)
         await mo.create_actor(
diff --git a/mars/storage/plasma.py b/mars/storage/plasma.py
--- a/mars/storage/plasma.py
+++ b/mars/storage/plasma.py
@@ -31,7 +31,7 @@
 from .errors import DataNotExist
 
 plasma = lazy_import("pyarrow.plasma", rename="plasma")
-if sys.platform.startswith("win"):
+if sys.platform.startswith("win") or pa.__version__ >= "12.0.0":
     plasma = None
 
 PAGE_SIZE = 64 * 1024
diff --git a/mars/storage/shared_memory.py b/mars/storage/shared_memory.py
--- a/mars/storage/shared_memory.py
+++ b/mars/storage/shared_memory.py
@@ -186,6 +186,9 @@ async def delete(self, object_id):
             if sys.platform == "win32":
                 # skip file not found error for windows
                 pass
+            elif sys.version_info[:2] < (3, 8):  # pragma: no cover
+                # skip file not found error in python 3.7.x or below
+                pass
             else:  # pragma: no cover
                 raise
         try:


Test patch:
diff --git a/mars/deploy/oscar/tests/fault_injection_config_with_rerun.yml b/mars/deploy/oscar/tests/fault_injection_config_with_rerun.yml
--- a/mars/deploy/oscar/tests/fault_injection_config_with_rerun.yml
+++ b/mars/deploy/oscar/tests/fault_injection_config_with_rerun.yml
@@ -4,6 +4,3 @@ third_party_modules:
 scheduling:
   subtask_max_retries: 2
   subtask_max_reschedules: 2
-storage:
-  # shared-memory38 may lose object if the process crash after put success.
-  backends: [plasma]
diff --git a/mars/deploy/oscar/tests/test_fault_injection.py b/mars/deploy/oscar/tests/test_fault_injection.py
--- a/mars/deploy/oscar/tests/test_fault_injection.py
+++ b/mars/deploy/oscar/tests/test_fault_injection.py
@@ -13,6 +13,8 @@
 # limitations under the License.
 
 import os
+import sys
+
 import pytest
 import traceback
 import numpy as np
@@ -197,6 +199,10 @@ async def test_rerun_subtask(fault_cluster, fault_config):
         await info
 
 
+@pytest.mark.skipif(
+    sys.version_info[:2] < (3, 8),
+    reason="Skip due to the incompatibilities of shared memory.",
+)
 @pytest.mark.parametrize(
     "fault_cluster", [{"config": RERUN_SUBTASK_CONFIG_FILE}], indirect=True
 )
diff --git a/mars/deploy/oscar/tests/test_local.py b/mars/deploy/oscar/tests/test_local.py
--- a/mars/deploy/oscar/tests/test_local.py
+++ b/mars/deploy/oscar/tests/test_local.py
@@ -1059,8 +1059,6 @@ async def speculative_cluster():
     config["scheduling"]["speculation"]["max_concurrent_run"] = 10
     config["scheduling"]["subtask_cancel_timeout"] = 0.1
     config["scheduling"]["enable_kill_slot"] = True
-    config["storage"]["backends"] = ["plasma"]
-    config["storage"]["plasma"]["store_memory"] = 10 * 1024 * 1024
     client = await new_cluster(
         config=config,
         n_worker=5,
diff --git a/mars/deploy/oscar/tests/test_ray_dag_failover.py b/mars/deploy/oscar/tests/test_ray_dag_failover.py
--- a/mars/deploy/oscar/tests/test_ray_dag_failover.py
+++ b/mars/deploy/oscar/tests/test_ray_dag_failover.py
@@ -47,8 +47,6 @@ def test_basic_object_reconstruction(
     ray_large_cluster, reconstruction_enabled, stop_mars
 ):
     config = {
-        "num_heartbeats_timeout": 10,
-        "raylet_heartbeat_period_milliseconds": 200,
         "object_timeout_milliseconds": 200,
     }
     # Workaround to reset the config to the default value.
diff --git a/mars/services/storage/tests/test_api.py b/mars/services/storage/tests/test_api.py
--- a/mars/services/storage/tests/test_api.py
+++ b/mars/services/storage/tests/test_api.py
@@ -17,6 +17,7 @@
 
 import numpy as np
 import pandas as pd
+import pyarrow as pa
 import pytest
 
 from .... import oscar as mo
@@ -47,7 +48,7 @@
 plasma_setup_params = dict(
     store_memory=plasma_storage_size, plasma_directory=plasma_dir, check_dir_size=False
 )
-if not sys.platform.lower().startswith("win"):
+if not (sys.platform.lower().startswith("win") or pa.__version__ >= "12.0.0"):
     storage_configs.append({"plasma": plasma_setup_params})
 
 # ray backend
diff --git a/mars/services/storage/tests/test_service.py b/mars/services/storage/tests/test_service.py
--- a/mars/services/storage/tests/test_service.py
+++ b/mars/services/storage/tests/test_service.py
@@ -59,19 +59,10 @@ async def start_pool():
 async def test_storage_service(actor_pools):
     worker_pool = actor_pools
 
-    if sys.platform == "darwin":
-        plasma_dir = "/tmp"
-    else:
-        plasma_dir = "/dev/shm"
-    plasma_setup_params = dict(
-        store_memory=10 * 1024 * 1024, plasma_directory=plasma_dir, check_dir_size=False
-    )
-
     config = {
         "services": ["storage"],
         "storage": {
-            "backends": ["plasma" if not _is_windows else "shared_memory"],
-            "plasma": plasma_setup_params,
+            "backends": ["shared_memory"],
         },
     }
 
@@ -155,19 +146,11 @@ async def test_storage_service_with_cuda(actor_pools_with_gpu):
 
     worker_pool = actor_pools_with_gpu
 
-    if sys.platform == "darwin":
-        plasma_dir = "/tmp"
-    else:
-        plasma_dir = "/dev/shm"
-    plasma_setup_params = dict(
-        store_memory=10 * 1024 * 1024, plasma_directory=plasma_dir, check_dir_size=False
-    )
-
     config = {
         "services": ["storage"],
         "storage": {
-            "backends": ["plasma" if not _is_windows else "shared_memory", "cuda"],
-            "plasma": plasma_setup_params,
+            "backends": ["shared_memory", "cuda"],
+            "shared_memory": dict(),
             "cuda": dict(),
         },
     }
diff --git a/mars/services/storage/tests/test_spill.py b/mars/services/storage/tests/test_spill.py
--- a/mars/services/storage/tests/test_spill.py
+++ b/mars/services/storage/tests/test_spill.py
@@ -18,6 +18,7 @@
 import tempfile
 
 import numpy as np
+import pyarrow
 import pytest
 
 from .... import oscar as mo
@@ -88,6 +89,12 @@ async def create_actors(actor_pool):
     await mo.destroy_actor(manager_ref)
 
 
+@pytest.fixture(autouse=True)
+async def skip_wihtout_plasma():
+    if pyarrow.__version__ >= "12.0.0":
+        pytest.skip("Pyarrow.Plasma is deprecated since v12.0.0")
+
+
 @pytest.mark.asyncio
 async def test_spill(create_actors):
     worker_address, _, _ = create_actors
diff --git a/mars/services/storage/tests/test_transfer.py b/mars/services/storage/tests/test_transfer.py
--- a/mars/services/storage/tests/test_transfer.py
+++ b/mars/services/storage/tests/test_transfer.py
@@ -62,16 +62,7 @@ async def start_pool():
 async def create_actors(actor_pools):
     worker_pool_1, worker_pool_2 = actor_pools
 
-    if sys.platform == "darwin":
-        plasma_dir = "/tmp"
-    else:
-        plasma_dir = "/dev/shm"
-    plasma_setup_params = dict(
-        store_memory=5 * 1024 * 1024, plasma_directory=plasma_dir, check_dir_size=False
-    )
-    storage_configs = (
-        {"plasma": plasma_setup_params} if not _is_windows else {"shared_memory": {}}
-    )
+    storage_configs = {"shared_memory": {}}
 
     manager_ref1 = await mo.create_actor(
         StorageManagerActor,