From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Feng To: passt-user@passt.top Subject: Re: qemu couldn't connect the unix domain socket Date: Fri, 29 Oct 2021 13:27:44 +0800 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3555547331310056110==" --===============3555547331310056110== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Stefano, I got the coredump file, it reports the `fork` syscall is bad: Program terminated with signal SIGSYS, Bad system call. #0 __GI__Fork () at ../sysdeps/nptl/_Fork.c:50 50 return pid; (gdb) bt #0 __GI__Fork () at ../sysdeps/nptl/_Fork.c:50 #1 0x00007f8c04fdc02a in __libc_fork () at fork.c:73 #2 0x00007f8c05009f8b in daemon (nochdir=3D0, noclose=3D0) at daemon.c:48 #3 0x000000000040c1e9 in main (argc=3D1, argv=3D0x7ffd10b5cd78) at passt.c:3= 68 quit) Looks like the seccomp is still badly configured. I have little knowledge about the seccomp. I have tried to add the fork like this, but it doesn't work. --- a/passt.c +++ b/passt.c @@ -278,7 +278,7 @@ static void pid_file(struct ctx *c) { * #syscalls prlimit64 epoll_ctl epoll_create1 epoll_wait accept4 accept lis= ten * #syscalls socket bind connect getsockopt setsockopt recvfrom sendto shutd= own * #syscalls openat fstat fcntl lseek clone setsid exit_group getpid - * #syscalls clock_gettime newfstatat + * #syscalls clock_gettime newfstatat fork * #syscalls:pasta rt_sigreturn */ int main(int argc, char **argv) Thanks, Feng Li On Fri, Oct 29, 2021 at 11:33 AM Li Feng wrote: > > Hi Stefano, > > The previous test has included the fix. > This is my repo HEAD: > * 2c7431f - (HEAD -> master, origin/master, origin/HEAD) README: > Feature list, links to lists, bugs, chat (6 days ago) > * a77c5ef - README, perf_report: Markdown and CSS fixes (7 days ago) > > * 94c7c1d - slirp4netns.sh: Fix up usage, exit 0 on --help (7 days > ago) > * 1fc6416 - seccomp: Add newfstatat to list of allowed syscalls (7 > days ago) > * d36e429 - netlink: Fix length of address attribute (7 days ago) > > > My OS is Fedora 35, x64 version. > I will try to dig it when I have some time. > > Thanks, > Feng Li > > On Thu, Oct 28, 2021 at 3:30 PM Stefano Brivio wrote: > > > > Hi Feng Li, > > > > On Thu, 28 Oct 2021 12:25:29 +0800 > > Li Feng wrote: > > > > > Add cc. > > > > Sorry, I missed your email. It looks like on Mailman3, if I'm the owner > > of a list, I'm not automatically a member receiving posts from the list > > itself -- added myself as member, too. > > > > > On Tue, Oct 26, 2021 at 1:28 PM Li Feng wrote: > > > > > > > > Hi, > > > > I just tested the master code, the passt just exited without any erro= r. > > > > > > > > ``` > > > > $ ./passt > > > > Outbound interface: ens192 > > > > ARP: > > > > address: 00:50:56:be:9d:1f > > > > DHCP: > > > > assign: 192.168.64.217 > > > > mask: 255.255.240.0 > > > > router: 192.168.64.1 > > > > search: > > > > . > > > > UNIX domain socket bound at /tmp/passt_1.socket > > > > > > > > You can now start qrap: > > > > ./qrap 5 kvm ... -net socket,fd=3D5 -net nic,model=3Dvirtio > > > > or directly qemu, patched with: > > > > qemu/0001-net-Allow-also-UNIX-domain-sockets-to-be-used-as-net.pa= tch > > > > as follows: > > > > kvm ... -net socket,connect=3D/tmp/passt_1.socket -net nic,model= =3Dvirtio > > > > 21-10-26 13:23:43 root(a)192.168.64.217:~/passt(master=E2=9C=97) > > > > passt will fork into background as soon as it gets a connection. Can > > you retry running it as: > > > > ./passt -f -d > > > > so we can see if something strange is going on (-f stands for > > --foreground, -d for --debug)? Because: > > > > > > ``` > > > > Another terminal: > > > > ``` > > > > $ bash x.sh > > > > recv: Connection reset by peer > > > > Probe of /tmp/passt_1.socket failed > > > > connect: No such file or directory > > > > Probe of /tmp/passt_2.socket failed > > > > connect: No such file or directory > > > > Probe of /tmp/passt_3.socket failed > > > > ... > > > > ``` > > > > ...well, this shouldn't happen. It's probing /tmp/passt_1.socket and > > failing to get an answer. > > > > This just happened to another user, in that case seccomp was > > terminating passt because on his system daemon() called a different set > > of syscalls compared to my system: > > > > https://passt.top/passt/commit/?id=3D1fc6416cf9446cbf75818fd61772= 610e74709065 > > > > and I expect some more issues like these at the beginning, I didn't > > test it on different distributions yet. > > > > By the way, I'm working on adding tests for a few distributions right > > now, so that we can catch those early. > > > > -- > > Stefano > > --===============3555547331310056110==--