diff --git a/tpu_sync/rpc/raiden_controller.py b/tpu_sync/rpc/raiden_controller.py index 4ee7210a..e2a8d645 100644 --- a/tpu_sync/rpc/raiden_controller.py +++ b/tpu_sync/rpc/raiden_controller.py @@ -352,7 +352,13 @@ def create_server_socket(port: int) -> socket.socket: """Creates an IPv6 socket (supporting IPv4 dual-stack on Linux) or falls back to IPv4.""" try: sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) - sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) + try: + sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) + except OSError: + # IPv6-only environment (e.g. TI VM under enforced isolation): the + # dual-stack toggle is refused but the v6 socket itself works. + # Keep it and listen v6-only. + pass sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(("::", port)) sock.listen(128) @@ -364,7 +370,6 @@ def create_server_socket(port: int) -> socket.socket: sock.listen(128) return sock - def connect_socket( address_str: str, timeout: float = 60.0,