0s autopkgtest [08:37:26]: starting date and time: 2025-12-04 08:37:26+0000 0s autopkgtest [08:37:26]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [08:37:26]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.8ffsimx0/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 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-arm64-16.secgroup --name adt-resolute-arm64-bubblewrap-20251204-083726-juju-7f2275-prod-proposed-migration-environment-2-ac08d816-19e1-4225-9ed0-fc9ce2436bdd --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-bubblewrap-20251204-083726-juju-7f2275-prod-proposed-migration-environment-2-ac08d816-19e1-4225-9ed0-fc9ce2436bdd from image adt/ubuntu-resolute-arm64-server-20251203.img (UUID cfeb7bb3-622b-4d7d-a373-c5ae54145875)... 65s autopkgtest [08:38:31]: testbed dpkg architecture: arm64 65s autopkgtest [08:38:31]: testbed apt version: 3.1.12 66s autopkgtest [08:38:32]: @@@@@@@@@@@@@@@@@@@@ test bed setup 66s autopkgtest [08:38:32]: testbed release detected to be: None 67s autopkgtest [08:38:33]: updating testbed package index (apt update) 68s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 69s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 69s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 69s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 69s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.1 kB] 69s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [928 kB] 69s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [152 kB] 69s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [211 kB] 69s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [6600 B] 69s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [120 B] 69s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [719 kB] 69s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [19.0 kB] 69s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [8768 B] 69s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [644 B] 70s Fetched 2192 kB in 1s (1586 kB/s) 71s Reading package lists... 72s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 72s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 72s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 72s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 73s Reading package lists... 73s Reading package lists... 73s Building dependency tree... 73s Reading state information... 73s Calculating upgrade... 74s The following packages will be upgraded: 74s cloud-guest-utils fwupd libflashrom1 libfwupd3 libinih1 libpython3-stdlib 74s python3 python3-gdbm python3-minimal 74s 9 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 74s Need to get 6018 kB of archives. 74s After this operation, 128 kB of additional disk space will be used. 74s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-minimal arm64 3.13.9-2 [28.1 kB] 75s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3 arm64 3.13.9-2 [23.0 kB] 75s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-stdlib arm64 3.13.9-2 [10.8 kB] 75s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-gdbm arm64 3.13.9-2 [11.0 kB] 75s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 libflashrom1 arm64 1.6.0-2ubuntu1 [146 kB] 75s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 fwupd arm64 2.0.18-1 [5644 kB] 76s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libfwupd3 arm64 2.0.18-1 [130 kB] 76s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libinih1 arm64 61-1ubuntu1 [7738 B] 76s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 cloud-guest-utils all 0.33-1build1 [18.7 kB] 76s dpkg-preconfigure: unable to re-open stdin: No such file or directory 76s Fetched 6018 kB in 2s (3009 kB/s) 77s (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 ... 133841 files and directories currently installed.) 77s Preparing to unpack .../python3-minimal_3.13.9-2_arm64.deb ... 77s Unpacking python3-minimal (3.13.9-2) over (3.13.7-1) ... 77s Setting up python3-minimal (3.13.9-2) ... 77s (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 ... 133841 files and directories currently installed.) 77s Preparing to unpack .../0-python3_3.13.9-2_arm64.deb ... 77s running python pre-rtupdate hooks for python3.13... 77s Unpacking python3 (3.13.9-2) over (3.13.7-1) ... 77s Preparing to unpack .../1-libpython3-stdlib_3.13.9-2_arm64.deb ... 77s Unpacking libpython3-stdlib:arm64 (3.13.9-2) over (3.13.7-1) ... 77s Preparing to unpack .../2-python3-gdbm_3.13.9-2_arm64.deb ... 77s Unpacking python3-gdbm (3.13.9-2) over (3.13.9-1) ... 77s Preparing to unpack .../3-libflashrom1_1.6.0-2ubuntu1_arm64.deb ... 77s Unpacking libflashrom1:arm64 (1.6.0-2ubuntu1) over (1.4.0-3ubuntu1) ... 77s Preparing to unpack .../4-fwupd_2.0.18-1_arm64.deb ... 78s Unpacking fwupd (2.0.18-1) over (2.0.17-6) ... 78s Preparing to unpack .../5-libfwupd3_2.0.18-1_arm64.deb ... 78s Unpacking libfwupd3:arm64 (2.0.18-1) over (2.0.17-6) ... 78s Preparing to unpack .../6-libinih1_61-1ubuntu1_arm64.deb ... 78s Unpacking libinih1:arm64 (61-1ubuntu1) over (59-1ubuntu1) ... 78s Preparing to unpack .../7-cloud-guest-utils_0.33-1build1_all.deb ... 78s Unpacking cloud-guest-utils (0.33-1build1) over (0.33-1) ... 78s Setting up python3-gdbm (3.13.9-2) ... 78s Setting up libinih1:arm64 (61-1ubuntu1) ... 78s Setting up libfwupd3:arm64 (2.0.18-1) ... 78s Setting up libflashrom1:arm64 (1.6.0-2ubuntu1) ... 78s Setting up fwupd (2.0.18-1) ... 79s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 79s fwupd.service is a disabled or a static unit not running, not starting it. 79s Setting up libpython3-stdlib:arm64 (3.13.9-2) ... 79s Setting up python3 (3.13.9-2) ... 79s running python rtupdate hooks for python3.13... 79s running python post-rtupdate hooks for python3.13... 79s Setting up cloud-guest-utils (0.33-1build1) ... 79s Processing triggers for man-db (2.13.1-1) ... 80s Processing triggers for dbus (1.16.2-2ubuntu2) ... 80s Processing triggers for libc-bin (2.42-2ubuntu2) ... 80s autopkgtest [08:38:46]: upgrading testbed (apt dist-upgrade and autopurge) 81s Reading package lists... 81s Building dependency tree... 81s Reading state information... 81s Calculating upgrade... 82s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 82s Reading package lists... 82s Building dependency tree... 82s Reading state information... 82s Solving dependencies... 83s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 83s autopkgtest [08:38:49]: rebooting testbed after setup commands that affected boot 111s autopkgtest [08:39:17]: testbed running kernel: Linux 6.17.0-6-generic #6-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 7 14:22:06 UTC 2025 116s autopkgtest [08:39:22]: @@@@@@@@@@@@@@@@@@@@ apt-source bubblewrap 121s Get:1 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (dsc) [2685 B] 121s Get:2 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (tar) [115 kB] 121s Get:3 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (asc) [833 B] 121s Get:4 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (diff) [12.6 kB] 121s gpgv: Signature made Mon Dec 30 11:46:18 2024 UTC 121s gpgv: using RSA key 7A073AD1AE694FA25BFF62E5235C099D3EB33076 121s gpgv: Can't check signature: No public key 121s dpkg-source: warning: cannot verify inline signature for ./bubblewrap_0.11.0-2.dsc: no acceptable signature found 121s autopkgtest [08:39:27]: testing package bubblewrap version 0.11.0-2 122s autopkgtest [08:39:28]: build not needed 125s autopkgtest [08:39:31]: test basic: preparing testbed 125s Reading package lists... 125s Building dependency tree... 125s Reading state information... 125s Solving dependencies... 126s The following NEW packages will be installed: 126s bubblewrap libio-pty-perl libipc-run-perl 131s 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 131s Need to get 178 kB of archives. 131s After this operation, 596 kB of additional disk space will be used. 131s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 bubblewrap arm64 0.11.0-2 [52.8 kB] 131s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libio-pty-perl arm64 1:1.20-1build3 [31.3 kB] 131s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libipc-run-perl all 20250809.0-1 [94.4 kB] 131s Fetched 178 kB in 5s (34.6 kB/s) 131s Selecting previously unselected package bubblewrap. 131s (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 ... 133840 files and directories currently installed.) 131s Preparing to unpack .../bubblewrap_0.11.0-2_arm64.deb ... 132s Unpacking bubblewrap (0.11.0-2) ... 132s Selecting previously unselected package libio-pty-perl. 132s Preparing to unpack .../libio-pty-perl_1%3a1.20-1build3_arm64.deb ... 132s Unpacking libio-pty-perl (1:1.20-1build3) ... 132s Selecting previously unselected package libipc-run-perl. 132s Preparing to unpack .../libipc-run-perl_20250809.0-1_all.deb ... 132s Unpacking libipc-run-perl (20250809.0-1) ... 132s Setting up bubblewrap (0.11.0-2) ... 132s Setting up libio-pty-perl (1:1.20-1build3) ... 132s Setting up libipc-run-perl (20250809.0-1) ... 132s Processing triggers for systemd (257.9-0ubuntu2) ... 132s Processing triggers for man-db (2.13.1-1) ... 132s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 135s autopkgtest [08:39:41]: test basic: [----------------------- 136s ok 1 - "bwrap --ro-bind / / /usr/bin/id -u" should succeed 136s ok 2 136s ok 3 - "bwrap --ro-bind / / /usr/bin/id -g" should succeed 136s ok 4 136s 1..4 136s autopkgtest [08:39:42]: test basic: -----------------------] 137s autopkgtest [08:39:43]: test basic: - - - - - - - - - - results - - - - - - - - - - 137s basic PASS 139s autopkgtest [08:39:45]: test dev: preparing testbed 139s Reading package lists... 139s Building dependency tree... 139s Reading state information... 140s Solving dependencies... 140s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 141s autopkgtest [08:39:47]: test dev: [----------------------- 141s ok 1 - "bwrap --ro-bind / / --dev /dev //bin/sh -c echo /dev/*" should succeed 141s ok 2 141s ok 3 141s ok 4 141s ok 5 141s ok 6 141s ok 7 141s ok 8 141s ok 9 141s ok 10 141s ok 11 141s ok 12 141s ok 13 141s ok 14 141s ok 15 141s ok 16 141s ok 17 141s ok 18 141s ok 19 141s ok 20 141s ok 21 141s ok 22 141s 1..22 142s autopkgtest [08:39:48]: test dev: -----------------------] 142s dev PASS 142s autopkgtest [08:39:48]: test dev: - - - - - - - - - - results - - - - - - - - - - 143s autopkgtest [08:39:49]: test net: preparing testbed 143s Reading package lists... 143s Building dependency tree... 143s Reading state information... 143s Solving dependencies... 144s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 145s autopkgtest [08:39:51]: test net: [----------------------- 145s ok 1 - "bwrap --ro-bind / / --unshare-net /bin/sh -c ip link ls" should succeed 145s ok 2 145s ok 3 145s ok 4 145s ok 5 145s 1..5 145s autopkgtest [08:39:51]: test net: -----------------------] 146s autopkgtest [08:39:52]: test net: - - - - - - - - - - results - - - - - - - - - - 146s net PASS 147s autopkgtest [08:39:53]: test upstream: preparing testbed 147s Reading package lists... 147s Building dependency tree... 147s Reading state information... 147s Solving dependencies... 148s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 149s autopkgtest [08:39:55]: test upstream: [----------------------- 149s +++ dirname tests/test-run.sh 149s ++ cd tests 149s ++ pwd 149s + srcd=/tmp/autopkgtest.ZhW8oa/build.A6B/src/tests 149s + . /tmp/autopkgtest.ZhW8oa/build.A6B/src/tests/libtest.sh 149s ++ set -e 149s ++ '[' -n '' ']' 149s +++ dirname tests/test-run.sh 149s ++ test_srcdir=tests 149s ++ '[' -n '' ']' 149s +++ dirname tests/test-run.sh 149s ++ test_builddir=tests 149s ++ . tests/libtest-core.sh 149s +++ type -p locale 149s ++++ locale -a 149s ++++ grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' 149s ++++ head -n1 149s +++ export LC_ALL=C.utf8 149s +++ LC_ALL=C.utf8 149s +++ '[' -z C.utf8 ']' 149s +++ unset LANGUAGE 149s +++ export G_DEBUG=fatal-warnings 149s +++ G_DEBUG=fatal-warnings 149s +++ trap report_err ERR 149s ++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sbin:/sbin 149s +++ mktemp -d /var/tmp/tap-test.XXXXXX 149s ++ tempdir=/var/tmp/tap-test.YScMFy 149s ++ touch /var/tmp/tap-test.YScMFy/.testtmp 149s ++ trap cleanup EXIT 149s ok 1 Help works 149s ok 2 # SKIP no FUSE support 149s ok 3 can mount /proc with 149s ok 4 can unshare network, create new /dev with 149s ok 5 cannot read /etc/shadow with 149s ok 6 cannot read /root/.bashrc with 149s ok 7 can bind a destination over a symlink 149s ++ cd /var/tmp/tap-test.YScMFy 149s ++ : bwrap 149s +++ type -p bwrap 149s ++ test -u /usr/bin/bwrap 149s ++ FUSE_DIR= 149s +++ grep ' fuse[. ]' /proc/self/mounts 149s +++ awk '{print $2}' 149s ++++ id -u 149s +++ grep user_id=1000 149s +++ id -u 149s ++ test 1000 = 0 149s ++ is_uidzero=false 149s ++ UNREADABLE=/root/.bashrc 149s ++ false 149s +++ dirname /root/.bashrc 149s ++ test -x /root 149s ++ '[' /lib -ef /usr/lib ']' 149s ++ 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' 149s ++ RUN='bwrap --bind / / --tmpfs /tmp' 149s ++ '[' -z '' ']' 149s ++ bwrap --bind / / --tmpfs /tmp true 149s ++ basename tests/test-run.sh 149s + bn=test-run.sh 149s + test_count=0 149s + bwrap --help 149s + assert_file_has_content help.txt 'usage: bwrap' 149s + fpath=help.txt 149s + shift 149s + for re in "$@" 149s + grep -q -e 'usage: bwrap' help.txt 149s + ok 'Help works' 149s + test_count=1 149s + echo ok 1 'Help works' 149s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 149s + '[' x '!=' x ']' 149s + ok_skip 'no FUSE support' 149s + ok '# SKIP' 'no FUSE support' 149s + test_count=2 149s + echo ok 2 '# SKIP' 'no FUSE support' 149s + bwrap --bind / / --tmpfs /tmp --proc /proc true 149s + ok 'can mount /proc with ' 149s + test_count=3 149s + echo ok 3 'can mount /proc with ' 149s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev true 149s + ok 'can unshare network, create new /dev with ' 149s + test_count=4 149s + echo ok 4 'can unshare network, create new /dev with ' 149s + echo -n 'expect EPERM: ' 149s expect EPERM: + test -n '' 149s + CAP= 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 149s cat: /tmp/foo: Permission denied (os error 13) 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + ok 'cannot read /etc/shadow with ' 149s + test_count=5 149s + echo ok 5 'cannot read /etc/shadow with ' 149s + '[' x/root/.bashrc '!=' x ']' 149s + echo -n 'expect EPERM: ' 149s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 149s bwrap: Can't find source path /root/.bashrc: Permission denied 149s + ok 'cannot read /root/.bashrc with ' 149s + test_count=6 149s + echo ok 6 'cannot read /root/.bashrc with ' 149s + bwrap --bind / / --tmpfs /tmp --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 149s + ok 'can bind a destination over a symlink' 149s + test_count=7 149s + echo ok 7 'can bind a destination over a symlink' 149s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 149s ok 8 # SKIP no FUSE support 149s ok 9 can mount /proc with --unshare-user-try 149s ok 10 can unshare network, create new /dev with --unshare-user-try 149s + '[' x '!=' x ']' 149s + ok_skip 'no FUSE support' 149s + ok '# SKIP' 'no FUSE support' 149s + test_count=8 149s + echo ok 8 '# SKIP' 'no FUSE support' 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --proc /proc true 149s + ok 'can mount /proc with --unshare-user-try' 149s + test_count=9 149s + echo ok 9 'can mount /proc with --unshare-user-try' 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev true 149s + ok 'can unshare network, create new /dev with --unshare-user-try' 149s + test_count=10 149s + echo ok 10 'can unshare network, create new /dev with --unshare-user-try' 149s + echo -n 'expect EPERM: ' 149s expect EPERM: + test -n '' 149s + CAP= 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 149s cat: /tmp/foo: Permission denied (os error 13) 149s ok 11 cannot read /etc/shadow with --unshare-user-try 149s ok 12 cannot read /root/.bashrc with --unshare-user-try 149s ok 13 can bind a destination over a symlink 149s ok 14 # SKIP no FUSE support 149s ok 15 can mount /proc with --unshare-pid 149s ok 16 can unshare network, create new /dev with --unshare-pid 149s ok 17 cannot read /etc/shadow with --unshare-pid 149s ok 18 cannot read /root/.bashrc with --unshare-pid 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + ok 'cannot read /etc/shadow with --unshare-user-try' 149s + test_count=11 149s + echo ok 11 'cannot read /etc/shadow with --unshare-user-try' 149s + '[' x/root/.bashrc '!=' x ']' 149s + echo -n 'expect EPERM: ' 149s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 149s bwrap: Can't find source path /root/.bashrc: Permission denied 149s + ok 'cannot read /root/.bashrc with --unshare-user-try' 149s + test_count=12 149s + echo ok 12 'cannot read /root/.bashrc with --unshare-user-try' 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 149s + ok 'can bind a destination over a symlink' 149s + test_count=13 149s + echo ok 13 'can bind a destination over a symlink' 149s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 149s + '[' x '!=' x ']' 149s + ok_skip 'no FUSE support' 149s + ok '# SKIP' 'no FUSE support' 149s + test_count=14 149s + echo ok 14 '# SKIP' 'no FUSE support' 149s + bwrap --bind / / --tmpfs /tmp --unshare-pid --proc /proc true 149s + ok 'can mount /proc with --unshare-pid' 149s + test_count=15 149s + echo ok 15 'can mount /proc with --unshare-pid' 149s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev true 149s + ok 'can unshare network, create new /dev with --unshare-pid' 149s + test_count=16 149s + echo ok 16 'can unshare network, create new /dev with --unshare-pid' 149s + echo -n 'expect EPERM: ' 149s expect EPERM: + test -n '' 149s + CAP= 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 149s cat: /tmp/foo: Permission denied (os error 13) 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + ok 'cannot read /etc/shadow with --unshare-pid' 149s + test_count=17 149s + echo ok 17 'cannot read /etc/shadow with --unshare-pid' 149s + '[' x/root/.bashrc '!=' x ']' 149s + echo -n 'expect EPERM: ' 149s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 149s bwrap: Can't find source path /root/.bashrc: Permission denied 149s + ok 'cannot read /root/.bashrc with --unshare-pid' 149s + test_count=18 149s + echo ok 18 'cannot read /root/.bashrc with --unshare-pid' 149s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 149s ok 19 can bind a destination over a symlink 149s ok 20 # SKIP no FUSE support 149s ok 21 can mount /proc with --unshare-user-try --unshare-pid 149s ok 22 can unshare network, create new /dev with --unshare-user-try --unshare-pid 149s + ok 'can bind a destination over a symlink' 149s + test_count=19 149s + echo ok 19 'can bind a destination over a symlink' 149s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 149s + '[' x '!=' x ']' 149s + ok_skip 'no FUSE support' 149s + ok '# SKIP' 'no FUSE support' 149s + test_count=20 149s + echo ok 20 '# SKIP' 'no FUSE support' 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --proc /proc true 149s + ok 'can mount /proc with --unshare-user-try --unshare-pid' 149s + test_count=21 149s + echo ok 21 'can mount /proc with --unshare-user-try --unshare-pid' 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --dev /dev true 149s + ok 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 149s + test_count=22 149s + echo ok 22 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 149s + echo -n 'expect EPERM: ' 149s expect EPERM: + test -n '' 149s + CAP= 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 149s cat: /tmp/foo: Permission denied (os error 13) 149s + cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 149s cat: /etc/shadow: Permission denied (os error 13) 149s + ok 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 149s + test_count=23 149s + echo ok 23 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 149s + '[' x/root/.bashrc '!=' x ']' 149s + echo -n 'expect EPERM: ' 149s 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 149s ok 23 cannot read /etc/shadow with --unshare-user-try --unshare-pid 149s ok 24 cannot read /root/.bashrc with --unshare-user-try --unshare-pid 149s ok 25 can bind a destination over a symlink 149s ok 26 --symlink works 149s ok 27 --symlink is idempotent 149s ok 28 --symlink doesn't overwrite a conflicting symlink 149s bwrap: Can't find source path /root/.bashrc: Permission denied 149s + ok 'cannot read /root/.bashrc with --unshare-user-try --unshare-pid' 149s + test_count=24 149s + echo ok 24 'cannot read /root/.bashrc with --unshare-user-try --unshare-pid' 149s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 149s + ok 'can bind a destination over a symlink' 149s + test_count=25 149s + echo ok 25 'can bind a destination over a symlink' 149s + rm -f ./symlink 149s ++ pwd 149s ++ pwd 149s ++ pwd 149s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.YScMFy /var/tmp/tap-test.YScMFy --symlink /dev/null /var/tmp/tap-test.YScMFy/symlink true 149s + readlink ./symlink 149s + assert_file_has_content target.txt /dev/null 149s + fpath=target.txt 149s + shift 149s + for re in "$@" 149s + grep -q -e /dev/null target.txt 149s + ok '--symlink works' 149s + test_count=26 149s + echo ok 26 '--symlink works' 149s ++ pwd 149s ++ pwd 149s ++ pwd 149s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.YScMFy /var/tmp/tap-test.YScMFy --symlink /dev/null /var/tmp/tap-test.YScMFy/symlink true 149s + ok '--symlink is idempotent' 149s + test_count=27 149s + echo ok 27 '--symlink is idempotent' 149s ++ pwd 149s ++ pwd 149s ++ pwd 149s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.YScMFy /var/tmp/tap-test.YScMFy --symlink /dev/full /var/tmp/tap-test.YScMFy/symlink true 149s + assert_file_has_content err.txt 'Can'\''t make symlink .*: existing destination is /dev/null' 149s + fpath=err.txt 149s + shift 149s + for re in "$@" 149s + grep -q -e 'Can'\''t make symlink .*: existing destination is /dev/null' err.txt 149s + ok '--symlink doesn'\''t overwrite a conflicting symlink' 149s + test_count=28 149s + echo ok 28 '--symlink doesn'\''t overwrite a conflicting symlink' 149s + 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 149s + ok 'all expected devices were created' 149s + test_count=29 149s + echo ok 29 'all expected devices were created' 149s + bwrap --bind / / --tmpfs /tmp --unshare-pid --as-pid-1 --bind / / bash -c 'echo $$' 149s + assert_file_has_content as_pid_1.txt 1 149s + fpath=as_pid_1.txt 149s + shift 149s + for re in "$@" 149s + grep -q -e 1 as_pid_1.txt 149s + ok 'can run as pid 1' 149s + test_count=30 149s + echo ok 30 'can run as pid 1' 149s + bwrap --bind / / --tmpfs /tmp --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'exit 42' 149s + assert_file_has_content info.json '"child-pid": [0-9]' 149s + fpath=info.json 149s + shift 149s + for re in "$@" 149s + grep -q -e '"child-pid": [0-9]' info.json 149s + assert_file_has_content json-status.json '"child-pid": [0-9]' 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e '"child-pid": [0-9]' json-status.json 149s + assert_file_has_content_literal json-status.json '"exit-code": 42' 149s + fpath=json-status.json 149s + shift 149s + for s in "$@" 149s + grep -q -F -e '"exit-code": 42' json-status.json 149s + ok 'info and json-status fd' 149s + test_count=31 149s + echo ok 31 'info and json-status fd' 149s ++ 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/*' 149s ok 29 all expected devices were created 149s ok 30 can run as pid 1 149s ok 31 info and json-status fd 149s + DATA=$'/proc/self/ns/cgroup 4026532446\n/proc/self/ns/ipc 4026532444\n/proc/self/ns/mnt 4026532442\n/proc/self/ns/net 4026532447\n/proc/self/ns/pid 4026532445\n/proc/self/ns/pid_for_children 4026532445\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532443' 149s + for NS in "ipc" "mnt" "net" "pid" "uts" 149s ++ echo $'/proc/self/ns/cgroup 4026532446\n/proc/self/ns/ipc 4026532444\n/proc/self/ns/mnt 4026532442\n/proc/self/ns/net 4026532447\n/proc/self/ns/pid 4026532445\n/proc/self/ns/pid_for_children 4026532445\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532443' 149s ++ grep /proc/self/ns/ipc 149s ++ awk '{print $2}' 149s + want=4026532444 149s + assert_file_has_content info.json 4026532444 149s + fpath=info.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532444 info.json 149s + assert_file_has_content json-status.json 4026532444 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532444 json-status.json 149s + for NS in "ipc" "mnt" "net" "pid" "uts" 149s ++ echo $'/proc/self/ns/cgroup 4026532446\n/proc/self/ns/ipc 4026532444\n/proc/self/ns/mnt 4026532442\n/proc/self/ns/net 4026532447\n/proc/self/ns/pid 4026532445\n/proc/self/ns/pid_for_children 4026532445\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532443' 149s ++ grep /proc/self/ns/mnt 149s ++ awk '{print $2}' 149s + want=4026532442 149s + assert_file_has_content info.json 4026532442 149s + fpath=info.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532442 info.json 149s + assert_file_has_content json-status.json 4026532442 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532442 json-status.json 149s + for NS in "ipc" "mnt" "net" "pid" "uts" 149s ok 32 namespace id info in info and json-status fd 149s ++ echo $'/proc/self/ns/cgroup 4026532446\n/proc/self/ns/ipc 4026532444\n/proc/self/ns/mnt 4026532442\n/proc/self/ns/net 4026532447\n/proc/self/ns/pid 4026532445\n/proc/self/ns/pid_for_children 4026532445\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532443' 149s ++ grep /proc/self/ns/net 149s ++ awk '{print $2}' 149s + want=4026532447 149s + assert_file_has_content info.json 4026532447 149s + fpath=info.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532447 info.json 149s + assert_file_has_content json-status.json 4026532447 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532447 json-status.json 149s + for NS in "ipc" "mnt" "net" "pid" "uts" 149s ++ echo $'/proc/self/ns/cgroup 4026532446\n/proc/self/ns/ipc 4026532444\n/proc/self/ns/mnt 4026532442\n/proc/self/ns/net 4026532447\n/proc/self/ns/pid 4026532445\n/proc/self/ns/pid_for_children 4026532445\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532443' 149s ++ grep /proc/self/ns/pid 149s ++ awk '{print $2}' 149s + want=$'4026532445\n4026532445' 149s + assert_file_has_content info.json $'4026532445\n4026532445' 149s + fpath=info.json 149s + shift 149s + for re in "$@" 149s + grep -q -e $'4026532445\n4026532445' info.json 149s + assert_file_has_content json-status.json $'4026532445\n4026532445' 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e $'4026532445\n4026532445' json-status.json 149s + for NS in "ipc" "mnt" "net" "pid" "uts" 149s ++ echo $'/proc/self/ns/cgroup 4026532446\n/proc/self/ns/ipc 4026532444\n/proc/self/ns/mnt 4026532442\n/proc/self/ns/net 4026532447\n/proc/self/ns/pid 4026532445\n/proc/self/ns/pid_for_children 4026532445\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532443' 149s ++ grep /proc/self/ns/uts 149s ++ awk '{print $2}' 149s + want=4026532443 149s + assert_file_has_content info.json 4026532443 149s + fpath=info.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532443 info.json 149s + assert_file_has_content json-status.json 4026532443 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e 4026532443 json-status.json 149s + ok 'namespace id info in info and json-status fd' 149s + test_count=32 149s + echo ok 32 'namespace id info in info and json-status fd' 149s + command -v strace 149s + strace -h 149s + grep -v -e default 149s + grep -e fault 149s + 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 149s ok 33 pre-exec failure doesn't include exit-code in json-status 149s bwrap: Dropping capability 38 from bounds: Function not implemented 149s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e '"exit-code": [0-9]' json-status.json 149s + ok 'pre-exec failure doesn'\''t include exit-code in json-status' 149s + test_count=33 149s + echo ok 33 'pre-exec failure doesn'\''t include exit-code in json-status' 149s + notanexecutable=/ 149s + bwrap --bind / / --tmpfs /tmp --json-status-fd 42 / 149s bwrap: execvp /: Permission denied 149s + true 149s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 149s + fpath=json-status.json 149s + shift 149s + for re in "$@" 149s + grep -q -e '"exit-code": [0-9]' json-status.json 149s + ok 'exec failure doesn'\''t include exit-code in json-status' 149s + test_count=34 149s ok 34 exec failure doesn't include exit-code in json-status 149s + echo ok 34 'exec failure doesn'\''t include exit-code in json-status' 149s + test -n '' 149s + BWRAP_RECURSE='bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc' 149s + 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 149s bwrap: No permissions to create new namespace, likely because the kernel does not allow non-privileged user namespaces. See or . 149s ++ report_err 149s ++ local exit_status=1 149s Unexpected nonzero exit status 1 while running: $BWRAP_RECURSE -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello > recursive_proc.txt 149s + cleanup 149s + test -n '' 149s + test -f /var/tmp/tap-test.YScMFy/.testtmp 149s + rm -rf /var/tmp/tap-test.YScMFy 150s autopkgtest [08:39:56]: test upstream: -----------------------] 150s upstream FAIL non-zero exit status 1 150s autopkgtest [08:39:56]: test upstream: - - - - - - - - - - results - - - - - - - - - - 151s autopkgtest [08:39:57]: test userns: preparing testbed 151s Reading package lists... 151s Building dependency tree... 151s Reading state information... 151s Solving dependencies... 152s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 153s autopkgtest [08:39:59]: test userns: [----------------------- 153s # Unshare user ID 153s ok 1 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -u" should succeed 153s ok 2 153s ok 3 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -g" should succeed 153s ok 4 153s ok 5 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /bin/sh -c ls -l /etc/passwd" should succeed 153s # Combine new /dev with new user namespace (#71) 153s ok 6 153s ok 7 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /bin/sh -c echo /dev/*" should succeed 153s ok 8 153s ok 9 153s ok 10 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -u" should succeed 153s ok 11 153s ok 12 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -g" should succeed 153s ok 13 153s 1..13 154s autopkgtest [08:40:00]: test userns: -----------------------] 156s autopkgtest [08:40:02]: test userns: - - - - - - - - - - results - - - - - - - - - - 156s userns PASS 156s autopkgtest [08:40:02]: test upstream-as-root: preparing testbed 157s Reading package lists... 157s Building dependency tree... 157s Reading state information... 157s Solving dependencies... 157s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 159s autopkgtest [08:40:05]: test upstream-as-root: [----------------------- 159s +++ dirname tests/test-run.sh 159s ++ cd tests 159s ++ pwd 159s + srcd=/tmp/autopkgtest.ZhW8oa/build.A6B/src/tests 159s + . /tmp/autopkgtest.ZhW8oa/build.A6B/src/tests/libtest.sh 159s ++ set -e 159s ++ '[' -n '' ']' 159s +++ dirname tests/test-run.sh 159s ++ test_srcdir=tests 159s ++ '[' -n '' ']' 159s +++ dirname tests/test-run.sh 159s ++ test_builddir=tests 159s ++ . tests/libtest-core.sh 159s +++ type -p locale 159s ++++ locale -a 159s ++++ grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' 159s ++++ head -n1 159s +++ export LC_ALL=C.utf8 159s +++ LC_ALL=C.utf8 159s +++ '[' -z C.utf8 ']' 159s +++ unset LANGUAGE 159s +++ export G_DEBUG=fatal-warnings 159s +++ G_DEBUG=fatal-warnings 159s +++ trap report_err ERR 159s ++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sbin:/sbin 159s +++ mktemp -d /var/tmp/tap-test.XXXXXX 159s ++ tempdir=/var/tmp/tap-test.f22EfD 159s ++ touch /var/tmp/tap-test.f22EfD/.testtmp 159s ++ trap cleanup EXIT 159s ++ cd /var/tmp/tap-test.f22EfD 159s ++ : bwrap 159s +++ type -p bwrap 159s ++ test -u /usr/bin/bwrap 159s ++ FUSE_DIR= 159s +++ grep ' fuse[. ]' /proc/self/mounts 159s +++ awk '{print $2}' 159s ++++ id -u 159s +++ grep user_id=0 159s +++ id -u 159s ++ test 0 = 0 159s ++ is_uidzero=true 159s ++ UNREADABLE=/root/.bashrc 159s ++ true 159s ++ UNREADABLE= 159s ++ '[' /lib -ef /usr/lib ']' 159s ++ 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' 159s ++ RUN='bwrap --bind / / --tmpfs /tmp' 159s ++ '[' -z '' ']' 159s ++ bwrap --bind / / --tmpfs /tmp true 159s ++ basename tests/test-run.sh 159s + bn=test-run.sh 159s + test_count=0 159s + bwrap --help 159s + assert_file_has_content help.txt 'usage: bwrap' 159s + fpath=help.txt 159s + shift 159s + for re in "$@" 159s + grep -q -e 'usage: bwrap' help.txt 159s + ok 'Help works' 159s + test_count=1 159s + echo ok 1 'Help works' 159s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 159s + '[' x '!=' x ']' 159s + ok_skip 'no FUSE support' 159s + ok '# SKIP' 'no FUSE support' 159s + test_count=2 159s + echo ok 2 '# SKIP' 'no FUSE support' 159s + bwrap --bind / / --tmpfs /tmp --proc /proc true 159s + ok 'can mount /proc with ' 159s + test_count=3 159s + echo ok 3 'can mount /proc with ' 159s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev true 159s + ok 'can unshare network, create new /dev with ' 159s + test_count=4 159s + echo ok 4 'can unshare network, create new /dev with ' 159s + echo -n 'expect EPERM: ' 159s expect EPERM: + test -n '' 159s + CAP= 159s + cat /etc/shadow 159s + cat /etc/shadow 159s + ok 'cannot read /etc/shadow with ' 159s + test_count=5 159s + echo ok 5 'cannot read /etc/shadow with ' 159s + '[' x '!=' x ']' 159s + ok_skip 'not sure what unreadable file to use' 159s + ok '# SKIP' 'not sure what unreadable file to use' 159s + test_count=6 159s + echo ok 6 '# SKIP' 'not sure what unreadable file to use' 159s + bwrap --bind / / --tmpfs /tmp --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 159s + ok 'can bind a destination over a symlink' 159s + test_count=7 159s + echo ok 7 'can bind a destination over a symlink' 159s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 159s + '[' x '!=' x ']' 159s + ok_skip 'no FUSE support' 159s + ok '# SKIP' 'no FUSE support' 159s + test_count=8 159s + echo ok 8 '# SKIP' 'no FUSE support' 159s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --proc /proc true 159s + ok 'can mount /proc with --unshare-user-try' 159s + test_count=9 159s + echo ok 9 'can mount /proc with --unshare-user-try' 159s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev true 159s + ok 'can unshare network, create new /dev with --unshare-user-try' 159s + test_count=10 159s + echo ok 10 'can unshare network, create new /dev with --unshare-user-try' 159s + echo -n 'expect EPERM: ' 159s expect EPERM: + test -n '' 159s + CAP= 159s + cat /etc/shadow 159s + cat /etc/shadow 159s + ok 'cannot read /etc/shadow with --unshare-user-try' 159s + test_count=11 159s + echo ok 11 'cannot read /etc/shadow with --unshare-user-try' 159s + '[' x '!=' x ']' 159s + ok_skip 'not sure what unreadable file to use' 159s + ok '# SKIP' 'not sure what unreadable file to use' 159s + test_count=12 159s + echo ok 12 '# SKIP' 'not sure what unreadable file to use' 159s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 159s ok 1 Help works 159s ok 2 # SKIP no FUSE support 159s ok 3 can mount /proc with 159s ok 4 can unshare network, create new /dev with 159s ok 5 cannot read /etc/shadow with 159s ok 6 # SKIP not sure what unreadable file to use 159s ok 7 can bind a destination over a symlink 159s ok 8 # SKIP no FUSE support 159s ok 9 can mount /proc with --unshare-user-try 159s ok 10 can unshare network, create new /dev with --unshare-user-try 159s ok 11 cannot read /etc/shadow with --unshare-user-try 159s ok 12 # SKIP not sure what unreadable file to use 159s + ok 'can bind a destination over a symlink' 159s + test_count=13 159s + echo ok 13 'can bind a destination over a symlink' 159s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 159s + '[' x '!=' x ']' 159s + ok_skip 'no FUSE support' 159s + ok '# SKIP' 'no FUSE support' 159s + test_count=14 159s + echo ok 14 '# SKIP' 'no FUSE support' 159s + bwrap --bind / / --tmpfs /tmp --unshare-pid --proc /proc true 159s + ok 'can mount /proc with --unshare-pid' 159s + test_count=15 159s + echo ok 15 'can mount /proc with --unshare-pid' 159s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev true 159s ok 13 can bind a destination over a symlink 159s ok 14 # SKIP no FUSE support 159s ok 15 can mount /proc with --unshare-pid 159s ok 16 can unshare network, create new /dev with --unshare-pid 159s + ok 'can unshare network, create new /dev with --unshare-pid' 159s + test_count=16 159s + echo ok 16 'can unshare network, create new /dev with --unshare-pid' 159s + echo -n 'expect EPERM: ' 159s expect EPERM: + test -n '' 159s + CAP= 159s + cat /etc/shadow 159s + cat /etc/shadow 159s + ok 'cannot read /etc/shadow with --unshare-pid' 159s + test_count=17 159s + echo ok 17 'cannot read /etc/shadow with --unshare-pid' 159s + '[' x '!=' x ']' 159s + ok_skip 'not sure what unreadable file to use' 159s + ok '# SKIP' 'not sure what unreadable file to use' 159s + test_count=18 159s + echo ok 18 '# SKIP' 'not sure what unreadable file to use' 159s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 159s + ok 'can bind a destination over a symlink' 159s + test_count=19 159s + echo ok 19 'can bind a destination over a symlink' 159s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 159s + '[' x '!=' x ']' 159s + ok_skip 'no FUSE support' 159s + ok '# SKIP' 'no FUSE support' 159s + test_count=20 159s + echo ok 20 '# SKIP' 'no FUSE support' 159s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --proc /proc true 159s + ok 'can mount /proc with --unshare-user-try --unshare-pid' 159s + test_count=21 159s + echo ok 21 'can mount /proc with --unshare-user-try --unshare-pid' 159s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --dev /dev true 159s + ok 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 159s + test_count=22 159s + echo ok 22 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 159s + echo -n 'expect EPERM: ' 159s expect EPERM: + test -n '' 159s + CAP= 159s + cat /etc/shadow 159s + cat /etc/shadow 159s + ok 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 159s + test_count=23 159s + echo ok 23 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 159s + '[' x '!=' x ']' 159s + ok_skip 'not sure what unreadable file to use' 159s + ok '# SKIP' 'not sure what unreadable file to use' 159s + test_count=24 159s + echo ok 24 '# SKIP' 'not sure what unreadable file to use' 159s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 159s + ok 'can bind a destination over a symlink' 159s + test_count=25 159s + echo ok 25 'can bind a destination over a symlink' 159s + rm -f ./symlink 159s ++ pwd 159s ++ pwd 159s ++ pwd 159s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.f22EfD /var/tmp/tap-test.f22EfD --symlink /dev/null /var/tmp/tap-test.f22EfD/symlink true 159s + readlink ./symlink 159s + assert_file_has_content target.txt /dev/null 159s + fpath=target.txt 159s + shift 159s + for re in "$@" 159s + grep -q -e /dev/null target.txt 159s + ok '--symlink works' 159s + test_count=26 159s + echo ok 26 '--symlink works' 159s ++ pwd 159s ++ pwd 159s ++ pwd 159s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.f22EfD /var/tmp/tap-test.f22EfD --symlink /dev/null /var/tmp/tap-test.f22EfD/symlink true 159s + ok '--symlink is idempotent' 159s + test_count=27 159s + echo ok 27 '--symlink is idempotent' 159s ++ pwd 159s ++ pwd 159s ++ pwd 159s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.f22EfD /var/tmp/tap-test.f22EfD --symlink /dev/full /var/tmp/tap-test.f22EfD/symlink true 159s + assert_file_has_content err.txt 'Can'\''t make symlink .*: existing destination is /dev/null' 159s + fpath=err.txt 159s + shift 159s + for re in "$@" 159s + grep -q -e 'Can'\''t make symlink .*: existing destination is /dev/null' err.txt 159s + ok '--symlink doesn'\''t overwrite a conflicting symlink' 159s + test_count=28 159s + echo ok 28 '--symlink doesn'\''t overwrite a conflicting symlink' 159s + 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 159s + ok 'all expected devices were created' 159s + test_count=29 159s + echo ok 29 'all expected devices were created' 159s + bwrap --bind / / --tmpfs /tmp --unshare-pid --as-pid-1 --bind / / bash -c 'echo $$' 159s ok 17 cannot read /etc/shadow with --unshare-pid 159s ok 18 # SKIP not sure what unreadable file to use 159s ok 19 can bind a destination over a symlink 159s ok 20 # SKIP no FUSE support 159s ok 21 can mount /proc with --unshare-user-try --unshare-pid 159s ok 22 can unshare network, create new /dev with --unshare-user-try --unshare-pid 159s ok 23 cannot read /etc/shadow with --unshare-user-try --unshare-pid 159s ok 24 # SKIP not sure what unreadable file to use 159s ok 25 can bind a destination over a symlink 159s ok 26 --symlink works 159s ok 27 --symlink is idempotent 159s ok 28 --symlink doesn't overwrite a conflicting symlink 159s ok 29 all expected devices were created 159s + assert_file_has_content as_pid_1.txt 1 159s + fpath=as_pid_1.txt 159s + shift 159s + for re in "$@" 159s + grep -q -e 1 as_pid_1.txt 159s + ok 'can run as pid 1' 159s + test_count=30 159s + echo ok 30 'can run as pid 1' 159s + bwrap --bind / / --tmpfs /tmp --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'exit 42' 159s ok 30 can run as pid 1 159s + assert_file_has_content info.json '"child-pid": [0-9]' 159s + fpath=info.json 159s + shift 159s + for re in "$@" 159s + grep -q -e '"child-pid": [0-9]' info.json 159s + assert_file_has_content json-status.json '"child-pid": [0-9]' 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e '"child-pid": [0-9]' json-status.json 159s + assert_file_has_content_literal json-status.json '"exit-code": 42' 159s + fpath=json-status.json 159s + shift 159s + for s in "$@" 159s + grep -q -F -e '"exit-code": 42' json-status.json 159s + ok 'info and json-status fd' 159s + test_count=31 159s + echo ok 31 'info and json-status fd' 159s ++ 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/*' 159s ok 31 info and json-status fd 159s + DATA=$'/proc/self/ns/cgroup 4026532447\n/proc/self/ns/ipc 4026532445\n/proc/self/ns/mnt 4026532443\n/proc/self/ns/net 4026532448\n/proc/self/ns/pid 4026532446\n/proc/self/ns/pid_for_children 4026532446\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532444' 159s + for NS in "ipc" "mnt" "net" "pid" "uts" 159s ++ echo $'/proc/self/ns/cgroup 4026532447\n/proc/self/ns/ipc 4026532445\n/proc/self/ns/mnt 4026532443\n/proc/self/ns/net 4026532448\n/proc/self/ns/pid 4026532446\n/proc/self/ns/pid_for_children 4026532446\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532444' 159s ++ awk '{print $2}' 159s ++ grep /proc/self/ns/ipc 159s + want=4026532445 159s + assert_file_has_content info.json 4026532445 159s + fpath=info.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532445 info.json 159s + assert_file_has_content json-status.json 4026532445 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532445 json-status.json 159s + for NS in "ipc" "mnt" "net" "pid" "uts" 159s ++ echo $'/proc/self/ns/cgroup 4026532447\n/proc/self/ns/ipc 4026532445\n/proc/self/ns/mnt 4026532443\n/proc/self/ns/net 4026532448\n/proc/self/ns/pid 4026532446\n/proc/self/ns/pid_for_children 4026532446\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532444' 159s ++ grep /proc/self/ns/mnt 159s ++ awk '{print $2}' 159s + want=4026532443 159s + assert_file_has_content info.json 4026532443 159s + fpath=info.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532443 info.json 159s + assert_file_has_content json-status.json 4026532443 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532443 json-status.json 159s + for NS in "ipc" "mnt" "net" "pid" "uts" 159s ++ echo $'/proc/self/ns/cgroup 4026532447\n/proc/self/ns/ipc 4026532445\n/proc/self/ns/mnt 4026532443\n/proc/self/ns/net 4026532448\n/proc/self/ns/pid 4026532446\n/proc/self/ns/pid_for_children 4026532446\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532444' 159s ++ grep /proc/self/ns/net 159s ++ awk '{print $2}' 159s + want=4026532448 159s + assert_file_has_content info.json 4026532448 159s + fpath=info.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532448 info.json 159s + assert_file_has_content json-status.json 4026532448 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532448 json-status.json 159s + for NS in "ipc" "mnt" "net" "pid" "uts" 159s ++ echo $'/proc/self/ns/cgroup 4026532447\n/proc/self/ns/ipc 4026532445\n/proc/self/ns/mnt 4026532443\n/proc/self/ns/net 4026532448\n/proc/self/ns/pid 4026532446\n/proc/self/ns/pid_for_children 4026532446\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532444' 159s ++ grep /proc/self/ns/pid 159s ++ awk '{print $2}' 159s + want=$'4026532446\n4026532446' 159s + assert_file_has_content info.json $'4026532446\n4026532446' 159s + fpath=info.json 159s + shift 159s + for re in "$@" 159s + grep -q -e $'4026532446\n4026532446' info.json 159s + assert_file_has_content json-status.json $'4026532446\n4026532446' 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e $'4026532446\n4026532446' json-status.json 159s + for NS in "ipc" "mnt" "net" "pid" "uts" 159s ++ echo $'/proc/self/ns/cgroup 4026532447\n/proc/self/ns/ipc 4026532445\n/proc/self/ns/mnt 4026532443\n/proc/self/ns/net 4026532448\n/proc/self/ns/pid 4026532446\n/proc/self/ns/pid_for_children 4026532446\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532441\n/proc/self/ns/uts 4026532444' 159s ++ grep /proc/self/ns/uts 159s ++ awk '{print $2}' 159s + want=4026532444 159s + assert_file_has_content info.json 4026532444 159s + fpath=info.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532444 info.json 159s + assert_file_has_content json-status.json 4026532444 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e 4026532444 json-status.json 159s + ok 'namespace id info in info and json-status fd' 159s + test_count=32 159s + echo ok 32 'namespace id info in info and json-status fd' 159s + command -v strace 159s + strace -h 159s + grep -v -e default 159s + grep -e fault 159s + 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 159s bwrap: Adding ambient capability 36: Function not implemented 159s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e '"exit-code": [0-9]' json-status.json 159s + ok 'pre-exec failure doesn'\''t include exit-code in json-status' 159s + test_count=33 159s + echo ok 33 'pre-exec failure doesn'\''t include exit-code in json-status' 159s + notanexecutable=/ 159s + bwrap --bind / / --tmpfs /tmp --json-status-fd 42 / 159s bwrap: execvp /: Permission denied 159s + true 159s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 159s + fpath=json-status.json 159s + shift 159s + for re in "$@" 159s + grep -q -e '"exit-code": [0-9]' json-status.json 159s + ok 'exec failure doesn'\''t include exit-code in json-status' 159s + test_count=34 159s + echo ok 34 'exec failure doesn'\''t include exit-code in json-status' 159s + test -n '' 159s + BWRAP_RECURSE='bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc' 159s + 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 159s bwrap: No permissions to create new namespace, likely because the kernel does not allow non-privileged user namespaces. See or . 159s ++ report_err 159s ++ local exit_status=1 159s Unexpected nonzero exit status 1 while running: $BWRAP_RECURSE -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello > recursive_proc.txt 159s + cleanup 159s + test -n '' 159s + test -f /var/tmp/tap-test.f22EfD/.testtmp 159s + rm -rf /var/tmp/tap-test.f22EfD 159s ok 32 namespace id info in info and json-status fd 159s ok 33 pre-exec failure doesn't include exit-code in json-status 159s ok 34 exec failure doesn't include exit-code in json-status 159s autopkgtest [08:40:05]: test upstream-as-root: -----------------------] 160s autopkgtest [08:40:06]: test upstream-as-root: - - - - - - - - - - results - - - - - - - - - - 160s upstream-as-root FAIL non-zero exit status 1 161s autopkgtest [08:40:07]: @@@@@@@@@@@@@@@@@@@@ summary 161s basic PASS 161s dev PASS 161s net PASS 161s upstream FAIL non-zero exit status 1 161s userns PASS 161s upstream-as-root FAIL non-zero exit status 1