Re: [PATCH net 1/2] vsock/virtio: discard packets if the transport changes
From: Michal Luczaj <hidden>
Date: 2025-01-21 18:06:52
Also in:
bpf, kvm, lkml, virtualization
From: Michal Luczaj <hidden>
Date: 2025-01-21 18:06:52
Also in:
bpf, kvm, lkml, virtualization
On 1/21/25 18:30, Luigi Leonardi wrote:
On Thu, Jan 09, 2025 at 02:34:28PM +0100, Michal Luczaj wrote:quoted
FWIW, I've tried simplifying Hyunwoo's repro to toy with some tests. Ended up withfrom threading import * from socket import * from signal import * def listener(tid): while True: s = socket(AF_VSOCK, SOCK_SEQPACKET) s.bind((1, 1234)) s.listen() pthread_kill(tid, SIGUSR1) signal(SIGUSR1, lambda *args: None) Thread(target=listener, args=[get_ident()]).start() while True: c = socket(AF_VSOCK, SOCK_SEQPACKET) c.connect_ex((1, 1234)) c.connect_ex((42, 1234))which gives me splats with or without this patch. That said, when I apply this patch, but drop the `sk->sk_state != TCP_LISTEN &&`: no more splats.Hi Michal, I think it would be nice to have this test in the vsock test suite. WDYT? If you don't have any plans to port this to C, I can take care of it :)
Sure, go ahead, but note that this is just a (probably suboptimal) Python version of Hyunwoo's C repro[1]. [1]: https://lore.kernel.org/netdev/Z2LvdTTQR7dBmPb5@v4bel-B760M-AORUS-ELITE-AX/ (local)