make[1]: Entering directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main' rm -rf mlog/ mkdir -p mlog/relay mlog/client Running interop tests... Relay: aiomoqt-interop-relay:latest Client: ghcr.io/openmoq/moqx-interop-client:latest URL: https://relay:4443 time="2026-09-15T01:02:33Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-09-15T01:02:33Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-09-15T01:02:33Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-09-15T01:02:33Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." time="2026-09-15T01:02:33Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." Container main-relay-1 Recreate Container main-relay-1 Recreated Container main-test-client-1 Recreate Container main-test-client-1 Recreated Attaching to relay-1, test-client-1 relay-1 | 2026-09-15 01:02:33.698 INFO : Starting MOQT server on 0.0.0.0:4443 relay-1 | ================================================================ relay-1 | EXPERIMENTAL aiomoqt interop relay — control-plane only. relay-1 | NOT a production relay: no data forwarding, no auth, relay-1 | no scale handling. Use moxygen / moq-rs for real workloads. relay-1 | ================================================================ relay-1 | Listening on 0.0.0.0:4443 (H3/WebTransport, draft-[16, 18, 14]) test-client-1 | TAP version 14 test-client-1 | # moxygen interop test client test-client-1 | # Relay: https://relay:4443 test-client-1 | # Transport: WebTransport test-client-1 | # Offered ALPNs: moqt-18, moqt-16, moqt-15, moq-00 test-client-1 | 1..6 relay-1 | 2026-09-15 01:02:39.082 INFO : MOQT event: control message parsed: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'})) relay-1 | 2026-09-15 01:02:39.082 INFO : MOQT event: handle d18 Setup: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'}) relay-1 | 2026-09-15 01:02:39.082 INFO : MOQT: d18 server control write-uni: 15 test-client-1 | E20260915 01:02:39.082294 1 HQSession.cpp:1849] Got flow control update for unknown streamID=14 sess=0x55fcafab6710 test-client-1 | ok 1 - setup-only test-client-1 | --- test-client-1 | duration_ms: 6 test-client-1 | negotiated_version: draft-18 test-client-1 | info: SETUP exchange completed successfully test-client-1 | ... relay-1 | 2026-09-15 01:02:39.085 INFO : MOQT event: control message parsed: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'})) test-client-1 | E20260915 01:02:39.085891 1 HQSession.cpp:1849] Got flow control update for unknown streamID=14 sess=0x55fcafb32c80 relay-1 | 2026-09-15 01:02:39.085 INFO : MOQT event: handle d18 Setup: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'}) relay-1 | 2026-09-15 01:02:39.086 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-09-15 01:02:39.086 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-test"], parameters={})) test-client-1 | E20260915 01:02:39.086576 1 HQSession.cpp:1849] Got flow control update for unknown streamID=4 sess=0x55fcafb32c80 relay-1 | 2026-09-15 01:02:39.086 INFO : relay: announce ns=(b'moq-test',) -> count=1 relay-1 | 2026-09-15 01:02:39.086 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-test',) relay-1 | 2026-09-15 01:02:39.086 INFO : Serialized 0 parameters: b'\x00\xd2\x97\x9e\xfc~\x00\x00\x10\xd2\x97\x9e' test-client-1 | E0915 01:02:39.087119 1 MoQCodec.cpp:126] Conn error=3 test-client-1 | E0915 01:02:39.087140 1 MoQSession.cpp:5836] MoQCodec control stream parse error err=3 test-client-1 | not ok 2 - announce-only test-client-1 | --- test-client-1 | duration_ms: 3 test-client-1 | negotiated_version: draft-18 test-client-1 | error: Session closed test-client-1 | ... test-client-1 | E20260915 01:02:39.089352 1 HQSession.cpp:1849] Got flow control update for unknown streamID=14 sess=0x55fcafb43ae0 relay-1 | 2026-09-15 01:02:39.089 INFO : MOQT event: control message parsed: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'})) relay-1 | 2026-09-15 01:02:39.089 INFO : MOQT event: handle d18 Setup: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'}) relay-1 | 2026-09-15 01:02:39.089 INFO : MOQT: d18 server control write-uni: 15 test-client-1 | E20260915 01:02:39.090075 1 HQSession.cpp:1849] Got flow control update for unknown streamID=4 sess=0x55fcafb43ae0 relay-1 | 2026-09-15 01:02:39.090 INFO : deserializing param 33 length 2 relay-1 | 2026-09-15 01:02:39.090 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') relay-1 | 2026-09-15 01:02:39.091 ERROR: handle_control_message: traceback: relay-1 | Traceback (most recent call last): relay-1 | File "/app/aiomoqt/protocol.py", line 544, in _moqt_handle_control_message relay-1 | msg = message_class.deserialize(buf, prof=self._profile, buf_end=end_pos) relay-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ relay-1 | File "/app/aiomoqt/messages/subscribe.py", line 365, in deserialize relay-1 | filter_type = fbuf.pull_vint() relay-1 | ^^^^^^^^^^^^^^^^ relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 236, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 242, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 187, in aiopquic._binding._buffer.Buffer.pull_uint_var relay-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds relay-1 | relay-1 | 2026-09-15 01:02:39,091 ERROR asyncio: Exception in callback _Dispatcher._drain() relay-1 | handle: relay-1 | Traceback (most recent call last): relay-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run relay-1 | self._context.run(self._callback, *self._args) relay-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 840, in _drain relay-1 | session._on_event(ev) relay-1 | File "/app/aiomoqt/protocol.py", line 2866, in _on_event relay-1 | self.quic_event_received(StreamDataReceived( relay-1 | File "/app/aiomoqt/protocol.py", line 1271, in quic_event_received relay-1 | self._handle_bidi_stream(stream_id, msg_buf, msg_len) relay-1 | File "/app/aiomoqt/protocol.py", line 1736, in _handle_bidi_stream relay-1 | msg = self._moqt_handle_control_message(buf) relay-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ relay-1 | File "/app/aiomoqt/protocol.py", line 544, in _moqt_handle_control_message relay-1 | msg = message_class.deserialize(buf, prof=self._profile, buf_end=end_pos) relay-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ relay-1 | File "/app/aiomoqt/messages/subscribe.py", line 365, in deserialize relay-1 | filter_type = fbuf.pull_vint() relay-1 | ^^^^^^^^^^^^^^^^ relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 236, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 242, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 187, in aiopquic._binding._buffer.Buffer.pull_uint_var relay-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | E0915 01:02:41.090121 1 MoQSession.cpp:6154] subscribeFuture exception=folly::OperationCancelled: coroutine operation cancelled test-client-1 | not ok 3 - subscribe-error test-client-1 | --- test-client-1 | duration_ms: 2002 test-client-1 | negotiated_version: draft-18 test-client-1 | error: Timed out waiting for SUBSCRIBE response test-client-1 | ... test-client-1 | E20260915 01:02:41.093317 1 HQSession.cpp:1849] Got flow control update for unknown streamID=14 sess=0x55fcafb3c630 relay-1 | 2026-09-15 01:02:41.093 INFO : MOQT event: control message parsed: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'})) relay-1 | 2026-09-15 01:02:41.093 INFO : MOQT event: handle d18 Setup: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'}) relay-1 | 2026-09-15 01:02:41.093 INFO : MOQT: d18 server control write-uni: 15 test-client-1 | E20260915 01:02:41.094657 1 HQSession.cpp:1849] Got flow control update for unknown streamID=4 sess=0x55fcafb3c630 relay-1 | 2026-09-15 01:02:41.094 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-interop-test"], parameters={})) relay-1 | 2026-09-15 01:02:41.094 INFO : relay: announce ns=(b'moq-interop-test',) -> count=1 relay-1 | 2026-09-15 01:02:41.094 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-interop-test',) relay-1 | 2026-09-15 01:02:41.094 INFO : Serialized 0 parameters: b'\x00\xd1\x97\x9e\xfc~\x00\x00\x80u\xc9\r' test-client-1 | E0915 01:02:41.095142 1 MoQCodec.cpp:126] Conn error=3 test-client-1 | E0915 01:02:41.095188 1 MoQSession.cpp:5836] MoQCodec control stream parse error err=3 test-client-1 | not ok 4 - announce-subscribe test-client-1 | --- test-client-1 | duration_ms: 4 test-client-1 | negotiated_version: draft-18 test-client-1 | error: PUBLISH_NAMESPACE failed: Session closed test-client-1 | ... relay-1 | 2026-09-15 01:02:41.097 INFO : MOQT event: control message parsed: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'})) test-client-1 | E20260915 01:02:41.097375 1 HQSession.cpp:1849] Got flow control update for unknown streamID=14 sess=0x55fcafb3c630 relay-1 | 2026-09-15 01:02:41.097 INFO : MOQT event: handle d18 Setup: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'}) relay-1 | 2026-09-15 01:02:41.097 INFO : MOQT: d18 server control write-uni: 15 test-client-1 | E20260915 01:02:41.098241 1 HQSession.cpp:1849] Got flow control update for unknown streamID=4 sess=0x55fcafb3c630 relay-1 | 2026-09-15 01:02:41.098 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-test", "interop"], parameters={})) relay-1 | 2026-09-15 01:02:41.098 INFO : relay: announce ns=(b'moq-test', b'interop') -> count=1 relay-1 | 2026-09-15 01:02:41.098 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-test', b'interop') relay-1 | 2026-09-15 01:02:41.098 INFO : Serialized 0 parameters: b'\x00\xd1\x97\x9e\xfc~\x00\x00@\xd1\x97\x9e' test-client-1 | E0915 01:02:41.098747 1 MoQCodec.cpp:126] Conn error=3 test-client-1 | E0915 01:02:41.098760 1 MoQSession.cpp:5836] MoQCodec control stream parse error err=3 test-client-1 | not ok 5 - publish-namespace-done test-client-1 | --- test-client-1 | duration_ms: 3 test-client-1 | negotiated_version: draft-18 test-client-1 | error: PUBLISH_NAMESPACE failed: Session closed test-client-1 | ... test-client-1 | E20260915 01:02:41.100986 1 HQSession.cpp:1849] Got flow control update for unknown streamID=14 sess=0x55fcafb23d20 relay-1 | 2026-09-15 01:02:41.101 INFO : MOQT event: control message parsed: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'})) relay-1 | 2026-09-15 01:02:41.101 INFO : MOQT event: handle d18 Setup: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'}) relay-1 | 2026-09-15 01:02:41.101 INFO : MOQT: d18 server control write-uni: 15 test-client-1 | E20260915 01:02:41.101816 1 HQSession.cpp:1849] Got flow control update for unknown streamID=4 sess=0x55fcafb23d20 relay-1 | 2026-09-15 01:02:41.101 INFO : deserializing param 33 length 2 relay-1 | 2026-09-15 01:02:41.101 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') relay-1 | 2026-09-15 01:02:41.102 ERROR: handle_control_message: traceback: relay-1 | Traceback (most recent call last): relay-1 | File "/app/aiomoqt/protocol.py", line 544, in _moqt_handle_control_message relay-1 | msg = message_class.deserialize(buf, prof=self._profile, buf_end=end_pos) relay-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ relay-1 | File "/app/aiomoqt/messages/subscribe.py", line 365, in deserialize relay-1 | filter_type = fbuf.pull_vint() relay-1 | ^^^^^^^^^^^^^^^^ relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 236, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 242, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 187, in aiopquic._binding._buffer.Buffer.pull_uint_var relay-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds relay-1 | relay-1 | 2026-09-15 01:02:41,102 ERROR asyncio: Exception in callback _Dispatcher._drain() relay-1 | handle: relay-1 | Traceback (most recent call last): relay-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run relay-1 | self._context.run(self._callback, *self._args) relay-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 840, in _drain relay-1 | session._on_event(ev) relay-1 | File "/app/aiomoqt/protocol.py", line 2866, in _on_event relay-1 | self.quic_event_received(StreamDataReceived( relay-1 | File "/app/aiomoqt/protocol.py", line 1271, in quic_event_received relay-1 | self._handle_bidi_stream(stream_id, msg_buf, msg_len) relay-1 | File "/app/aiomoqt/protocol.py", line 1736, in _handle_bidi_stream relay-1 | msg = self._moqt_handle_control_message(buf) relay-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ relay-1 | File "/app/aiomoqt/protocol.py", line 544, in _moqt_handle_control_message relay-1 | msg = message_class.deserialize(buf, prof=self._profile, buf_end=end_pos) relay-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ relay-1 | File "/app/aiomoqt/messages/subscribe.py", line 365, in deserialize relay-1 | filter_type = fbuf.pull_vint() relay-1 | ^^^^^^^^^^^^^^^^ relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 236, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 242, in aiopquic._binding._buffer.Buffer.pull_vint relay-1 | File "src/aiopquic/_binding/_buffer.pyx", line 187, in aiopquic._binding._buffer.Buffer.pull_uint_var relay-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | E20260915 01:02:41.604444 1 HQSession.cpp:1849] Got flow control update for unknown streamID=14 sess=0x55fcafb32a20 relay-1 | 2026-09-15 01:02:41.604 INFO : MOQT event: control message parsed: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'})) relay-1 | 2026-09-15 01:02:41.604 INFO : MOQT event: handle d18 Setup: Setup(options={2: 100, 7: b'Meta MoQ C++ Draft-14'}) relay-1 | 2026-09-15 01:02:41.604 INFO : MOQT: d18 server control write-uni: 15 test-client-1 | E20260915 01:02:41.605592 1 HQSession.cpp:1849] Got flow control update for unknown streamID=4 sess=0x55fcafb32a20 relay-1 | 2026-09-15 01:02:41.605 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-test", "interop"], parameters={})) relay-1 | 2026-09-15 01:02:41.605 INFO : relay: announce ns=(b'moq-test', b'interop') -> count=2 relay-1 | 2026-09-15 01:02:41.605 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-test', b'interop') relay-1 | 2026-09-15 01:02:41.605 INFO : Serialized 0 parameters: b'\x00\xd1\x97\x9e\xfc~\x00\x00\xe0\xd1\x97\x9e' test-client-1 | E0915 01:02:41.606032 1 MoQCodec.cpp:126] Conn error=3 test-client-1 | E0915 01:02:41.606054 1 MoQSession.cpp:5836] MoQCodec control stream parse error err=3 test-client-1 | E0915 01:02:43.115341 1 MoQWebTransportClient.cpp:200] proxygen::HTTPException: ingress timeout, streamID=0, timeout=2000ms test-client-1 | not ok 6 - subscribe-before-announce test-client-1 | --- test-client-1 | duration_ms: 2016 test-client-1 | negotiated_version: draft-18 test-client-1 | error: Publisher failed: std::runtime_error: PUBLISH_NAMESPACE failed: Session closed test-client-1 | ... test-client-1 exited with code 1 Aborting on container exit... Container main-test-client-1 Stopping Container main-test-client-1 Stopped Container main-relay-1 Stopping Container main-relay-1 Stopped make[1]: *** [Makefile:86: test] Error 1 make[1]: Leaving directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main'