[Bugfix] Preserve host transport fallback when discovery cleanup fails

Signed-off-by: Sy03 <1370724210@qq.com>
This commit is contained in:
Sy03 committed 2026-10-05 22:07:14 +08:00
1 parent 06f562cb3d
commit f3d0dbe5a8
2 files changed
+22

No files matched your search

@@ -9,6 +9,7 @@ import time
import uuid
from dataclasses import asdict
from multiprocessing import shared_memory
from pathlib import Path
import msgspec
import numpy as np
@@ -446,6 +447,21 @@ def test_ring_setup_failure_keeps_connector_usable(edge, monkeypatch):
assert receiver.get("0", "1", "no-ring-space")[0].tolist() == [0, 1, 2]
def test_discovery_stamp_failure_keeps_fallback_and_cleanup_usable(edge, monkeypatch):
sender, receiver = edge
def stamp_denied(*args, **kwargs):
raise PermissionError("directory timestamp update denied")
monkeypatch.setattr(os, "utime", stamp_denied)
ok, _, metadata = sender.put("0", "1", "no-ring-stamp", torch.arange(3))
assert ok and "shm" in metadata
assert not sender._host_ring.producers
assert not list(Path(f"/dev/shm/{sender._host_ring.directory}").iterdir())
assert receiver.get("0", "1", "no-ring-stamp")[0].tolist() == [0, 1, 2]
sender.close()
def test_close_is_idempotent_and_removes_owned_ring(edge):
sender, receiver = edge
_, _, metadata = sender.put("0", "1", "close", torch.arange(3))