zenoh
zenoh copied to clipboard
Error EOF when publishing json to router
Describe the bug
I am having an error "Read error on TCP link [...] early eof at io/zenoh-links/zenoh-link-tcp/src/unicast.rs:158, and I am not sure what it can be the issue. I attach the logs and the code that publishes the json file into a router:
zenoh-router-1 | 2025-08-26T09:42:29.907653Z DEBUG acc-0 ThreadId(08) zenoh_transport::unicast::establishment::accept: New transport link accepted from ab6d4c89d18a3c1e9e44940c29bf9c86 to 3d4d10c47d56bcbf0db580111c9fed: TransportLinkUnicast { link: Link { src: tcp/[::ffff:192.168.10.10]:7447, dst: tcp/[::ffff:192.168.10.1]:41044, mtu: 65100, is_reliable: true, is_streamed: true }, config: TransportLinkUnicastConfig { direction: Inbound, batch: BatchConfig { mtu: 65100, is_streamed: true, is_compression: false }, priorities: None, reliability: None } }
zenoh-router-1 | 2025-08-26T09:42:30.399787Z DEBUG rx-1 ThreadId(11) zenoh::net::routing::dispatcher::interests: Face{7, ab6d4c89d18a3c1e9e44940c29bf9c86} Declare interest 1 (colmena_service_definitions/AgentControl)
zenoh-router-1 | 2025-08-26T09:42:32.400743Z DEBUG rx-1 ThreadId(11) zenoh_transport::unicast::universal::link: RX task failed: Read error on TCP link [::ffff:192.168.10.10]:7447 => [::ffff:192.168.10.1]:41044: early eof at io/zenoh-links/zenoh-link-tcp/src/unicast.rs:158.
zenoh-router-1 | 2025-08-26T09:42:32.401281Z DEBUG net-0 ThreadId(07) zenoh_transport::unicast::universal::transport: [3d4d10c47d56bcbf0db580111c9fed] Closing transport with peer: ab6d4c89d18a3c1e9e44940c29bf9c86
zenoh-router-1 | 2025-08-26T09:42:32.401523Z DEBUG rx-1 ThreadId(11) zenoh_transport::unicast::universal::transport: [3d4d10c47d56bcbf0db580111c9fed] Closing transport with peer: ab6d4c89d18a3c1e9e44940c29bf9c86
zenoh-router-1 | 2025-08-26T09:42:32.401701Z DEBUG net-0 ThreadId(07) zenoh::net::routing::dispatcher::face: Close Face{7, ab6d4c89d18a3c1e9e44940c29bf9c86}
def publish_service_definition(_args, service_definition: Dict[str, Any]):
service_name = service_definition["id"]["value"]
print(f"Publishing service definition for {service_name} to Zenoh")
print(json.dumps(service_definition, indent=2))
script_dir = os.path.dirname(os.path.abspath(__file__))
zenoh_config_path = os.path.join(script_dir, 'zenoh_config.json5')
with zenoh.open(zenoh.Config.from_file(zenoh_config_path)) as session:
key = f"colmena_service_definitions/{service_name}"
pub = session.declare_publisher(
key,
reliability=zenoh.Reliability.RELIABLE
)
pub.put(json.dumps(service_definition))
time.sleep(2)
To reproduce
Probably not a bug...
System info
ubuntu 20.04 amd64
Faced the same issue with version 0.11.0-rc.3 in early eof at io/zenoh-links/zenoh-link-tcp/src/unicast.rs:130. though. I guess you tested in a newer version? Otherwise I am still pending to test if this happens in other versions as well.