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: ghcr.io/englishm/moq-interop-runner-quiche-moq-relay:latest Client: ghcr.io/gmarzot/aiomoqt:latest URL: https://relay:4443 time="2026-05-19T01:49:49Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-05-19T01:49:49Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-05-19T01:49:49Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-05-19T01:49:49Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." time="2026-05-19T01:49:49Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." Container main-relay-1 Recreate Container main-relay-1 Recreated Attaching to relay-1, test-client-1 relay-1 | Starting quiche-moq relay on port 4443 relay-1 | Cert: /certs/cert.pem relay-1 | Key: /certs/priv.key test-client-1 | 2026-05-19 01:49:55.563 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') test-client-1 | 2026-05-19 01:49:55.564 ERROR: handle_control_message: traceback: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | ERROR asyncio: Exception in callback _Dispatcher._drain() test-client-1 | handle: test-client-1 | Traceback (most recent call last): test-client-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run test-client-1 | self._context.run(self._callback, *self._args) test-client-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 440, in _drain test-client-1 | session._on_event(ev) test-client-1 | File "/app/aiomoqt/protocol.py", line 2340, in _on_event test-client-1 | self.quic_event_received(_SD(stream_id=sid, data=data, test-client-1 | File "/app/aiomoqt/protocol.py", line 997, in quic_event_received test-client-1 | msg = self._moqt_handle_control_message(msg_buf) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | [FAIL] setup-only: Failed: test-client-1 | 2026-05-19 01:49:57.562 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') test-client-1 | 2026-05-19 01:49:57.563 ERROR: handle_control_message: traceback: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | ERROR asyncio: Exception in callback _Dispatcher._drain() test-client-1 | handle: test-client-1 | Traceback (most recent call last): test-client-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run test-client-1 | self._context.run(self._callback, *self._args) test-client-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 440, in _drain test-client-1 | session._on_event(ev) test-client-1 | File "/app/aiomoqt/protocol.py", line 2340, in _on_event test-client-1 | self.quic_event_received(_SD(stream_id=sid, data=data, test-client-1 | File "/app/aiomoqt/protocol.py", line 997, in quic_event_received test-client-1 | msg = self._moqt_handle_control_message(msg_buf) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | [FAIL] announce-only: Failed: test-client-1 | 2026-05-19 01:49:59.564 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') test-client-1 | 2026-05-19 01:49:59.565 ERROR: handle_control_message: traceback: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | ERROR asyncio: Exception in callback _Dispatcher._drain() test-client-1 | handle: test-client-1 | Traceback (most recent call last): test-client-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run test-client-1 | self._context.run(self._callback, *self._args) test-client-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 440, in _drain test-client-1 | session._on_event(ev) test-client-1 | File "/app/aiomoqt/protocol.py", line 2340, in _on_event test-client-1 | self.quic_event_received(_SD(stream_id=sid, data=data, test-client-1 | File "/app/aiomoqt/protocol.py", line 997, in quic_event_received test-client-1 | msg = self._moqt_handle_control_message(msg_buf) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | [FAIL] publish-namespace-done: Failed: test-client-1 | 2026-05-19 01:50:01.566 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') test-client-1 | 2026-05-19 01:50:01.567 ERROR: handle_control_message: traceback: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | ERROR asyncio: Exception in callback _Dispatcher._drain() test-client-1 | handle: test-client-1 | Traceback (most recent call last): test-client-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run test-client-1 | self._context.run(self._callback, *self._args) test-client-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 440, in _drain test-client-1 | session._on_event(ev) test-client-1 | File "/app/aiomoqt/protocol.py", line 2340, in _on_event test-client-1 | self.quic_event_received(_SD(stream_id=sid, data=data, test-client-1 | File "/app/aiomoqt/protocol.py", line 997, in quic_event_received test-client-1 | msg = self._moqt_handle_control_message(msg_buf) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | [FAIL] subscribe-error: Failed: test-client-1 | 2026-05-19 01:50:03.567 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') test-client-1 | 2026-05-19 01:50:03.568 ERROR: handle_control_message: traceback: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | ERROR asyncio: Exception in callback _Dispatcher._drain() test-client-1 | handle: test-client-1 | Traceback (most recent call last): test-client-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run test-client-1 | self._context.run(self._callback, *self._args) test-client-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 440, in _drain test-client-1 | session._on_event(ev) test-client-1 | File "/app/aiomoqt/protocol.py", line 2340, in _on_event test-client-1 | self.quic_event_received(_SD(stream_id=sid, data=data, test-client-1 | File "/app/aiomoqt/protocol.py", line 997, in quic_event_received test-client-1 | msg = self._moqt_handle_control_message(msg_buf) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | [FAIL] announce-subscribe: Failed: test-client-1 | 2026-05-19 01:50:06.571 ERROR: handle_control_message: error handling control message: BufferReadError: BufferReadError('read out of bounds') test-client-1 | 2026-05-19 01:50:06.571 ERROR: handle_control_message: traceback: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | ERROR asyncio: Exception in callback _Dispatcher._drain() test-client-1 | handle: test-client-1 | Traceback (most recent call last): test-client-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run test-client-1 | self._context.run(self._callback, *self._args) test-client-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 440, in _drain test-client-1 | session._on_event(ev) test-client-1 | File "/app/aiomoqt/protocol.py", line 2340, in _on_event test-client-1 | self.quic_event_received(_SD(stream_id=sid, data=data, test-client-1 | File "/app/aiomoqt/protocol.py", line 997, in quic_event_received test-client-1 | msg = self._moqt_handle_control_message(msg_buf) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/protocol.py", line 407, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/session_setup.py", line 48, in deserialize test-client-1 | params = MOQTMessage._deserialize_params(buf, test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 427, in _deserialize_params test-client-1 | param_value = buf.pull_bytes(param_len) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 204, in aiopquic._binding._buffer.Buffer.pull_bytes test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | [FAIL] subscribe-before-announce: Failed: test-client-1 | Received a connection close request test-client-1 | Received a connection close request test-client-1 | Received a connection close request test-client-1 | Received a connection close request test-client-1 | Received a connection close request test-client-1 | Received a connection close request test-client-1 | TAP version 14 test-client-1 | 1..6 test-client-1 | not ok 1 - setup-only test-client-1 | --- test-client-1 | duration_ms: 2003.1 test-client-1 | message: Failed: test-client-1 | expected: SERVER_SETUP received test-client-1 | ... test-client-1 | not ok 2 - announce-only test-client-1 | --- test-client-1 | duration_ms: 2002.7 test-client-1 | message: Failed: test-client-1 | expected: PUBLISH_NAMESPACE_OK test-client-1 | ... test-client-1 | not ok 3 - publish-namespace-done test-client-1 | --- test-client-1 | duration_ms: 2001.4 test-client-1 | message: Failed: test-client-1 | expected: PUBLISH_NAMESPACE_OK + PUBLISH_NAMESPACE_DONE test-client-1 | ... test-client-1 | not ok 4 - subscribe-error test-client-1 | --- test-client-1 | duration_ms: 2001.0 test-client-1 | message: Failed: test-client-1 | expected: error response test-client-1 | ... test-client-1 | not ok 5 - announce-subscribe test-client-1 | --- test-client-1 | duration_ms: 3003.5 test-client-1 | publisher_connection_id: unknown test-client-1 | subscriber_connection_id: unknown test-client-1 | message: Failed: test-client-1 | ... test-client-1 | not ok 6 - subscribe-before-announce test-client-1 | --- test-client-1 | duration_ms: 3504.9 test-client-1 | publisher_connection_id: unknown test-client-1 | subscriber_connection_id: unknown test-client-1 | message: Failed: 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:85: test] Error 1 make[1]: Leaving directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main'