public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: contact@jbartunek.de
To: passt-dev@passt.top
Subject: passt crashes a) hides error b) assert tripped
Date: Sun, 08 Nov 2026 21:31:33 +0000	[thread overview]
Message-ID: <497c627fe936ed0f8c5635a2dfed1666@jbartunek.de> (raw)

Hi!

I am currently working on a project involving `crosvm`. To allow for 
rootless networking plumbing I am relying on `passt` (ver 
2026_10_02.cba3570).

I have found that prolonged (>5 seconds, max. 20 seconds) `https` 
transfers crash with `crosvm` claiming that the backend device (`passt`) 
was exiting early.

In the instant the program crashes I find this in my dmesg:
```
[Sun Nov  8 21:26:32 2026] audit: type=1326 audit(1794169582.685:13): 
auid=1005 uid=1005 gid=998 ses=1 subj=unconfined pid=15127 
comm="passt.avx2" 
exe="/gnu/store/cjdgl8d27afhnw34x2z3pwmaxa4sw4jg-passt-2026_10_02.cba3570/bin/passt.avx2" 
sig=31 arch=c000003e syscall=318 compat=0 ip=0x7f87c63b8735 
code=0x80000000
```

Debugging further my friend KI/AI, they said this expected under the 
seccomp confinement (no get_random, no brk).

Rebuilding with `EXTRA_SYSCALLS=getrandom brk`, shows:
```
60.4309: Flow 2 (TCP connection): STALLED dropped
passt.avx2: tcp_vu.c:294: tcp_vu_sock_recv: Assertion `cnt < 
ARRAY_SIZE(iov_msg) - j' failed.
Bad system call
```

The log:

```
... spamy output:
342.5609: Flow 2 (TCP connection): timer expires in 1.000s
342.5609: Flow 2 (TCP connection): STALLED
342.5612: Flow 2 (TCP connection): ACK_FROM_TAP_DUE dropped
342.5612: Flow 2 (TCP connection): STALLED dropped
342.5645: Flow 2 (TCP connection): ACK_FROM_TAP_DUE
342.5646: Flow 2 (TCP connection): timer expires in 1.000s
342.5646: Flow 2 (TCP connection): STALLED
342.5647: Flow 2 (TCP connection): ACK_FROM_TAP_DUE dropped
342.5647: Flow 2 (TCP connection): STALLED dropped
... lots more of the same spammy output...
343.0239: Flow 2 (TCP connection): timer expires in 1.000s
343.0249: Flow 2 (TCP connection): timer expires in 1.000s
343.0250: Flow 2 (TCP connection): timer expires in 1.000s
343.0252: Flow 2 (TCP connection): STALLED
343.0252: Flow 2 (TCP connection): ACK_FROM_TAP_DUE dropped
343.0252: Flow 2 (TCP connection): STALLED dropped
343.0257: Flow 2 (TCP connection): ACK_FROM_TAP_DUE
343.0257: Flow 2 (TCP connection): timer expires in 1.000s
343.0258: Flow 2 (TCP connection): STALLED
343.0259: Flow 2 (TCP connection): STALLED dropped
343.0260: Flow 2 (TCP connection): timer expires in 1.000s
343.0261: Flow 2 (TCP connection): ACK_FROM_TAP_DUE dropped
passt.avx2: tcp_vu.c:294: tcp_vu_sock_recv: Assertion `cnt < 
ARRAY_SIZE(iov_msg) - j' failed.
Bad system call
```

Working diagnosis:
1. passt's tcp_vu.c assert in tcp_vu_sock_recv() compares a signed cnt 
against a size_t capacity, so a negative error return trips the assert 
and kills passt — which crosvm then reports as the backend disconnecting 
and stops the VM — while the underlying iov_tail_clone() failure never 
gets printed;

2. seccomp profiles omit getrandom/brk/gettid, so the process dies under 
SECCOMP_RET_KILL with no message at all.

This was all I had time for today, hope this helps!

Kind regards,

John

                 reply	other threads:[~2026-11-08 21:31 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=497c627fe936ed0f8c5635a2dfed1666@jbartunek.de \
    --to=contact@jbartunek.de \
    --cc=passt-dev@passt.top \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).