rootless-containers / slirp4netns

User-mode networking for unprivileged network namespaces
GNU General Public License v2.0
729 stars 82 forks source link

1.1.9: test suite is failing (test-slirp4netns-api-socket.sh) #258

Open kloczek opened 3 years ago

kloczek commented 3 years ago
``` + cd /home/tkloczko/rpmbuild/BUILD + cd slirp4netns-1.1.9 + /usr/bin/make -O -j48 V=1 VERBOSE=1 check /usr/bin/make check-TESTS make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-macaddress.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-configure.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-ready-fd.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-seccomp.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-cidr.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-disable-host-loopback.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' FAIL: tests/test-slirp4netns-api-socket.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-exit-fd.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-outbound-addr.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' PASS: tests/test-slirp4netns-disable-dns.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' ========================================= slirp4netns 1.1.9: ./test-suite.log ========================================= # TOTAL: 11 # PASS: 10 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: tests/test-slirp4netns-api-socket.sh ========================================== ++ dirname ./tests/test-slirp4netns-api-socket.sh + . ./tests/common.sh + child=2938299 + wait_for_network_namespace 2938299 + unshare -r -n sleep infinity + COUNTER=0 + '[' 0 -lt 40 ']' ++ nsenter_flags 2938299 ++ pid=2938299 ++ flags=--target=2938299 +++ readlink /proc/2938299/ns/user ++ userns='user:[4026531837]' +++ readlink /proc/2938299/ns/mnt ++ mntns='mnt:[4026531840]' +++ readlink /proc/2938299/ns/net ++ netns='net:[4026532056]' +++ readlink /proc/self/ns/user ++ self_userns='user:[4026531837]' +++ readlink /proc/self/ns/mnt ++ self_mntns='mnt:[4026531840]' +++ readlink /proc/self/ns/net ++ self_netns='net:[4026532056]' ++ '[' 'user:[4026531837]' '!=' 'user:[4026531837]' ']' ++ '[' 'mnt:[4026531840]' '!=' 'mnt:[4026531840]' ']' ++ '[' 'net:[4026532056]' '!=' 'net:[4026532056]' ']' ++ echo --target=2938299 + flags=--target=2938299 ++ echo --target=2938299 ++ grep -qvw -- -n + flags='--target=2938299 -n' + nsenter --target=2938299 -n true + sleep 0.5 + let COUNTER=COUNTER+1 + '[' 1 -lt 40 ']' ++ nsenter_flags 2938299 ++ pid=2938299 ++ flags=--target=2938299 +++ readlink /proc/2938299/ns/user ++ userns='user:[4026536293]' +++ readlink /proc/2938299/ns/mnt ++ mntns='mnt:[4026531840]' +++ readlink /proc/2938299/ns/net ++ netns='net:[4026536307]' +++ readlink /proc/self/ns/user ++ self_userns='user:[4026531837]' +++ readlink /proc/self/ns/mnt ++ self_mntns='mnt:[4026531840]' +++ readlink /proc/self/ns/net ++ self_netns='net:[4026532056]' ++ '[' 'user:[4026536293]' '!=' 'user:[4026531837]' ']' ++ flags='--target=2938299 --preserve-credentials -U' ++ '[' 'mnt:[4026531840]' '!=' 'mnt:[4026531840]' ']' ++ '[' 'net:[4026536307]' '!=' 'net:[4026532056]' ']' ++ flags='--target=2938299 --preserve-credentials -U -n' ++ echo '--target=2938299 --preserve-credentials -U -n' + flags='--target=2938299 --preserve-credentials -U -n' ++ echo --target=2938299 --preserve-credentials -U -n ++ grep -qvw -- -n + nsenter --target=2938299 --preserve-credentials -U -n true + return 0 ++ mktemp -d /tmp/slirp4netns-bench.XXXXXXXXXX + tmpdir=/tmp/slirp4netns-bench.G6XH3BsvFz + apisocket=/tmp/slirp4netns-bench.G6XH3BsvFz/slirp4netns.sock + apisocketlongpath=/tmp/slirp4netns-bench.G6XH3BsvFz/slirp4netns-TOO-LONG-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.sock + slirp4netns -c 2938299 --api-socket /tmp/slirp4netns-bench.G6XH3BsvFz/slirp4netns-TOO-LONG-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.sock tun11 sent tapfd=5 for tun11 received tapfd=5 the specified API socket path is too long (>= 108) do_slirp is exiting do_slirp failed parent failed Starting slirp * MTU: 1500 * Network: 10.0.2.0 * Netmask: 255.255.255.0 * Gateway: 10.0.2.2 * DNS: 10.0.2.3 * Recommended IP: 10.0.2.100 * API Socket: /tmp/slirp4netns-bench.G6XH3BsvFz/slirp4netns-TOO-LONG-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.sock WARNING: 127.0.0.1:* on the host is accessible as 10.0.2.2 (set --disable-host-loopback to prohibit connecting to 127.0.0.1:*) + slirp_pid=2938711 + wait_for_network_device 2938299 tun11 + COUNTER=0 + slirp4netns -c 2938299 --api-socket /tmp/slirp4netns-bench.G6XH3BsvFz/slirp4netns.sock tun11 + '[' 0 -lt 40 ']' ++ nsenter_flags 2938299 ++ pid=2938299 ++ flags=--target=2938299 +++ readlink /proc/2938299/ns/user ++ userns='user:[4026536293]' sent tapfd=5 for tun11 +++ readlink /proc/2938299/ns/mnt received tapfd=5 ++ mntns='mnt:[4026531840]' +++ readlink /proc/2938299/ns/net ++ netns='net:[4026536307]' +++ readlink /proc/self/ns/user ++ self_userns='user:[4026531837]' +++ readlink /proc/self/ns/mnt ++ self_mntns='mnt:[4026531840]' +++ readlink /proc/self/ns/net ++ self_netns='net:[4026532056]' ++ '[' 'user:[4026536293]' '!=' 'user:[4026531837]' ']' ++ flags='--target=2938299 --preserve-credentials -U' ++ '[' 'mnt:[4026531840]' '!=' 'mnt:[4026531840]' ']' ++ '[' 'net:[4026536307]' '!=' 'net:[4026532056]' ']' ++ flags='--target=2938299 --preserve-credentials -U -n' ++ echo '--target=2938299 --preserve-credentials -U -n' + nsenter --target=2938299 --preserve-credentials -U -n ip addr show tun11 10: tun11: mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether 1e:d4:a6:23:d0:c4 brd ff:ff:ff:ff:ff:ff inet 10.0.2.100/24 brd 10.0.2.255 scope global tun11 valid_lft forever preferred_lft forever inet6 fe80::1cd4:a6ff:fe23:d0c4/64 scope link tentative valid_lft forever preferred_lft forever + return 0 + trap cleanup EXIT ++ echo badjson ++ ncat -U /tmp/slirp4netns-bench.G6XH3BsvFz/slirp4netns.sock + result= + cleanup + kill -9 2938299 2938711 + rm -rf /tmp/slirp4netns-bench.G6XH3BsvFz ./tests/test-slirp4netns-api-socket.sh: line 27: 2938299 Killed unshare -r -n sleep infinity FAIL tests/test-slirp4netns-api-socket.sh (exit status: 139) ============================================================================ Testsuite summary for slirp4netns 1.1.9 ============================================================================ # TOTAL: 11 # PASS: 10 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See ./test-suite.log Please report to https://github.com/rootless-containers/slirp4netns/issues ============================================================================ make[2]: *** [Makefile:923: test-suite.log] Error 1 make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.9' make[1]: *** [Makefile:1031: check-TESTS] Error 2 make: *** [Makefile:1313: check-am] Error 2 ```
AkihiroSuda commented 3 years ago
kloczek commented 3 years ago

Is this a flaky test or consistently failing?

What you mean? It fails all the time the same way.

Is this new in 1.1.9?

I have no idea. Just first time finished my package with slirp4netns.

What's your OS?

Linux/x86_64 with python 3.8.8.

AkihiroSuda commented 3 years ago

What's your distro and kernel version?

AkihiroSuda commented 3 years ago

If you run echo 'badjson' | ncat -U $apisocket manually, what does happen? I guess ncat binary on your host might lack support for -U flag.

kloczek commented 3 years ago

What's your distro and kernel version?

My own fedora rawhide based with tons of bugs fixed ..

If you run echo 'badjson' | ncat -U $apisocket manually, what does happen? I guess ncat binary on your host might lack support for -U flag.

[tkloczko@barrel slirp4netns-1.1.9]$ ncat --help| grep -- -U
  -U, --unixsock             Use Unix domain sockets only
[tkloczko@barrel slirp4netns-1.1.9]$ rpm -qf /usr/bin/ncat
nmap-ncat-7.91-2.g2v.x86_64
kloczek commented 3 years ago

Is it anything what I can do to help diagnose that issue? I just tested 1.1.10 and test suite still is failing

```console + /usr/bin/make -O -j48 V=1 VERBOSE=1 check /usr/bin/make check-TESTS make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-ready-fd.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-macaddress.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-configure.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-seccomp.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-disable-host-loopback.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-cidr.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-outbound-addr.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' FAIL: tests/test-slirp4netns-api-socket.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-exit-fd.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' PASS: tests/test-slirp4netns-disable-dns.sh make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' ========================================== slirp4netns 1.1.10: ./test-suite.log ========================================== # TOTAL: 11 # PASS: 10 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: tests/test-slirp4netns-api-socket.sh ========================================== ++ dirname ./tests/test-slirp4netns-api-socket.sh + . ./tests/common.sh + child=3275522 + wait_for_network_namespace 3275522 + unshare -r -n sleep infinity + COUNTER=0 + '[' 0 -lt 40 ']' ++ nsenter_flags 3275522 ++ pid=3275522 ++ flags=--target=3275522 +++ readlink /proc/3275522/ns/user ++ userns='user:[4026531837]' +++ readlink /proc/3275522/ns/mnt ++ mntns='mnt:[4026531840]' +++ readlink /proc/3275522/ns/net ++ netns='net:[4026532056]' +++ readlink /proc/self/ns/user ++ self_userns='user:[4026531837]' +++ readlink /proc/self/ns/mnt ++ self_mntns='mnt:[4026531840]' +++ readlink /proc/self/ns/net ++ self_netns='net:[4026532056]' ++ '[' 'user:[4026531837]' '!=' 'user:[4026531837]' ']' ++ '[' 'mnt:[4026531840]' '!=' 'mnt:[4026531840]' ']' ++ '[' 'net:[4026532056]' '!=' 'net:[4026532056]' ']' ++ echo --target=3275522 + flags=--target=3275522 ++ echo --target=3275522 ++ grep -qvw -- -n + flags='--target=3275522 -n' + nsenter --target=3275522 -n true + sleep 0.5 + let COUNTER=COUNTER+1 + '[' 1 -lt 40 ']' ++ nsenter_flags 3275522 ++ pid=3275522 ++ flags=--target=3275522 +++ readlink /proc/3275522/ns/user ++ userns='user:[4026536258]' +++ readlink /proc/3275522/ns/mnt ++ mntns='mnt:[4026531840]' +++ readlink /proc/3275522/ns/net ++ netns='net:[4026536260]' +++ readlink /proc/self/ns/user ++ self_userns='user:[4026531837]' +++ readlink /proc/self/ns/mnt ++ self_mntns='mnt:[4026531840]' +++ readlink /proc/self/ns/net ++ self_netns='net:[4026532056]' ++ '[' 'user:[4026536258]' '!=' 'user:[4026531837]' ']' ++ flags='--target=3275522 --preserve-credentials -U' ++ '[' 'mnt:[4026531840]' '!=' 'mnt:[4026531840]' ']' ++ '[' 'net:[4026536260]' '!=' 'net:[4026532056]' ']' ++ flags='--target=3275522 --preserve-credentials -U -n' ++ echo '--target=3275522 --preserve-credentials -U -n' + flags='--target=3275522 --preserve-credentials -U -n' ++ echo --target=3275522 --preserve-credentials -U -n ++ grep -qvw -- -n + nsenter --target=3275522 --preserve-credentials -U -n true + return 0 ++ mktemp -d /tmp/slirp4netns-bench.XXXXXXXXXX + tmpdir=/tmp/slirp4netns-bench.Bok3pWEPNR + apisocket=/tmp/slirp4netns-bench.Bok3pWEPNR/slirp4netns.sock + apisocketlongpath=/tmp/slirp4netns-bench.Bok3pWEPNR/slirp4netns-TOO-LONG-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.sock + slirp4netns -c 3275522 --api-socket /tmp/slirp4netns-bench.Bok3pWEPNR/slirp4netns-TOO-LONG-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.sock tun11 sent tapfd=5 for tun11 received tapfd=5 the specified API socket path is too long (>= 108) do_slirp is exiting do_slirp failed parent failed Starting slirp * MTU: 1500 * Network: 10.0.2.0 * Netmask: 255.255.255.0 * Gateway: 10.0.2.2 * DNS: 10.0.2.3 * Recommended IP: 10.0.2.100 * API Socket: /tmp/slirp4netns-bench.Bok3pWEPNR/slirp4netns-TOO-LONG-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.sock WARNING: 127.0.0.1:* on the host is accessible as 10.0.2.2 (set --disable-host-loopback to prohibit connecting to 127.0.0.1:*) + slirp_pid=3275919 + wait_for_network_device 3275522 tun11 + slirp4netns -c 3275522 --api-socket /tmp/slirp4netns-bench.Bok3pWEPNR/slirp4netns.sock tun11 + COUNTER=0 + '[' 0 -lt 40 ']' ++ nsenter_flags 3275522 ++ pid=3275522 ++ flags=--target=3275522 +++ readlink /proc/3275522/ns/user ++ userns='user:[4026536258]' sent tapfd=5 for tun11 received tapfd=5 +++ readlink /proc/3275522/ns/mnt ++ mntns='mnt:[4026531840]' +++ readlink /proc/3275522/ns/net ++ netns='net:[4026536260]' +++ readlink /proc/self/ns/user ++ self_userns='user:[4026531837]' +++ readlink /proc/self/ns/mnt ++ self_mntns='mnt:[4026531840]' +++ readlink /proc/self/ns/net ++ self_netns='net:[4026532056]' ++ '[' 'user:[4026536258]' '!=' 'user:[4026531837]' ']' ++ flags='--target=3275522 --preserve-credentials -U' ++ '[' 'mnt:[4026531840]' '!=' 'mnt:[4026531840]' ']' ++ '[' 'net:[4026536260]' '!=' 'net:[4026532056]' ']' ++ flags='--target=3275522 --preserve-credentials -U -n' ++ echo '--target=3275522 --preserve-credentials -U -n' + nsenter --target=3275522 --preserve-credentials -U -n ip addr show tun11 10: tun11: mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether 42:71:d8:cd:03:5c brd ff:ff:ff:ff:ff:ff inet 10.0.2.100/24 brd 10.0.2.255 scope global tun11 valid_lft forever preferred_lft forever inet6 fe80::4071:d8ff:fecd:35c/64 scope link tentative valid_lft forever preferred_lft forever + return 0 + trap cleanup EXIT ++ echo badjson ++ ncat -U /tmp/slirp4netns-bench.Bok3pWEPNR/slirp4netns.sock + result= + cleanup + kill -9 3275522 3275919 + rm -rf /tmp/slirp4netns-bench.Bok3pWEPNR ./tests/test-slirp4netns-api-socket.sh: line 27: 3275522 Killed unshare -r -n sleep infinity FAIL tests/test-slirp4netns-api-socket.sh (exit status: 139) ============================================================================ Testsuite summary for slirp4netns 1.1.10 ============================================================================ # TOTAL: 11 # PASS: 10 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See ./test-suite.log Please report to https://github.com/rootless-containers/slirp4netns/issues ============================================================================ make[2]: *** [Makefile:923: test-suite.log] Error 1 make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/slirp4netns-1.1.10' make[1]: *** [Makefile:1031: check-TESTS] Error 2 make: *** [Makefile:1313: check-am] Error 2 ````
AkihiroSuda commented 3 years ago

Is the issue reproducible with any well-known and publicly available distro?

kloczek commented 3 years ago

Is the issue reproducible with any well-known and publicly available distro?

I have no idea. I'm using my own distribution and I don't think that distribution is here relevant :) Just in case I'm using ncat from nmap 7.91.

kloczek commented 3 years ago

Just tested ne version ad test suite still is failing. May I ask which ncat you are using?

AkihiroSuda commented 3 years ago
$ dpkg-query -W ncat
ncat    7.91+dfsg1+really7.80+dfsg1-1

(Ubuntu 21.04, amd64)

kloczek commented 1 year ago
$ dpkg-query -W ncat
ncat    7.91+dfsg1+really7.80+dfsg1-1

(Ubuntu 21.04, amd64)

Im using ncat from nmap 7.93.