0s autopkgtest [00:28:55]: starting date and time: 2025-12-05 00:28:55+0000 0s autopkgtest [00:28:55]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [00:28:55]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.zz92yhdu/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade bubblewrap --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.13.9-2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-s390x-4.secgroup --name adt-resolute-s390x-bubblewrap-20251205-002855-juju-7f2275-prod-proposed-migration-environment-15-5aff450c-f898-4983-bac8-dc99dd915445 --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 5s Creating nova instance adt-resolute-s390x-bubblewrap-20251205-002855-juju-7f2275-prod-proposed-migration-environment-15-5aff450c-f898-4983-bac8-dc99dd915445 from image adt/ubuntu-resolute-s390x-server-20251204.img (UUID fc9e71eb-05b5-4e42-8e92-6ce618f4c0a1)... 55s autopkgtest [00:29:50]: testbed dpkg architecture: s390x 55s autopkgtest [00:29:50]: testbed apt version: 3.1.12 55s autopkgtest [00:29:50]: @@@@@@@@@@@@@@@@@@@@ test bed setup 55s autopkgtest [00:29:50]: testbed release detected to be: None 56s autopkgtest [00:29:51]: updating testbed package index (apt update) 56s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 57s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 57s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 57s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 57s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [157 kB] 57s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [898 kB] 57s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.5 kB] 57s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [234 kB] 57s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [720 kB] 57s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [6504 B] 57s Fetched 2163 kB in 1s (2000 kB/s) 58s Reading package lists... 59s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 59s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 59s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 59s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 60s Reading package lists... 60s Reading package lists... 60s Building dependency tree... 60s Reading state information... 60s Calculating upgrade... 60s The following packages will be upgraded: 60s ftp libpython3-stdlib python3 python3-gdbm python3-mdurl python3-minimal 60s tnftp 60s 7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 60s Need to get 193 kB of archives. 60s After this operation, 4096 B of additional disk space will be used. 60s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-minimal s390x 3.13.9-2 [28.1 kB] 60s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3 s390x 3.13.9-2 [23.0 kB] 60s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x libpython3-stdlib s390x 3.13.9-2 [10.8 kB] 60s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x python3-mdurl all 0.1.2-1build1 [9328 B] 60s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x tnftp s390x 20230507-2build4 [106 kB] 60s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x ftp all 20230507-2build4 [4736 B] 60s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-gdbm s390x 3.13.9-2 [11.0 kB] 61s dpkg-preconfigure: unable to re-open stdin: No such file or directory 61s Fetched 193 kB in 0s (448 kB/s) 61s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61321 files and directories currently installed.) 61s Preparing to unpack .../python3-minimal_3.13.9-2_s390x.deb ... 61s Unpacking python3-minimal (3.13.9-2) over (3.13.7-1) ... 61s Setting up python3-minimal (3.13.9-2) ... 61s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61321 files and directories currently installed.) 61s Preparing to unpack .../0-python3_3.13.9-2_s390x.deb ... 61s running python pre-rtupdate hooks for python3.13... 61s Unpacking python3 (3.13.9-2) over (3.13.7-1) ... 61s Preparing to unpack .../1-libpython3-stdlib_3.13.9-2_s390x.deb ... 61s Unpacking libpython3-stdlib:s390x (3.13.9-2) over (3.13.7-1) ... 61s Preparing to unpack .../2-python3-mdurl_0.1.2-1build1_all.deb ... 61s Unpacking python3-mdurl (0.1.2-1build1) over (0.1.2-1) ... 61s Preparing to unpack .../3-tnftp_20230507-2build4_s390x.deb ... 61s Unpacking tnftp (20230507-2build4) over (20230507-2build3) ... 61s Preparing to unpack .../4-ftp_20230507-2build4_all.deb ... 61s Unpacking ftp (20230507-2build4) over (20230507-2build3) ... 61s Preparing to unpack .../5-python3-gdbm_3.13.9-2_s390x.deb ... 61s Unpacking python3-gdbm (3.13.9-2) over (3.13.9-1) ... 61s Setting up python3-gdbm (3.13.9-2) ... 61s Setting up tnftp (20230507-2build4) ... 61s Setting up libpython3-stdlib:s390x (3.13.9-2) ... 61s Setting up python3 (3.13.9-2) ... 61s running python rtupdate hooks for python3.13... 61s running python post-rtupdate hooks for python3.13... 61s Setting up python3-mdurl (0.1.2-1build1) ... 61s Setting up ftp (20230507-2build4) ... 61s Processing triggers for man-db (2.13.1-1) ... 62s autopkgtest [00:29:57]: upgrading testbed (apt dist-upgrade and autopurge) 62s Reading package lists... 62s Building dependency tree... 62s Reading state information... 62s Calculating upgrade... 62s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 62s Reading package lists... 63s Building dependency tree... 63s Reading state information... 63s Solving dependencies... 63s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 65s autopkgtest [00:30:00]: testbed running kernel: Linux 6.17.0-6-generic #6-Ubuntu SMP Tue Oct 7 12:36:22 UTC 2025 65s autopkgtest [00:30:00]: @@@@@@@@@@@@@@@@@@@@ apt-source bubblewrap 67s Get:1 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (dsc) [2685 B] 67s Get:2 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (tar) [115 kB] 67s Get:3 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (asc) [833 B] 67s Get:4 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (diff) [12.6 kB] 67s gpgv: Signature made Mon Dec 30 11:46:18 2024 UTC 67s gpgv: using RSA key 7A073AD1AE694FA25BFF62E5235C099D3EB33076 67s gpgv: Can't check signature: No public key 67s dpkg-source: warning: cannot verify inline signature for ./bubblewrap_0.11.0-2.dsc: no acceptable signature found 67s autopkgtest [00:30:02]: testing package bubblewrap version 0.11.0-2 67s autopkgtest [00:30:02]: build not needed 68s autopkgtest [00:30:03]: test basic: preparing testbed 68s Reading package lists... 68s Building dependency tree... 68s Reading state information... 68s Solving dependencies... 68s The following NEW packages will be installed: 68s bubblewrap libio-pty-perl libipc-run-perl 68s 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 68s Need to get 180 kB of archives. 68s After this operation, 506 kB of additional disk space will be used. 68s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x bubblewrap s390x 0.11.0-2 [54.1 kB] 69s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libio-pty-perl s390x 1:1.20-1build3 [31.6 kB] 69s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libipc-run-perl all 20250809.0-1 [94.4 kB] 69s Fetched 180 kB in 1s (356 kB/s) 69s Selecting previously unselected package bubblewrap. 69s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61321 files and directories currently installed.) 69s Preparing to unpack .../bubblewrap_0.11.0-2_s390x.deb ... 69s Unpacking bubblewrap (0.11.0-2) ... 69s Selecting previously unselected package libio-pty-perl. 69s Preparing to unpack .../libio-pty-perl_1%3a1.20-1build3_s390x.deb ... 69s Unpacking libio-pty-perl (1:1.20-1build3) ... 69s Selecting previously unselected package libipc-run-perl. 69s Preparing to unpack .../libipc-run-perl_20250809.0-1_all.deb ... 69s Unpacking libipc-run-perl (20250809.0-1) ... 69s Setting up bubblewrap (0.11.0-2) ... 69s Setting up libio-pty-perl (1:1.20-1build3) ... 69s Setting up libipc-run-perl (20250809.0-1) ... 69s Processing triggers for systemd (257.9-0ubuntu2) ... 69s Processing triggers for man-db (2.13.1-1) ... 69s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 70s autopkgtest [00:30:05]: test basic: [----------------------- 70s ok 1 - "bwrap --ro-bind / / /usr/bin/id -u" should succeed 70s ok 2 70s ok 3 - "bwrap --ro-bind / / /usr/bin/id -g" should succeed 70s ok 4 70s 1..4 71s autopkgtest [00:30:06]: test basic: -----------------------] 71s basic PASS 71s autopkgtest [00:30:06]: test basic: - - - - - - - - - - results - - - - - - - - - - 71s autopkgtest [00:30:06]: test dev: preparing testbed 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 72s Solving dependencies... 72s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 72s autopkgtest [00:30:07]: test dev: [----------------------- 73s ok 1 - "bwrap --ro-bind / / --dev /dev //bin/sh -c echo /dev/*" should succeed 73s ok 2 73s ok 3 73s ok 4 73s ok 5 73s ok 6 73s ok 7 73s ok 8 73s ok 9 73s ok 10 73s ok 11 73s ok 12 73s ok 13 73s ok 14 73s ok 15 73s ok 16 73s ok 17 73s ok 18 73s ok 19 73s ok 20 73s ok 21 73s ok 22 73s 1..22 73s autopkgtest [00:30:08]: test dev: -----------------------] 73s dev PASS 73s autopkgtest [00:30:08]: test dev: - - - - - - - - - - results - - - - - - - - - - 74s autopkgtest [00:30:09]: test net: preparing testbed 74s Reading package lists... 74s Building dependency tree... 74s Reading state information... 74s Solving dependencies... 74s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 75s autopkgtest [00:30:10]: test net: [----------------------- 75s ok 1 - "bwrap --ro-bind / / --unshare-net /bin/sh -c ip link ls" should succeed 75s ok 2 75s ok 3 75s ok 4 75s ok 5 75s 1..5 75s autopkgtest [00:30:10]: test net: -----------------------] 76s autopkgtest [00:30:11]: test net: - - - - - - - - - - results - - - - - - - - - - 76s net PASS 76s autopkgtest [00:30:11]: test upstream: preparing testbed 76s Reading package lists... 77s Building dependency tree... 77s Reading state information... 77s Solving dependencies... 77s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 77s autopkgtest [00:30:12]: test upstream: [----------------------- 78s +++ dirname tests/test-run.sh 78s ++ cd tests 78s ++ pwd 78s + srcd=/tmp/autopkgtest.eTXqKq/build.QoM/src/tests 78s + . /tmp/autopkgtest.eTXqKq/build.QoM/src/tests/libtest.sh 78s ++ set -e 78s ++ '[' -n '' ']' 78s +++ dirname tests/test-run.sh 78s ++ test_srcdir=tests 78s ++ '[' -n '' ']' 78s +++ dirname tests/test-run.sh 78s ++ test_builddir=tests 78s ++ . tests/libtest-core.sh 78s +++ type -p locale 78s ++++ locale -a 78s ++++ grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' 78s ++++ head -n1 78s +++ export LC_ALL=C.utf8 78s +++ LC_ALL=C.utf8 78s +++ '[' -z C.utf8 ']' 78s +++ unset LANGUAGE 78s +++ export G_DEBUG=fatal-warnings 78s +++ G_DEBUG=fatal-warnings 78s +++ trap report_err ERR 78s ++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sbin:/sbin 78s +++ mktemp -d /var/tmp/tap-test.XXXXXX 78s ++ tempdir=/var/tmp/tap-test.0tJ6A4 78s ++ touch /var/tmp/tap-test.0tJ6A4/.testtmp 78s ++ trap cleanup EXIT 78s ++ cd /var/tmp/tap-test.0tJ6A4 78s ++ : bwrap 78s +++ type -p bwrap 78s ++ test -u /usr/bin/bwrap 78s ++ FUSE_DIR= 78s +++ grep ' fuse[. ]' /proc/self/mounts 78s +++ awk '{print $2}' 78s ++++ id -u 78s +++ grep user_id=1000 78s +++ id -u 78s ++ test 1000 = 0 78s ++ is_uidzero=false 78s ++ UNREADABLE=/root/.bashrc 78s ++ false 78s +++ dirname /root/.bashrc 78s ++ test -x /root 78s ++ '[' /lib -ef /usr/lib ']' 78s ++ BWRAP_RO_HOST_ARGS=$'--ro-bind /usr /usr\n --ro-bind /etc /etc\n --dir /var/tmp\n --symlink usr/lib /lib\n --symlink usr/lib64 /lib64\n --symlink usr/bin /bin\n --symlink usr/sbin /sbin\n --proc /proc\n --dev /dev' 78s ++ RUN='bwrap --bind / / --tmpfs /tmp' 78s ++ '[' -z '' ']' 78s ++ bwrap --bind / / --tmpfs /tmp true 78s ++ basename tests/test-run.sh 78s + bn=test-run.sh 78s + test_count=0 78s + bwrap --help 78s + assert_file_has_content help.txt 'usage: bwrap' 78s + fpath=help.txt 78s + shift 78s + for re in "$@" 78s + grep -q -e 'usage: bwrap' help.txt 78s ok 1 Help works 78s + ok 'Help works' 78s + test_count=1 78s + echo ok 1 'Help works' 78s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 78s + '[' x '!=' x ']' 78s + ok_skip 'no FUSE support' 78s + ok '# SKIP' 'no FUSE support' 78s + test_count=2 78s + echo ok 2 '# SKIP' 'no FUSE support' 78s + bwrap --bind / / --tmpfs /tmp --proc /proc true 78s ok 2 # SKIP no FUSE support 78s ok 3 can mount /proc with 78s ok 4 can unshare network, create new /dev with 78s + ok 'can mount /proc with ' 78s + test_count=3 78s + echo ok 3 'can mount /proc with ' 78s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev true 78s + ok 'can unshare network, create new /dev with ' 78s + test_count=4 78s + echo ok 4 'can unshare network, create new /dev with ' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + test -n '' 78s + CAP= 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 78s cat: /tmp/foo: Permission denied (os error 13) 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 78s ok 5 cannot read /etc/shadow with 78s ok 6 cannot read /root/.bashrc with 78s ok 7 can bind a destination over a symlink 78s ok 8 # SKIP no FUSE support 78s ok 9 can mount /proc with --unshare-user-try 78s ok 10 can unshare network, create new /dev with --unshare-user-try 78s ok 11 cannot read /etc/shadow with --unshare-user-try 78s ok 12 cannot read /root/.bashrc with --unshare-user-try 78s ok 13 can bind a destination over a symlink 78s ok 14 # SKIP no FUSE support 78s ok 15 can mount /proc with --unshare-pid 78s ok 16 can unshare network, create new /dev with --unshare-pid 78s ok 17 cannot read /etc/shadow with --unshare-pid 78s ok 18 cannot read /root/.bashrc with --unshare-pid 78s ok 19 can bind a destination over a symlink 78s ok 20 # SKIP no FUSE support 78s ok 21 can mount /proc with --unshare-user-try --unshare-pid 78s ok 22 can unshare network, create new /dev with --unshare-user-try --unshare-pid 78s cat: /etc/shadow: Permission denied (os error 13) 78s + ok 'cannot read /etc/shadow with ' 78s + test_count=5 78s + echo ok 5 'cannot read /etc/shadow with ' 78s + '[' x/root/.bashrc '!=' x ']' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 78s bwrap: Can't find source path /root/.bashrc: Permission denied 78s + ok 'cannot read /root/.bashrc with ' 78s + test_count=6 78s + echo ok 6 'cannot read /root/.bashrc with ' 78s + bwrap --bind / / --tmpfs /tmp --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 78s + ok 'can bind a destination over a symlink' 78s + test_count=7 78s + echo ok 7 'can bind a destination over a symlink' 78s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 78s + '[' x '!=' x ']' 78s + ok_skip 'no FUSE support' 78s + ok '# SKIP' 'no FUSE support' 78s + test_count=8 78s + echo ok 8 '# SKIP' 'no FUSE support' 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --proc /proc true 78s + ok 'can mount /proc with --unshare-user-try' 78s + test_count=9 78s + echo ok 9 'can mount /proc with --unshare-user-try' 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev true 78s + ok 'can unshare network, create new /dev with --unshare-user-try' 78s + test_count=10 78s + echo ok 10 'can unshare network, create new /dev with --unshare-user-try' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + test -n '' 78s + CAP= 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 78s cat: /tmp/foo: Permission denied (os error 13) 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + ok 'cannot read /etc/shadow with --unshare-user-try' 78s + test_count=11 78s + echo ok 11 'cannot read /etc/shadow with --unshare-user-try' 78s + '[' x/root/.bashrc '!=' x ']' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 78s bwrap: Can't find source path /root/.bashrc: Permission denied 78s + ok 'cannot read /root/.bashrc with --unshare-user-try' 78s + test_count=12 78s + echo ok 12 'cannot read /root/.bashrc with --unshare-user-try' 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 78s + ok 'can bind a destination over a symlink' 78s + test_count=13 78s + echo ok 13 'can bind a destination over a symlink' 78s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 78s + '[' x '!=' x ']' 78s + ok_skip 'no FUSE support' 78s + ok '# SKIP' 'no FUSE support' 78s + test_count=14 78s + echo ok 14 '# SKIP' 'no FUSE support' 78s + bwrap --bind / / --tmpfs /tmp --unshare-pid --proc /proc true 78s + ok 'can mount /proc with --unshare-pid' 78s + test_count=15 78s + echo ok 15 'can mount /proc with --unshare-pid' 78s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev true 78s + ok 'can unshare network, create new /dev with --unshare-pid' 78s + test_count=16 78s + echo ok 16 'can unshare network, create new /dev with --unshare-pid' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + test -n '' 78s + CAP= 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 78s cat: /tmp/foo: Permission denied (os error 13) 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + ok 'cannot read /etc/shadow with --unshare-pid' 78s + test_count=17 78s + echo ok 17 'cannot read /etc/shadow with --unshare-pid' 78s + '[' x/root/.bashrc '!=' x ']' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 78s bwrap: Can't find source path /root/.bashrc: Permission denied 78s + ok 'cannot read /root/.bashrc with --unshare-pid' 78s + test_count=18 78s + echo ok 18 'cannot read /root/.bashrc with --unshare-pid' 78s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 78s + ok 'can bind a destination over a symlink' 78s + test_count=19 78s + echo ok 19 'can bind a destination over a symlink' 78s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 78s + '[' x '!=' x ']' 78s + ok_skip 'no FUSE support' 78s + ok '# SKIP' 'no FUSE support' 78s + test_count=20 78s + echo ok 20 '# SKIP' 'no FUSE support' 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --proc /proc true 78s + ok 'can mount /proc with --unshare-user-try --unshare-pid' 78s + test_count=21 78s + echo ok 21 'can mount /proc with --unshare-user-try --unshare-pid' 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --dev /dev true 78s + ok 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 78s + test_count=22 78s + echo ok 22 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + test -n '' 78s + CAP= 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 78s cat: /tmp/foo: Permission denied (os error 13) 78s + cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 78s cat: /etc/shadow: Permission denied (os error 13) 78s ok 23 cannot read /etc/shadow with --unshare-user-try --unshare-pid 78s + ok 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 78s + test_count=23 78s + echo ok 23 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 78s + '[' x/root/.bashrc '!=' x ']' 78s + echo -n 'expect EPERM: ' 78s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 78s bwrap: Can't find source path /root/.bashrc: Permission denied 78s ok 24 cannot read /root/.bashrc with --unshare-user-try --unshare-pid 78s + ok 'cannot read /root/.bashrc with --unshare-user-try --unshare-pid' 78s + test_count=24 78s + echo ok 24 'cannot read /root/.bashrc with --unshare-user-try --unshare-pid' 78s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 78s + ok 'can bind a destination over a symlink' 78s + test_count=25 78s + echo ok 25 'can bind a destination over a symlink' 78s + rm -f ./symlink 78s ok 25 can bind a destination over a symlink 78s ++ pwd 78s ++ pwd 78s ++ pwd 78s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.0tJ6A4 /var/tmp/tap-test.0tJ6A4 --symlink /dev/null /var/tmp/tap-test.0tJ6A4/symlink true 78s + readlink ./symlink 78s + assert_file_has_content target.txt /dev/null 78s + fpath=target.txt 78s + shift 78s + for re in "$@" 78s + grep -q -e /dev/null target.txt 78s ok 26 --symlink works 78s + ok '--symlink works' 78s + test_count=26 78s + echo ok 26 '--symlink works' 78s ++ pwd 78s ++ pwd 78s ++ pwd 78s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.0tJ6A4 /var/tmp/tap-test.0tJ6A4 --symlink /dev/null /var/tmp/tap-test.0tJ6A4/symlink true 78s + ok '--symlink is idempotent' 78s + test_count=27 78s ok 27 --symlink is idempotent 78s + echo ok 27 '--symlink is idempotent' 78s ++ pwd 78s ++ pwd 78s ++ pwd 78s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.0tJ6A4 /var/tmp/tap-test.0tJ6A4 --symlink /dev/full /var/tmp/tap-test.0tJ6A4/symlink true 78s + assert_file_has_content err.txt 'Can'\''t make symlink .*: existing destination is /dev/null' 78s + fpath=err.txt 78s + shift 78s + for re in "$@" 78s + grep -q -e 'Can'\''t make symlink .*: existing destination is /dev/null' err.txt 78s ok 28 --symlink doesn't overwrite a conflicting symlink 78s + ok '--symlink doesn'\''t overwrite a conflicting symlink' 78s + test_count=28 78s + echo ok 28 '--symlink doesn'\''t overwrite a conflicting symlink' 78s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dev /dev ls -al /dev/stdin /dev/stdout /dev/stderr /dev/null /dev/random /dev/urandom /dev/fd /dev/core 78s ok 29 all expected devices were created 78s + ok 'all expected devices were created' 78s + test_count=29 78s + echo ok 29 'all expected devices were created' 78s + bwrap --bind / / --tmpfs /tmp --unshare-pid --as-pid-1 --bind / / bash -c 'echo $$' 78s + assert_file_has_content as_pid_1.txt 1 78s + fpath=as_pid_1.txt 78s + shift 78s + for re in "$@" 78s + grep -q -e 1 as_pid_1.txt 78s ok 30 can run as pid 1 78s + ok 'can run as pid 1' 78s + test_count=30 78s + echo ok 30 'can run as pid 1' 78s + bwrap --bind / / --tmpfs /tmp --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'exit 42' 78s + assert_file_has_content info.json '"child-pid": [0-9]' 78s + fpath=info.json 78s + shift 78s + for re in "$@" 78s + grep -q -e '"child-pid": [0-9]' info.json 78s + assert_file_has_content json-status.json '"child-pid": [0-9]' 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e '"child-pid": [0-9]' json-status.json 78s + assert_file_has_content_literal json-status.json '"exit-code": 42' 78s + fpath=json-status.json 78s + shift 78s + for s in "$@" 78s + grep -q -F -e '"exit-code": 42' json-status.json 78s ok 31 info and json-status fd 78s + ok 'info and json-status fd' 78s + test_count=31 78s + echo ok 31 'info and json-status fd' 78s ++ bwrap --bind / / --tmpfs /tmp --proc /proc --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'stat -L -c "%n %i" /proc/self/ns/*' 78s + DATA=$'/proc/self/ns/cgroup 4026532929\n/proc/self/ns/ipc 4026532927\n/proc/self/ns/mnt 4026532814\n/proc/self/ns/net 4026532930\n/proc/self/ns/pid 4026532928\n/proc/self/ns/pid_for_children 4026532928\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532759\n/proc/self/ns/uts 4026532872' 78s + for NS in "ipc" "mnt" "net" "pid" "uts" 78s ++ echo $'/proc/self/ns/cgroup 4026532929\n/proc/self/ns/ipc 4026532927\n/proc/self/ns/mnt 4026532814\n/proc/self/ns/net 4026532930\n/proc/self/ns/pid 4026532928\n/proc/self/ns/pid_for_children 4026532928\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532759\n/proc/self/ns/uts 4026532872' 78s ++ grep /proc/self/ns/ipc 78s ++ awk '{print $2}' 78s + want=4026532927 78s + assert_file_has_content info.json 4026532927 78s + fpath=info.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532927 info.json 78s + assert_file_has_content json-status.json 4026532927 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532927 json-status.json 78s + for NS in "ipc" "mnt" "net" "pid" "uts" 78s ++ echo $'/proc/self/ns/cgroup 4026532929\n/proc/self/ns/ipc 4026532927\n/proc/self/ns/mnt 4026532814\n/proc/self/ns/net 4026532930\n/proc/self/ns/pid 4026532928\n/proc/self/ns/pid_for_children 4026532928\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532759\n/proc/self/ns/uts 4026532872' 78s ++ grep /proc/self/ns/mnt 78s ++ awk '{print $2}' 78s + want=4026532814 78s + assert_file_has_content info.json 4026532814 78s + fpath=info.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532814 info.json 78s + assert_file_has_content json-status.json 4026532814 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532814 json-status.json 78s + for NS in "ipc" "mnt" "net" "pid" "uts" 78s ++ echo $'/proc/self/ns/cgroup 4026532929\n/proc/self/ns/ipc 4026532927\n/proc/self/ns/mnt 4026532814\n/proc/self/ns/net 4026532930\n/proc/self/ns/pid 4026532928\n/proc/self/ns/pid_for_children 4026532928\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532759\n/proc/self/ns/uts 4026532872' 78s ++ grep /proc/self/ns/net 78s ++ awk '{print $2}' 78s + want=4026532930 78s + assert_file_has_content info.json 4026532930 78s + fpath=info.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532930 info.json 78s + assert_file_has_content json-status.json 4026532930 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532930 json-status.json 78s + for NS in "ipc" "mnt" "net" "pid" "uts" 78s ++ echo $'/proc/self/ns/cgroup 4026532929\n/proc/self/ns/ipc 4026532927\n/proc/self/ns/mnt 4026532814\n/proc/self/ns/net 4026532930\n/proc/self/ns/pid 4026532928\n/proc/self/ns/pid_for_children 4026532928\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532759\n/proc/self/ns/uts 4026532872' 78s ++ grep /proc/self/ns/pid 78s ++ awk '{print $2}' 78s + want=$'4026532928\n4026532928' 78s + assert_file_has_content info.json $'4026532928\n4026532928' 78s + fpath=info.json 78s + shift 78s + for re in "$@" 78s + grep -q -e $'4026532928\n4026532928' info.json 78s + assert_file_has_content json-status.json $'4026532928\n4026532928' 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e $'4026532928\n4026532928' json-status.json 78s + for NS in "ipc" "mnt" "net" "pid" "uts" 78s ++ echo $'/proc/self/ns/cgroup 4026532929\n/proc/self/ns/ipc 4026532927\n/proc/self/ns/mnt 4026532814\n/proc/self/ns/net 4026532930\n/proc/self/ns/pid 4026532928\n/proc/self/ns/pid_for_children 4026532928\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532759\n/proc/self/ns/uts 4026532872' 78s ++ grep /proc/self/ns/uts 78s ++ awk '{print $2}' 78s + want=4026532872 78s + assert_file_has_content info.json 4026532872 78s + fpath=info.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532872 info.json 78s + assert_file_has_content json-status.json 4026532872 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e 4026532872 json-status.json 78s ok 32 namespace id info in info and json-status fd 78s + ok 'namespace id info in info and json-status fd' 78s + test_count=32 78s + echo ok 32 'namespace id info in info and json-status fd' 78s + command -v strace 78s + strace -h 78s + grep -v -e default 78s + grep -e fault 78s + strace -o /dev/null -f -e trace=prctl -e fault=prctl:when=39 bwrap --bind / / --tmpfs /tmp --die-with-parent --json-status-fd 42 true 78s bwrap: Dropping capability 38 from bounds: Function not implemented 78s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e '"exit-code": [0-9]' json-status.json 78s + ok 'pre-exec failure doesn'\''t include exit-code in json-status' 78s ok 33 pre-exec failure doesn't include exit-code in json-status 78s ok 34 exec failure doesn't include exit-code in json-status 78s + test_count=33 78s + echo ok 33 'pre-exec failure doesn'\''t include exit-code in json-status' 78s + notanexecutable=/ 78s + bwrap --bind / / --tmpfs /tmp --json-status-fd 42 / 78s bwrap: execvp /: Permission denied 78s + true 78s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 78s + fpath=json-status.json 78s + shift 78s + for re in "$@" 78s + grep -q -e '"exit-code": [0-9]' json-status.json 78s + ok 'exec failure doesn'\''t include exit-code in json-status' 78s + test_count=34 78s + echo ok 34 'exec failure doesn'\''t include exit-code in json-status' 78s + test -n '' 78s + BWRAP_RECURSE='bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc' 78s + bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello 78s bwrap: No permissions to create new namespace, likely because the kernel does not allow non-privileged user namespaces. See or . 78s ++ report_err 78s ++ local exit_status=1 78s Unexpected nonzero exit status 1 while running: $BWRAP_RECURSE -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello > recursive_proc.txt 78s + cleanup 78s + test -n '' 78s + test -f /var/tmp/tap-test.0tJ6A4/.testtmp 78s + rm -rf /var/tmp/tap-test.0tJ6A4 78s autopkgtest [00:30:13]: test upstream: -----------------------] 78s autopkgtest [00:30:13]: test upstream: - - - - - - - - - - results - - - - - - - - - - 78s upstream FAIL non-zero exit status 1 79s autopkgtest [00:30:14]: test userns: preparing testbed 79s Reading package lists... 79s Building dependency tree... 79s Reading state information... 79s Solving dependencies... 79s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 80s autopkgtest [00:30:15]: test userns: [----------------------- 80s # Unshare user ID 80s ok 1 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -u" should succeed 80s ok 2 80s ok 3 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -g" should succeed 80s ok 4 80s # Combine new /dev with new user namespace (#71) 80s ok 5 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /bin/sh -c ls -l /etc/passwd" should succeed 80s ok 6 80s ok 7 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /bin/sh -c echo /dev/*" should succeed 80s ok 8 80s ok 9 80s ok 10 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -u" should succeed 80s ok 11 80s ok 12 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -g" should succeed 80s ok 13 80s 1..13 81s autopkgtest [00:30:16]: test userns: -----------------------] 81s autopkgtest [00:30:16]: test userns: - - - - - - - - - - results - - - - - - - - - - 81s userns PASS 81s autopkgtest [00:30:16]: test upstream-as-root: preparing testbed 82s Reading package lists... 82s Building dependency tree... 82s Reading state information... 82s Solving dependencies... 82s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 83s autopkgtest [00:30:18]: test upstream-as-root: [----------------------- 83s +++ dirname tests/test-run.sh 83s ++ cd tests 83s ++ pwd 83s + srcd=/tmp/autopkgtest.eTXqKq/build.QoM/src/tests 83s + . /tmp/autopkgtest.eTXqKq/build.QoM/src/tests/libtest.sh 83s ++ set -e 83s ++ '[' -n '' ']' 83s +++ dirname tests/test-run.sh 83s ++ test_srcdir=tests 83s ++ '[' -n '' ']' 83s +++ dirname tests/test-run.sh 83s ++ test_builddir=tests 83s ++ . tests/libtest-core.sh 83s +++ type -p locale 83s ++++ locale -a 83s ++++ grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' 83s ++++ head -n1 83s +++ export LC_ALL=C.utf8 83s +++ LC_ALL=C.utf8 83s +++ '[' -z C.utf8 ']' 83s +++ unset LANGUAGE 83s +++ export G_DEBUG=fatal-warnings 83s +++ G_DEBUG=fatal-warnings 83s +++ trap report_err ERR 83s ++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sbin:/sbin 83s +++ mktemp -d /var/tmp/tap-test.XXXXXX 83s ++ tempdir=/var/tmp/tap-test.WeRg8y 83s ++ touch /var/tmp/tap-test.WeRg8y/.testtmp 83s ++ trap cleanup EXIT 83s ++ cd /var/tmp/tap-test.WeRg8y 83s ++ : bwrap 83s +++ type -p bwrap 83s ++ test -u /usr/bin/bwrap 83s ++ FUSE_DIR= 83s +++ grep ' fuse[. ]' /proc/self/mounts 83s +++ awk '{print $2}' 83s ++++ id -u 83s +++ grep user_id=0 83s +++ id -u 83s ++ test 0 = 0 83s ++ is_uidzero=true 83s ++ UNREADABLE=/root/.bashrc 83s ++ true 83s ++ UNREADABLE= 83s ++ '[' /lib -ef /usr/lib ']' 83s ++ BWRAP_RO_HOST_ARGS=$'--ro-bind /usr /usr\n --ro-bind /etc /etc\n --dir /var/tmp\n --symlink usr/lib /lib\n --symlink usr/lib64 /lib64\n --symlink usr/bin /bin\n --symlink usr/sbin /sbin\n --proc /proc\n --dev /dev' 83s ++ RUN='bwrap --bind / / --tmpfs /tmp' 83s ++ '[' -z '' ']' 83s ++ bwrap --bind / / --tmpfs /tmp true 83s ++ basename tests/test-run.sh 83s + bn=test-run.sh 83s + test_count=0 83s + bwrap --help 83s + assert_file_has_content help.txt 'usage: bwrap' 83s + fpath=help.txt 83s + shift 83s + for re in "$@" 83s + grep -q -e 'usage: bwrap' help.txt 83s ok 1 Help works 83s ok 2 # SKIP no FUSE support 83s + ok 'Help works' 83s + test_count=1 83s + echo ok 1 'Help works' 83s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 83s + '[' x '!=' x ']' 83s + ok_skip 'no FUSE support' 83s + ok '# SKIP' 'no FUSE support' 83s + test_count=2 83s + echo ok 2 '# SKIP' 'no FUSE support' 83s + bwrap --bind / / --tmpfs /tmp --proc /proc true 83s + ok 'can mount /proc with ' 83s ok 3 can mount /proc with 83s ok 4 can unshare network, create new /dev with 83s ok 5 cannot read /etc/shadow with 83s ok 6 # SKIP not sure what unreadable file to use 83s ok 7 can bind a destination over a symlink 83s ok 8 # SKIP no FUSE support 83s ok 9 can mount /proc with --unshare-user-try 83s + test_count=3 83s + echo ok 3 'can mount /proc with ' 83s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev true 83s + ok 'can unshare network, create new /dev with ' 83s + test_count=4 83s + echo ok 4 'can unshare network, create new /dev with ' 83s + echo -n 'expect EPERM: ' 83s expect EPERM: + test -n '' 83s + CAP= 83s + cat /etc/shadow 83s + cat /etc/shadow 83s + ok 'cannot read /etc/shadow with ' 83s + test_count=5 83s + echo ok 5 'cannot read /etc/shadow with ' 83s + '[' x '!=' x ']' 83s + ok_skip 'not sure what unreadable file to use' 83s + ok '# SKIP' 'not sure what unreadable file to use' 83s + test_count=6 83s + echo ok 6 '# SKIP' 'not sure what unreadable file to use' 83s + bwrap --bind / / --tmpfs /tmp --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 83s + ok 'can bind a destination over a symlink' 83s + test_count=7 83s + echo ok 7 'can bind a destination over a symlink' 83s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 83s + '[' x '!=' x ']' 83s + ok_skip 'no FUSE support' 83s + ok '# SKIP' 'no FUSE support' 83s + test_count=8 83s + echo ok 8 '# SKIP' 'no FUSE support' 83s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --proc /proc true 83s + ok 'can mount /proc with --unshare-user-try' 83s + test_count=9 83s + echo ok 9 'can mount /proc with --unshare-user-try' 83s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev true 83s ok 10 can unshare network, create new /dev with --unshare-user-try 83s ok 11 cannot read /etc/shadow with --unshare-user-try 83s ok 12 # SKIP not sure what unreadable file to use 83s + ok 'can unshare network, create new /dev with --unshare-user-try' 83s + test_count=10 83s + echo ok 10 'can unshare network, create new /dev with --unshare-user-try' 83s + echo -n 'expect EPERM: ' 83s expect EPERM: + test -n '' 83s + CAP= 83s + cat /etc/shadow 83s + cat /etc/shadow 83s + ok 'cannot read /etc/shadow with --unshare-user-try' 83s + test_count=11 83s + echo ok 11 'cannot read /etc/shadow with --unshare-user-try' 83s + '[' x '!=' x ']' 83s + ok_skip 'not sure what unreadable file to use' 83s + ok '# SKIP' 'not sure what unreadable file to use' 83s + test_count=12 83s + echo ok 12 '# SKIP' 'not sure what unreadable file to use' 83s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 83s + ok 'can bind a destination over a symlink' 83s + test_count=13 83s + echo ok 13 'can bind a destination over a symlink' 83s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 83s + '[' x '!=' x ']' 83s + ok_skip 'no FUSE support' 83s + ok '# SKIP' 'no FUSE support' 83s + test_count=14 83s + echo ok 14 '# SKIP' 'no FUSE support' 83s + bwrap --bind / / --tmpfs /tmp --unshare-pid --proc /proc true 83s + ok 'can mount /proc with --unshare-pid' 83s + test_count=15 83s + echo ok 15 'can mount /proc with --unshare-pid' 83s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev true 83s + ok 'can unshare network, create new /dev with --unshare-pid' 83s + test_count=16 83s + echo ok 16 'can unshare network, create new /dev with --unshare-pid' 83s + echo -n 'expect EPERM: ' 83s expect EPERM: + test -n '' 83s + CAP= 83s + cat /etc/shadow 83s + cat /etc/shadow 83s + ok 'cannot read /etc/shadow with --unshare-pid' 83s + test_count=17 83s + echo ok 17 'cannot read /etc/shadow with --unshare-pid' 83s + '[' x '!=' x ']' 83s + ok_skip 'not sure what unreadable file to use' 83s + ok '# SKIP' 'not sure what unreadable file to use' 83s + test_count=18 83s + echo ok 18 '# SKIP' 'not sure what unreadable file to use' 83s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 83s + ok 'can bind a destination over a symlink' 83s + test_count=19 83s + echo ok 19 'can bind a destination over a symlink' 83s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 83s + '[' x '!=' x ']' 83s + ok_skip 'no FUSE support' 83s + ok '# SKIP' 'no FUSE support' 83s + test_count=20 83s + echo ok 20 '# SKIP' 'no FUSE support' 83s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --proc /proc true 83s + ok 'can mount /proc with --unshare-user-try --unshare-pid' 83s + test_count=21 83s + echo ok 21 'can mount /proc with --unshare-user-try --unshare-pid' 83s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --dev /dev true 83s + ok 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 83s + test_count=22 83s + echo ok 22 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 83s + echo -n 'expect EPERM: ' 83s expect EPERM: + test -n '' 83s + CAP= 83s + cat /etc/shadow 83s + cat /etc/shadow 83s + ok 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 83s + test_count=23 83s + echo ok 23 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 83s + '[' x '!=' x ']' 83s + ok_skip 'not sure what unreadable file to use' 83s + ok '# SKIP' 'not sure what unreadable file to use' 83s + test_count=24 83s + echo ok 24 '# SKIP' 'not sure what unreadable file to use' 83s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 83s + ok 'can bind a destination over a symlink' 83s + test_count=25 83s + echo ok 25 'can bind a destination over a symlink' 83s + rm -f ./symlink 83s ++ pwd 83s ++ pwd 83s ++ pwd 83s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.WeRg8y /var/tmp/tap-test.WeRg8y --symlink /dev/null /var/tmp/tap-test.WeRg8y/symlink true 83s + readlink ./symlink 83s + assert_file_has_content target.txt /dev/null 83s + fpath=target.txt 83s + shift 83s + for re in "$@" 83s + grep -q -e /dev/null target.txt 83s + ok '--symlink works' 83s + test_count=26 83s + echo ok 26 '--symlink works' 83s ++ pwd 83s ++ pwd 83s ++ pwd 83s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.WeRg8y /var/tmp/tap-test.WeRg8y --symlink /dev/null /var/tmp/tap-test.WeRg8y/symlink true 83s + ok '--symlink is idempotent' 83s + test_count=27 83s + echo ok 27 '--symlink is idempotent' 83s ++ pwd 83s ++ pwd 83s ++ pwd 83s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.WeRg8y /var/tmp/tap-test.WeRg8y --symlink /dev/full /var/tmp/tap-test.WeRg8y/symlink true 83s + assert_file_has_content err.txt 'Can'\''t make symlink .*: existing destination is /dev/null' 83s + fpath=err.txt 83s + shift 83s + for re in "$@" 83s + grep -q -e 'Can'\''t make symlink .*: existing destination is /dev/null' err.txt 83s + ok '--symlink doesn'\''t overwrite a conflicting symlink' 83s + test_count=28 83s + echo ok 28 '--symlink doesn'\''t overwrite a conflicting symlink' 83s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dev /dev ls -al /dev/stdin /dev/stdout /dev/stderr /dev/null /dev/random /dev/urandom /dev/fd /dev/core 83s + ok 'all expected devices were created' 83s + test_count=29 83s + echo ok 29 'all expected devices were created' 83s + bwrap --bind / / --tmpfs /tmp --unshare-pid --as-pid-1 --bind / / bash -c 'echo $$' 83s + assert_file_has_content as_pid_1.txt 1 83s + fpath=as_pid_1.txt 83s + shift 83s + for re in "$@" 83s + grep -q -e 1 as_pid_1.txt 83s + ok 'can run as pid 1' 83s + test_count=30 83s + echo ok 30 'can run as pid 1' 83s + bwrap --bind / / --tmpfs /tmp --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'exit 42' 83s + assert_file_has_content info.json '"child-pid": [0-9]' 83s + fpath=info.json 83s + shift 83s + for re in "$@" 83s + grep -q -e '"child-pid": [0-9]' info.json 83s + assert_file_has_content json-status.json '"child-pid": [0-9]' 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e '"child-pid": [0-9]' json-status.json 83s + assert_file_has_content_literal json-status.json '"exit-code": 42' 83s + fpath=json-status.json 83s + shift 83s + for s in "$@" 83s + grep -q -F -e '"exit-code": 42' json-status.json 83s + ok 'info and json-status fd' 83s + test_count=31 83s + echo ok 31 'info and json-status fd' 83s ++ bwrap --bind / / --tmpfs /tmp --proc /proc --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'stat -L -c "%n %i" /proc/self/ns/*' 83s + DATA=$'/proc/self/ns/cgroup 4026532257\n/proc/self/ns/ipc 4026532255\n/proc/self/ns/mnt 4026532026\n/proc/self/ns/net 4026532258\n/proc/self/ns/pid 4026532256\n/proc/self/ns/pid_for_children 4026532256\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532025\n/proc/self/ns/uts 4026532029' 83s + for NS in "ipc" "mnt" "net" "pid" "uts" 83s ++ echo $'/proc/self/ns/cgroup 4026532257\n/proc/self/ns/ipc 4026532255\n/proc/self/ns/mnt 4026532026\n/proc/self/ns/net 4026532258\n/proc/self/ns/pid 4026532256\n/proc/self/ns/pid_for_children 4026532256\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532025\n/proc/self/ns/uts 4026532029' 83s ++ grep /proc/self/ns/ipc 83s ++ awk '{print $2}' 83s + want=4026532255 83s + assert_file_has_content info.json 4026532255 83s + fpath=info.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532255 info.json 83s + assert_file_has_content json-status.json 4026532255 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532255 json-status.json 83s + for NS in "ipc" "mnt" "net" "pid" "uts" 83s ++ echo $'/proc/self/ns/cgroup 4026532257\n/proc/self/ns/ipc 4026532255\n/proc/self/ns/mnt 4026532026\n/proc/self/ns/net 4026532258\n/proc/self/ns/pid 4026532256\n/proc/self/ns/pid_for_children 4026532256\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532025\n/proc/self/ns/uts 4026532029' 83s ++ grep /proc/self/ns/mnt 83s ++ awk '{print $2}' 83s + want=4026532026 83s + assert_file_has_content info.json 4026532026 83s + fpath=info.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532026 info.json 83s ok 13 can bind a destination over a symlink 83s ok 14 # SKIP no FUSE support 83s ok 15 can mount /proc with --unshare-pid 83s ok 16 can unshare network, create new /dev with --unshare-pid 83s ok 17 cannot read /etc/shadow with --unshare-pid 83s ok 18 # SKIP not sure what unreadable file to use 83s ok 19 can bind a destination over a symlink 83s ok 20 # SKIP no FUSE support 83s ok 21 can mount /proc with --unshare-user-try --unshare-pid 83s ok 22 can unshare network, create new /dev with --unshare-user-try --unshare-pid 83s ok 23 cannot read /etc/shadow with --unshare-user-try --unshare-pid 83s ok 24 # SKIP not sure what unreadable file to use 83s ok 25 can bind a destination over a symlink 83s ok 26 --symlink works 83s ok 27 --symlink is idempotent 83s ok 28 --symlink doesn't overwrite a conflicting symlink 83s ok 29 all expected devices were created 83s ok 30 can run as pid 1 83s ok 31 info and json-status fd 83s + assert_file_has_content json-status.json 4026532026 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532026 json-status.json 83s + for NS in "ipc" "mnt" "net" "pid" "uts" 83s ++ echo $'/proc/self/ns/cgroup 4026532257\n/proc/self/ns/ipc 4026532255\n/proc/self/ns/mnt 4026532026\n/proc/self/ns/net 4026532258\n/proc/self/ns/pid 4026532256\n/proc/self/ns/pid_for_children 4026532256\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532025\n/proc/self/ns/uts 4026532029' 83s ++ grep /proc/self/ns/net 83s ++ awk '{print $2}' 83s + want=4026532258 83s + assert_file_has_content info.json 4026532258 83s + fpath=info.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532258 info.json 83s + assert_file_has_content json-status.json 4026532258 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532258 json-status.json 83s + for NS in "ipc" "mnt" "net" "pid" "uts" 83s ++ echo $'/proc/self/ns/cgroup 4026532257\n/proc/self/ns/ipc 4026532255\n/proc/self/ns/mnt 4026532026\n/proc/self/ns/net 4026532258\n/proc/self/ns/pid 4026532256\n/proc/self/ns/pid_for_children 4026532256\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532025\n/proc/self/ns/uts 4026532029' 83s ++ grep /proc/self/ns/pid 83s ++ awk '{print $2}' 83s + want=$'4026532256\n4026532256' 83s + assert_file_has_content info.json $'4026532256\n4026532256' 83s + fpath=info.json 83s + shift 83s + for re in "$@" 83s + grep -q -e $'4026532256\n4026532256' info.json 83s + assert_file_has_content json-status.json $'4026532256\n4026532256' 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e $'4026532256\n4026532256' json-status.json 83s + for NS in "ipc" "mnt" "net" "pid" "uts" 83s ++ echo $'/proc/self/ns/cgroup 4026532257\n/proc/self/ns/ipc 4026532255\n/proc/self/ns/mnt 4026532026\n/proc/self/ns/net 4026532258\n/proc/self/ns/pid 4026532256\n/proc/self/ns/pid_for_children 4026532256\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532025\n/proc/self/ns/uts 4026532029' 83s ++ grep /proc/self/ns/uts 83s ++ awk '{print $2}' 83s + want=4026532029 83s + assert_file_has_content info.json 4026532029 83s + fpath=info.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532029 info.json 83s + assert_file_has_content json-status.json 4026532029 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e 4026532029 json-status.json 83s + ok 'namespace id info in info and json-status fd' 83s + test_count=32 83s + echo ok 32 'namespace id info in info and json-status fd' 83s + command -v strace 83s + strace -h 83s + grep -v -e default 83s + grep -e fault 83s + strace -o /dev/null -f -e trace=prctl -e fault=prctl:when=39 bwrap --bind / / --tmpfs /tmp --die-with-parent --json-status-fd 42 true 83s bwrap: Adding ambient capability 36ok 32 namespace id info in info and json-status fd 83s : Function not implemented 83s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e '"exit-code": [0-9]' json-status.json 83s + ok 'pre-exec failure doesn'\''t include exit-code in json-status' 83s + test_count=33 83s + echo ok 33 'pre-exec failure doesn'\''t include exit-code in json-status' 83s + notanexecutable=/ 83s + bwrap --bind / / --tmpfs /tmp --json-status-fd 42 / 83s bwrap: execvp /: Permission denied 83s + true 83s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 83s + fpath=json-status.json 83s + shift 83s + for re in "$@" 83s + grep -q -e '"exit-code": [0-9]' json-status.json 83s + ok 'exec failure doesn'\''t include exit-code in json-status' 83s + test_count=34 83s + echo ok 34 'exec failure doesn'\''t include exit-code in json-status' 83s + test -n '' 83s + BWRAP_RECURSE='bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc' 83s + bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello 83s bwrap: No permissions to create new namespace, likely because the kernel does not allow non-privileged user namespaces. See or . 83s ++ report_err 83s ++ local exit_status=1 83s Unexpected nonzero exit status 1 while running: $BWRAP_RECURSE -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello > recursive_proc.txt 83s + cleanup 83s + test -n '' 83s + test -f /var/tmp/tap-test.WeRg8y/.testtmp 83s + rm -rf /var/tmp/tap-test.WeRg8y 83s ok 33 pre-exec failure doesn't include exit-code in json-status 83s ok 34 exec failure doesn't include exit-code in json-status 83s autopkgtest [00:30:18]: test upstream-as-root: -----------------------] 84s autopkgtest [00:30:19]: test upstream-as-root: - - - - - - - - - - results - - - - - - - - - - 84s upstream-as-root FAIL non-zero exit status 1 84s autopkgtest [00:30:19]: @@@@@@@@@@@@@@@@@@@@ summary 84s basic PASS 84s dev PASS 84s net PASS 84s upstream FAIL non-zero exit status 1 84s userns PASS 84s upstream-as-root FAIL non-zero exit status 1