passt: fix tap_passt_input's partial frame handling #14

Merged
steigr merged 1 commit from fix/passt-partial-frame into main 2026-11-03 09:15:54 +00:00
Owner

Connections through passt on the runner stalled or reset at random, and passt logged garbage guest MAC addresses (ASCII from an ssh key exchange) and repeated 'Client connection closed'. tap_passt_input() moves the incomplete frame of an earlier pass to the start of pkt_buf; if its next recv() finds nothing (EAGAIN, ordinary with edge-triggered epoll) it returns with partial_frame still pointing at the old place, and the next pass moves from there, which for a frame longer than the bytes consumed before it reads shifted data. The frames after it were read from the wrong byte. The partial count also survived a reset. patches-passt/0001 fixes both and the Dockerfile applies it to PASST_REF. It builds (arm64 Debian); the fix is untested against the running guest until this image is rolled.

🤖 Generated with Claude Code

Connections through passt on the runner stalled or reset at random, and passt logged garbage guest MAC addresses (ASCII from an ssh key exchange) and repeated 'Client connection closed'. tap_passt_input() moves the incomplete frame of an earlier pass to the start of pkt_buf; if its next recv() finds nothing (EAGAIN, ordinary with edge-triggered epoll) it returns with partial_frame still pointing at the old place, and the next pass moves from there, which for a frame longer than the bytes consumed before it reads shifted data. The frames after it were read from the wrong byte. The partial count also survived a reset. patches-passt/0001 fixes both and the Dockerfile applies it to PASST_REF. It builds (arm64 Debian); the fix is untested against the running guest until this image is rolled. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
passt: fix tap_passt_input's partial frame handling (patches-passt/)
All checks were successful
iris container image / image (push) Successful in 36s
b50494e590
Garbage station addresses and resets on the stream connection to iris, at random, under
traffic: a receive that found nothing left the partial frame to be moved from a stale offset.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
steigr merged commit b50494e590 into main 2026-11-03 09:15:54 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
irix/iris-container!14
No description provided.