0s autopkgtest [19:14:53]: starting date and time: 2025-12-03 19:14:53+0000 0s autopkgtest [19:14:53]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [19:14:53]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.o1rp3qco/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-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-9.secgroup --name adt-resolute-amd64-bubblewrap-20251203-191453-juju-7f2275-prod-proposed-migration-environment-2-e6406696-42ca-4b9c-ac5f-dd7c681af867 --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-amd64-bubblewrap-20251203-191453-juju-7f2275-prod-proposed-migration-environment-2-e6406696-42ca-4b9c-ac5f-dd7c681af867 from image adt/ubuntu-resolute-amd64-server-20251203.img (UUID c6e78f39-c16c-48bb-9815-0096f6be052e)... 52s autopkgtest [19:15:45]: testbed dpkg architecture: amd64 52s autopkgtest [19:15:45]: testbed apt version: 3.1.12 53s autopkgtest [19:15:46]: @@@@@@@@@@@@@@@@@@@@ test bed setup 53s autopkgtest [19:15:46]: testbed release detected to be: None 53s autopkgtest [19:15:46]: updating testbed package index (apt update) 54s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 54s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 54s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 54s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 54s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [954 kB] 54s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.1 kB] 54s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [157 kB] 54s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [161 kB] 54s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [220 kB] 54s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [6252 B] 54s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [120 B] 54s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [349 kB] 54s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [764 kB] 54s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [23.0 kB] 54s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [9636 B] 54s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4040 B] 54s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [764 B] 55s Fetched 2796 kB in 1s (4473 kB/s) 55s Reading package lists... 56s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 56s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 56s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 56s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 56s Reading package lists... 56s Reading package lists... 57s Building dependency tree... 57s Reading state information... 57s Calculating upgrade... 57s The following packages will be upgraded: 57s libpython3-stdlib python3 python3-gdbm python3-minimal 57s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 57s Need to get 72.9 kB of archives. 57s After this operation, 2048 B of additional disk space will be used. 57s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.13.9-2 [28.1 kB] 57s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.13.9-2 [23.0 kB] 57s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.13.9-2 [10.8 kB] 57s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-gdbm amd64 3.13.9-2 [11.0 kB] 57s dpkg-preconfigure: unable to re-open stdin: No such file or directory 57s Fetched 72.9 kB in 0s (0 B/s) 57s (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 ... 83538 files and directories currently installed.) 57s Preparing to unpack .../python3-minimal_3.13.9-2_amd64.deb ... 57s Unpacking python3-minimal (3.13.9-2) over (3.13.7-1) ... 57s Setting up python3-minimal (3.13.9-2) ... 57s (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 ... 83538 files and directories currently installed.) 57s Preparing to unpack .../python3_3.13.9-2_amd64.deb ... 57s running python pre-rtupdate hooks for python3.13... 57s Unpacking python3 (3.13.9-2) over (3.13.7-1) ... 57s Preparing to unpack .../libpython3-stdlib_3.13.9-2_amd64.deb ... 57s Unpacking libpython3-stdlib:amd64 (3.13.9-2) over (3.13.7-1) ... 57s Preparing to unpack .../python3-gdbm_3.13.9-2_amd64.deb ... 57s Unpacking python3-gdbm (3.13.9-2) over (3.13.9-1) ... 57s Setting up python3-gdbm (3.13.9-2) ... 57s Setting up libpython3-stdlib:amd64 (3.13.9-2) ... 57s Setting up python3 (3.13.9-2) ... 57s running python rtupdate hooks for python3.13... 57s running python post-rtupdate hooks for python3.13... 58s Processing triggers for man-db (2.13.1-1) ... 58s autopkgtest [19:15:51]: upgrading testbed (apt dist-upgrade and autopurge) 58s Reading package lists... 58s Building dependency tree... 58s Reading state information... 58s Calculating upgrade... 59s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 59s Reading package lists... 59s Building dependency tree... 59s Reading state information... 59s Solving dependencies... 59s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 61s autopkgtest [19:15:54]: testbed running kernel: Linux 6.17.0-6-generic #6-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 7 13:34:17 UTC 2025 61s autopkgtest [19:15:54]: @@@@@@@@@@@@@@@@@@@@ apt-source bubblewrap 63s Get:1 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (dsc) [2685 B] 63s Get:2 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (tar) [115 kB] 63s Get:3 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (asc) [833 B] 63s Get:4 http://ftpmaster.internal/ubuntu resolute/main bubblewrap 0.11.0-2 (diff) [12.6 kB] 63s gpgv: Signature made Mon Dec 30 11:46:18 2024 UTC 63s gpgv: using RSA key 7A073AD1AE694FA25BFF62E5235C099D3EB33076 63s gpgv: Can't check signature: No public key 63s dpkg-source: warning: cannot verify inline signature for ./bubblewrap_0.11.0-2.dsc: no acceptable signature found 63s autopkgtest [19:15:56]: testing package bubblewrap version 0.11.0-2 63s autopkgtest [19:15:56]: build not needed 63s autopkgtest [19:15:56]: test basic: preparing testbed 63s Reading package lists... 64s Building dependency tree... 64s Reading state information... 64s Solving dependencies... 64s The following NEW packages will be installed: 64s bubblewrap libio-pty-perl libipc-run-perl 64s 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 64s Need to get 180 kB of archives. 64s After this operation, 519 kB of additional disk space will be used. 64s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 bubblewrap amd64 0.11.0-2 [53.9 kB] 64s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 libio-pty-perl amd64 1:1.20-1build3 [31.4 kB] 64s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libipc-run-perl all 20250809.0-1 [94.4 kB] 64s Fetched 180 kB in 0s (0 B/s) 64s Selecting previously unselected package bubblewrap. 64s (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 ... 83538 files and directories currently installed.) 64s Preparing to unpack .../bubblewrap_0.11.0-2_amd64.deb ... 64s Unpacking bubblewrap (0.11.0-2) ... 64s Selecting previously unselected package libio-pty-perl. 64s Preparing to unpack .../libio-pty-perl_1%3a1.20-1build3_amd64.deb ... 64s Unpacking libio-pty-perl (1:1.20-1build3) ... 64s Selecting previously unselected package libipc-run-perl. 64s Preparing to unpack .../libipc-run-perl_20250809.0-1_all.deb ... 64s Unpacking libipc-run-perl (20250809.0-1) ... 64s Setting up bubblewrap (0.11.0-2) ... 64s Setting up libio-pty-perl (1:1.20-1build3) ... 64s Setting up libipc-run-perl (20250809.0-1) ... 64s Processing triggers for systemd (257.9-0ubuntu2) ... 64s Processing triggers for man-db (2.13.1-1) ... 64s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 65s autopkgtest [19:15:58]: test basic: [----------------------- 65s ok 1 - "bwrap --ro-bind / / /usr/bin/id -u" should succeed 65s ok 2 65s ok 3 - "bwrap --ro-bind / / /usr/bin/id -g" should succeed 65s ok 4 65s 1..4 65s autopkgtest [19:15:58]: test basic: -----------------------] 66s basic PASS 66s autopkgtest [19:15:59]: test basic: - - - - - - - - - - results - - - - - - - - - - 66s autopkgtest [19:15:59]: test dev: preparing testbed 66s Reading package lists... 66s Building dependency tree... 66s Reading state information... 66s Solving dependencies... 66s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 67s autopkgtest [19:16:00]: test dev: [----------------------- 67s ok 1 - "bwrap --ro-bind / / --dev /dev //bin/sh -c echo /dev/*" should succeed 67s ok 2 67s ok 3 67s ok 4 67s ok 5 67s ok 6 67s ok 7 67s ok 8 67s ok 9 67s ok 10 67s ok 11 67s ok 12 67s ok 13 67s ok 14 67s ok 15 67s ok 16 67s ok 17 67s ok 18 67s ok 19 67s ok 20 67s ok 21 67s ok 22 67s 1..22 68s autopkgtest [19:16:01]: test dev: -----------------------] 68s dev PASS 68s autopkgtest [19:16:01]: test dev: - - - - - - - - - - results - - - - - - - - - - 68s autopkgtest [19:16:01]: test net: preparing testbed 68s Reading package lists... 69s Building dependency tree... 69s Reading state information... 69s Solving dependencies... 69s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 69s autopkgtest [19:16:02]: test net: [----------------------- 69s ok 1 - "bwrap --ro-bind / / --unshare-net /bin/sh -c ip link ls" should succeed 69s ok 2 69s ok 3 69s ok 4 69s ok 5 69s 1..5 70s autopkgtest [19:16:03]: test net: -----------------------] 70s autopkgtest [19:16:03]: test net: - - - - - - - - - - results - - - - - - - - - - 70s net PASS 70s autopkgtest [19:16:03]: test upstream: preparing testbed 71s Reading package lists... 71s Building dependency tree... 71s Reading state information... 71s Solving dependencies... 71s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 71s autopkgtest [19:16:04]: test upstream: [----------------------- 72s +++ dirname tests/test-run.sh 72s ++ cd tests 72s ++ pwd 72s + srcd=/tmp/autopkgtest.Nn6lpg/build.zrK/src/tests 72s + . /tmp/autopkgtest.Nn6lpg/build.zrK/src/tests/libtest.sh 72s ++ set -e 72s ++ '[' -n '' ']' 72s +++ dirname tests/test-run.sh 72s ++ test_srcdir=tests 72s ++ '[' -n '' ']' 72s +++ dirname tests/test-run.sh 72s ++ test_builddir=tests 72s ++ . tests/libtest-core.sh 72s +++ type -p locale 72s ++++ locale -a 72s ++++ grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' 72s ++++ head -n1 72s +++ export LC_ALL=C.utf8 72s +++ LC_ALL=C.utf8 72s +++ '[' -z C.utf8 ']' 72s +++ unset LANGUAGE 72s +++ export G_DEBUG=fatal-warnings 72s +++ G_DEBUG=fatal-warnings 72s +++ trap report_err ERR 72s ++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sbin:/sbin 72s +++ mktemp -d /var/tmp/tap-test.XXXXXX 72s ++ tempdir=/var/tmp/tap-test.etvp1g 72s ++ touch /var/tmp/tap-test.etvp1g/.testtmp 72s ++ trap cleanup EXIT 72s ++ cd /var/tmp/tap-test.etvp1g 72s ++ : bwrap 72s +++ type -p bwrap 72s ++ test -u /usr/bin/bwrap 72s ++ FUSE_DIR= 72s +++ grep ' fuse[. ]' /proc/self/mounts 72s +++ awk '{print $2}' 72s ++++ id -u 72s +++ grep user_id=1000 72s +++ id -u 72s ++ test 1000 = 0 72s ++ is_uidzero=false 72s ++ UNREADABLE=/root/.bashrc 72s ++ false 72s +++ dirname /root/.bashrc 72s ++ test -x /root 72s ++ '[' /lib -ef /usr/lib ']' 72s ++ 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' 72s ++ RUN='bwrap --bind / / --tmpfs /tmp' 72s ++ '[' -z '' ']' 72s ++ bwrap --bind / / --tmpfs /tmp true 72s ok 1 Help works 72s ok 2 # SKIP no FUSE support 72s ok 3 can mount /proc with 72s ok 4 can unshare network, create new /dev with 72s ++ basename tests/test-run.sh 72s + bn=test-run.sh 72s + test_count=0 72s + bwrap --help 72s + assert_file_has_content help.txt 'usage: bwrap' 72s + fpath=help.txt 72s + shift 72s + for re in "$@" 72s + grep -q -e 'usage: bwrap' help.txt 72s + ok 'Help works' 72s + test_count=1 72s + echo ok 1 'Help works' 72s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 72s + '[' x '!=' x ']' 72s + ok_skip 'no FUSE support' 72s + ok '# SKIP' 'no FUSE support' 72s + test_count=2 72s + echo ok 2 '# SKIP' 'no FUSE support' 72s + bwrap --bind / / --tmpfs /tmp --proc /proc true 72s + ok 'can mount /proc with ' 72s + test_count=3 72s + echo ok 3 'can mount /proc with ' 72s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev true 72s + ok 'can unshare network, create new /dev with ' 72s + test_count=4 72s + echo ok 4 'can unshare network, create new /dev with ' 72s + echo -n 'expect EPERM: ' 72s expect EPERM: + test -n '' 72s + CAP= 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 72s cat: /tmp/foo: Permission denied (os error 13) 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + ok 'cannot read /etc/shadow with ' 72s ok 5 cannot read /etc/shadow with 72s + test_count=5 72s + echo ok 5 'cannot read /etc/shadow with ' 72s + '[' x/root/.bashrc '!=' x ']' 72s + echo -n 'expect EPERM: ' 72s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 72s bwrap: Can't find source path /root/.bashrc: Permission denied 72s + ok 'cannot read /root/.bashrc with ' 72s + test_count=6 72s ok 6 cannot read /root/.bashrc with 72s + echo ok 6 'cannot read /root/.bashrc with ' 72s + bwrap --bind / / --tmpfs /tmp --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 72s + ok 'can bind a destination over a symlink' 72s ok 7 can bind a destination over a symlink 72s ok 8 # SKIP no FUSE support 72s + test_count=7 72s + echo ok 7 'can bind a destination over a symlink' 72s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 72s + '[' x '!=' x ']' 72s + ok_skip 'no FUSE support' 72s + ok '# SKIP' 'no FUSE support' 72s + test_count=8 72s + echo ok 8 '# SKIP' 'no FUSE support' 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --proc /proc true 72s + ok 'can mount /proc with --unshare-user-try' 72s + test_count=9 72s + echo ok 9 'can mount /proc with --unshare-user-try' 72s ok 9 can mount /proc with --unshare-user-try 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev true 72s + ok 'can unshare network, create new /dev with --unshare-user-try' 72s ok 10 can unshare network, create new /dev with --unshare-user-try 72s + test_count=10 72s + echo ok 10 'can unshare network, create new /dev with --unshare-user-try' 72s + echo -n 'expect EPERM: ' 72s expect EPERM: + test -n '' 72s + CAP= 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 72s cat: /tmp/foo: Permission denied (os error 13) 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + ok 'cannot read /etc/shadow with --unshare-user-try' 72s + test_count=11 72s ok 11 cannot read /etc/shadow with --unshare-user-try 72s + echo ok 11 'cannot read /etc/shadow with --unshare-user-try' 72s + '[' x/root/.bashrc '!=' x ']' 72s + echo -n 'expect EPERM: ' 72s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 72s bwrap: Can't find source path /root/.bashrc: Permission denied 72s + ok 'cannot read /root/.bashrc with --unshare-user-try' 72s ok 12 cannot read /root/.bashrc with --unshare-user-try 72s + test_count=12 72s + echo ok 12 'cannot read /root/.bashrc with --unshare-user-try' 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 72s + ok 'can bind a destination over a symlink' 72s + test_count=13 72s ok 13 can bind a destination over a symlink 72s ok 14 # SKIP no FUSE support 72s + echo ok 13 'can bind a destination over a symlink' 72s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 72s + '[' x '!=' x ']' 72s + ok_skip 'no FUSE support' 72s + ok '# SKIP' 'no FUSE support' 72s + test_count=14 72s + echo ok 14 '# SKIP' 'no FUSE support' 72s + bwrap --bind / / --tmpfs /tmp --unshare-pid --proc /proc true 72s + ok 'can mount /proc with --unshare-pid' 72s + test_count=15 72s + echo ok 15 'can mount /proc with --unshare-pid' 72s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev true 72s ok 15 can mount /proc with --unshare-pid 72s ok 16 can unshare network, create new /dev with --unshare-pid 72s + ok 'can unshare network, create new /dev with --unshare-pid' 72s + test_count=16 72s + echo ok 16 'can unshare network, create new /dev with --unshare-pid' 72s + echo -n 'expect EPERM: ' 72s expect EPERM: + test -n '' 72s + CAP= 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 72s cat: /tmp/foo: Permission denied (os error 13) 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s ok 17 cannot read /etc/shadow with --unshare-pid 72s + ok 'cannot read /etc/shadow with --unshare-pid' 72s + test_count=17 72s + echo ok 17 'cannot read /etc/shadow with --unshare-pid' 72s + '[' x/root/.bashrc '!=' x ']' 72s + echo -n 'expect EPERM: ' 72s expect EPERM: + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev --bind /root/.bashrc /tmp/foo cat /tmp/foo 72s bwrap: Can't find source path /root/.bashrc: Permission denied 72s + ok 'cannot read /root/.bashrc with --unshare-pid' 72s ok 18 cannot read /root/.bashrc with --unshare-pid 72s + test_count=18 72s + echo ok 18 'cannot read /root/.bashrc with --unshare-pid' 72s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 72s ok 19 can bind a destination over a symlink 72s ok 20 # SKIP no FUSE support 72s + ok 'can bind a destination over a symlink' 72s + test_count=19 72s + echo ok 19 'can bind a destination over a symlink' 72s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 72s + '[' x '!=' x ']' 72s + ok_skip 'no FUSE support' 72s + ok '# SKIP' 'no FUSE support' 72s + test_count=20 72s + echo ok 20 '# SKIP' 'no FUSE support' 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --proc /proc true 72s + ok 'can mount /proc with --unshare-user-try --unshare-pid' 72s + test_count=21 72s ok 21 can mount /proc with --unshare-user-try --unshare-pid 72s + echo ok 21 'can mount /proc with --unshare-user-try --unshare-pid' 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --dev /dev true 72s ok 22 can unshare network, create new /dev with --unshare-user-try --unshare-pid 72s + ok 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 72s + test_count=22 72s + echo ok 22 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 72s + echo -n 'expect EPERM: ' 72s expect EPERM: + test -n '' 72s + CAP= 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /tmp/foo 72s cat: /tmp/foo: Permission denied (os error 13) 72s + cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --bind /etc/shadow /tmp/foo cat /etc/shadow 72s cat: /etc/shadow: Permission denied (os error 13) 72s ok 23 cannot read /etc/shadow with --unshare-user-try --unshare-pid 72s + ok 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 72s + test_count=23 72s + echo ok 23 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 72s + '[' x/root/.bashrc '!=' x ']' 72s + echo -n 'expect EPERM: ' 72s 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 72s bwrap: Can't find source path /root/.bashrc: Permission denied 72s + ok 'cannot read /root/.bashrc with --unshare-user-try --unshare-pid' 72s + test_count=24 72s ok 24 cannot read /root/.bashrc with --unshare-user-try --unshare-pid 72s + echo ok 24 'cannot read /root/.bashrc with --unshare-user-try --unshare-pid' 72s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 72s + ok 'can bind a destination over a symlink' 72s + test_count=25 72s + echo ok 25 'can bind a destination over a symlink' 72s ok 25 can bind a destination over a symlink 72s + rm -f ./symlink 72s ++ pwd 72s ++ pwd 72s ++ pwd 72s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.etvp1g /var/tmp/tap-test.etvp1g --symlink /dev/null /var/tmp/tap-test.etvp1g/symlink true 72s + readlink ./symlink 72s + assert_file_has_content target.txt /dev/null 72s + fpath=target.txt 72s + shift 72s + for re in "$@" 72s + grep -q -e /dev/null target.txt 72s + ok '--symlink works' 72s + test_count=26 72s ok 26 --symlink works 72s + echo ok 26 '--symlink works' 72s ++ pwd 72s ++ pwd 72s ++ pwd 72s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.etvp1g /var/tmp/tap-test.etvp1g --symlink /dev/null /var/tmp/tap-test.etvp1g/symlink true 72s + ok '--symlink is idempotent' 72s ok 27 --symlink is idempotent 72s + test_count=27 72s + echo ok 27 '--symlink is idempotent' 72s ++ pwd 72s ++ pwd 72s ++ pwd 72s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.etvp1g /var/tmp/tap-test.etvp1g --symlink /dev/full /var/tmp/tap-test.etvp1g/symlink true 72s + assert_file_has_content err.txt 'Can'\''t make symlink .*: existing destination is /dev/null' 72s + fpath=err.txt 72s + shift 72s + for re in "$@" 72s + grep -q -e 'Can'\''t make symlink .*: existing destination is /dev/null' err.txt 72s + ok '--symlink doesn'\''t overwrite a conflicting symlink' 72s + test_count=28 72s + echo ok 28 '--symlink doesn'\''t overwrite a conflicting symlink' 72s ok 28 --symlink doesn't overwrite a conflicting symlink 72s + 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 72s ok 29 all expected devices were created 72s + ok 'all expected devices were created' 72s + test_count=29 72s + echo ok 29 'all expected devices were created' 72s + bwrap --bind / / --tmpfs /tmp --unshare-pid --as-pid-1 --bind / / bash -c 'echo $$' 72s + assert_file_has_content as_pid_1.txt 1 72s + fpath=as_pid_1.txt 72s + shift 72s + for re in "$@" 72s + grep -q -e 1 as_pid_1.txt 72s + ok 'can run as pid 1' 72s ok 30 can run as pid 1 72s + test_count=30 72s + echo ok 30 'can run as pid 1' 72s + bwrap --bind / / --tmpfs /tmp --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'exit 42' 72s + assert_file_has_content info.json '"child-pid": [0-9]' 72s + fpath=info.json 72s + shift 72s + for re in "$@" 72s + grep -q -e '"child-pid": [0-9]' info.json 72s + assert_file_has_content json-status.json '"child-pid": [0-9]' 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e '"child-pid": [0-9]' json-status.json 72s + assert_file_has_content_literal json-status.json '"exit-code": 42' 72s + fpath=json-status.json 72s + shift 72s + for s in "$@" 72s + grep -q -F -e '"exit-code": 42' json-status.json 72s + ok 'info and json-status fd' 72s + test_count=31 72s + echo ok 31 'info and json-status fd' 72s ok 31 info and json-status fd 72s ++ 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/*' 72s + DATA=$'/proc/self/ns/cgroup 4026532303\n/proc/self/ns/ipc 4026532301\n/proc/self/ns/mnt 4026532299\n/proc/self/ns/net 4026532304\n/proc/self/ns/pid 4026532302\n/proc/self/ns/pid_for_children 4026532302\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532300' 72s + for NS in "ipc" "mnt" "net" "pid" "uts" 72s ++ echo $'/proc/self/ns/cgroup 4026532303\n/proc/self/ns/ipc 4026532301\n/proc/self/ns/mnt 4026532299\n/proc/self/ns/net 4026532304\n/proc/self/ns/pid 4026532302\n/proc/self/ns/pid_for_children 4026532302\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532300' 72s ++ grep /proc/self/ns/ipc 72s ++ awk '{print $2}' 72s + want=4026532301 72s + assert_file_has_content info.json 4026532301 72s + fpath=info.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532301 info.json 72s + assert_file_has_content json-status.json 4026532301 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532301 json-status.json 72s + for NS in "ipc" "mnt" "net" "pid" "uts" 72s ++ echo $'/proc/self/ns/cgroup 4026532303\n/proc/self/ns/ipc 4026532301\n/proc/self/ns/mnt 4026532299\n/proc/self/ns/net 4026532304\n/proc/self/ns/pid 4026532302\n/proc/self/ns/pid_for_children 4026532302\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532300' 72s ++ grep /proc/self/ns/mnt 72s ++ awk '{print $2}' 72s + want=4026532299 72s + assert_file_has_content info.json 4026532299 72s + fpath=info.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532299 info.json 72s + assert_file_has_content json-status.json 4026532299 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532299 json-status.json 72s + for NS in "ipc" "mnt" "net" "pid" "uts" 72s ++ echo $'/proc/self/ns/cgroup 4026532303\n/proc/self/ns/ipc 4026532301\n/proc/self/ns/mnt 4026532299\n/proc/self/ns/net 4026532304\n/proc/self/ns/pid 4026532302\n/proc/self/ns/pid_for_children 4026532302\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532300' 72s ++ grep /proc/self/ns/net 72s ++ awk '{print $2}' 72s + want=4026532304 72s + assert_file_has_content info.json 4026532304 72s + fpath=info.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532304 info.json 72s + assert_file_has_content json-status.json 4026532304 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532304 json-status.json 72s + for NS in "ipc" "mnt" "net" "pid" "uts" 72s ++ echo $'/proc/self/ns/cgroup 4026532303\n/proc/self/ns/ipc 4026532301\n/proc/self/ns/mnt 4026532299\n/proc/self/ns/net 4026532304\n/proc/self/ns/pid 4026532302\n/proc/self/ns/pid_for_children 4026532302\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532300' 72s ++ grep /proc/self/ns/pid 72s ++ awk '{print $2}' 72s + want=$'4026532302\n4026532302' 72s + assert_file_has_content info.json $'4026532302\n4026532302' 72s + fpath=info.json 72s + shift 72s + for re in "$@" 72s + grep -q -e $'4026532302\n4026532302' info.json 72s + assert_file_has_content json-status.json $'4026532302\n4026532302' 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e $'4026532302\n4026532302' json-status.json 72s + for NS in "ipc" "mnt" "net" "pid" "uts" 72s ++ echo $'/proc/self/ns/cgroup 4026532303\n/proc/self/ns/ipc 4026532301\n/proc/self/ns/mnt 4026532299\n/proc/self/ns/net 4026532304\n/proc/self/ns/pid 4026532302\n/proc/self/ns/pid_for_children 4026532302\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532300' 72s ++ grep /proc/self/ns/uts 72s ++ awk '{print $2}' 72s + want=4026532300 72s + assert_file_has_content info.json 4026532300 72s + fpath=info.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532300 info.json 72s + assert_file_has_content json-status.json 4026532300 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e 4026532300 json-status.json 72s + ok 'namespace id info in info and json-status fd' 72s + test_count=32 72s + echo ok 32 'namespace id info in info and json-status fd' 72s ok 32 namespace id info in info and json-status fd 72s + command -v strace 72s + strace -h 72s + grep -v -e default 72s + grep -e fault 72s + 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 72s bwrap: Dropping capability 38 from bounds: Function not implemented 72s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e '"exit-code": [0-9]' json-status.json 72s + ok 'pre-exec failure doesn'\''t include exit-code in json-status' 72s + test_count=33 72s ok 33 pre-exec failure doesn't include exit-code in json-status 72s + echo ok 33 'pre-exec failure doesn'\''t include exit-code in json-status' 72s + notanexecutable=/ 72s + bwrap --bind / / --tmpfs /tmp --json-status-fd 42 / 72s bwrap: execvp /: Permission denied 72s + true 72s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 72s + fpath=json-status.json 72s + shift 72s + for re in "$@" 72s + grep -q -e '"exit-code": [0-9]' json-status.json 72s ok 34 exec failure doesn't include exit-code in json-status 72s + ok 'exec failure doesn'\''t include exit-code in json-status' 72s + test_count=34 72s + echo ok 34 'exec failure doesn'\''t include exit-code in json-status' 72s + test -n '' 72s + BWRAP_RECURSE='bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc' 72s + 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 72s bwrap: No permissions to create new namespace, likely because the kernel does not allow non-privileged user namespaces. See or . 72s ++ report_err 72s ++ local exit_status=1 72s Unexpected nonzero exit status 1 while running: $BWRAP_RECURSE -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello > recursive_proc.txt 72s + cleanup 72s + test -n '' 72s + test -f /var/tmp/tap-test.etvp1g/.testtmp 72s + rm -rf /var/tmp/tap-test.etvp1g 72s autopkgtest [19:16:05]: test upstream: -----------------------] 72s autopkgtest [19:16:05]: test upstream: - - - - - - - - - - results - - - - - - - - - - 72s upstream FAIL non-zero exit status 1 73s autopkgtest [19:16:06]: test userns: preparing testbed 73s Reading package lists... 73s Building dependency tree... 73s Reading state information... 73s Solving dependencies... 73s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 74s autopkgtest [19:16:07]: test userns: [----------------------- 74s # Unshare user ID 74s ok 1 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -u" should succeed 74s ok 2 74s ok 3 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /usr/bin/id -g" should succeed 74s ok 4 74s ok 5 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 /bin/sh -c ls -l /etc/passwd" should succeed 74s ok 6 74s # Combine new /dev with new user namespace (#71) 74s ok 7 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /bin/sh -c echo /dev/*" should succeed 74s ok 8 74s ok 9 74s ok 10 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -u" should succeed 74s ok 11 74s ok 12 - "bwrap --ro-bind / / --unshare-user --uid 2 --gid 3 --dev /dev /usr/bin/id -g" should succeed 74s ok 13 74s 1..13 74s autopkgtest [19:16:07]: test userns: -----------------------] 75s autopkgtest [19:16:08]: test userns: - - - - - - - - - - results - - - - - - - - - - 75s userns PASS 75s autopkgtest [19:16:08]: test upstream-as-root: preparing testbed 75s Reading package lists... 75s Building dependency tree... 75s Reading state information... 75s Solving dependencies... 75s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 76s autopkgtest [19:16:09]: test upstream-as-root: [----------------------- 76s +++ dirname tests/test-run.sh 76s ++ cd tests 76s ++ pwd 76s + srcd=/tmp/autopkgtest.Nn6lpg/build.zrK/src/tests 76s + . /tmp/autopkgtest.Nn6lpg/build.zrK/src/tests/libtest.sh 76s ++ set -e 76s ++ '[' -n '' ']' 76s +++ dirname tests/test-run.sh 76s ++ test_srcdir=tests 76s ++ '[' -n '' ']' 76s +++ dirname tests/test-run.sh 76s ++ test_builddir=tests 76s ++ . tests/libtest-core.sh 76s +++ type -p locale 76s ++++ locale -a 76s ++++ grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' 76s ++++ head -n1 76s +++ export LC_ALL=C.utf8 76s +++ LC_ALL=C.utf8 76s +++ '[' -z C.utf8 ']' 76s +++ unset LANGUAGE 76s +++ export G_DEBUG=fatal-warnings 76s +++ G_DEBUG=fatal-warnings 76s +++ trap report_err ERR 76s ++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sbin:/sbin 76s +++ mktemp -d /var/tmp/tap-test.XXXXXX 76s ++ tempdir=/var/tmp/tap-test.35dWlb 76s ++ touch /var/tmp/tap-test.35dWlb/.testtmp 76s ++ trap cleanup EXIT 76s ++ cd /var/tmp/tap-test.35dWlb 76s ++ : bwrap 76s +++ type -p bwrap 76s ++ test -u /usr/bin/bwrap 76s ++ FUSE_DIR= 76s +++ grep ' fuse[. ]' /proc/self/mounts 76s +++ awk '{print $2}' 76s ++++ id -u 76s +++ grep user_id=0 76s +++ id -u 76s ++ test 0 = 0 76s ++ is_uidzero=true 76s ++ UNREADABLE=/root/.bashrc 76s ++ true 76s ++ UNREADABLE= 76s ++ '[' /lib -ef /usr/lib ']' 76s ++ 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' 76s ++ RUN='bwrap --bind / / --tmpfs /tmp' 76s ++ '[' -z '' ']' 76s ++ bwrap --bind / / --tmpfs /tmp true 76s ++ basename tests/test-run.sh 76s + bn=test-run.sh 76s + test_count=0 76s + bwrap --help 76s + assert_file_has_content help.txt 'usage: bwrap' 76s + fpath=help.txt 76s + shift 76s + for re in "$@" 76s + grep -q -e 'usage: bwrap' help.txt 76s + ok 'Help works' 76s + test_count=1 76s + echo ok 1 'Help works' 76s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 76s ok 1 Help works 76s + '[' x '!=' x ']' 76s + ok_skip 'no FUSE support' 76s + ok '# SKIP' 'no FUSE support' 76s + test_count=2 76s + echo ok 2 '# SKIP' 'no FUSE support' 76s + bwrap --bind / / --tmpfs /tmp --proc /proc true 76s + ok 'can mount /proc with ' 76s + test_count=3 76s + echo ok 3 'can mount /proc with ' 76s + bwrap --bind / / --tmpfs /tmp --unshare-net --proc /proc --dev /dev true 76s + ok 'can unshare network, create new /dev with ' 76s + test_count=4 76s + echo ok 4 'can unshare network, create new /dev with ' 76s + echo -n 'expect EPERM: ' 76s expect EPERM: + test -n '' 76s + CAP= 76s + cat /etc/shadow 76s + cat /etc/shadow 76s ok 2 # SKIP no FUSE support 76s ok 3 can mount /proc with 76s ok 4 can unshare network, create new /dev with 76s ok 5 cannot read /etc/shadow with 76s ok 6 # SKIP not sure what unreadable file to use 76s ok 7 can bind a destination over a symlink 76s ok 8 # SKIP no FUSE support 76s ok 9 can mount /proc with --unshare-user-try 76s ok 10 can unshare network, create new /dev with --unshare-user-try 76s ok 11 cannot read /etc/shadow with --unshare-user-try 76s ok 12 # SKIP not sure what unreadable file to use 76s ok 13 can bind a destination over a symlink 76s ok 14 # SKIP no FUSE support 76s ok 15 can mount /proc with --unshare-pid 76s ok 16 can unshare network, create new /dev with --unshare-pid 76s ok 17 cannot read /etc/shadow with --unshare-pid 76s + ok 'cannot read /etc/shadow with ' 76s + test_count=5 76s + echo ok 5 'cannot read /etc/shadow with ' 76s + '[' x '!=' x ']' 76s + ok_skip 'not sure what unreadable file to use' 76s + ok '# SKIP' 'not sure what unreadable file to use' 76s + test_count=6 76s + echo ok 6 '# SKIP' 'not sure what unreadable file to use' 76s + bwrap --bind / / --tmpfs /tmp --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 76s + ok 'can bind a destination over a symlink' 76s + test_count=7 76s + echo ok 7 'can bind a destination over a symlink' 76s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 76s + '[' x '!=' x ']' 76s + ok_skip 'no FUSE support' 76s + ok '# SKIP' 'no FUSE support' 76s + test_count=8 76s + echo ok 8 '# SKIP' 'no FUSE support' 76s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --proc /proc true 76s + ok 'can mount /proc with --unshare-user-try' 76s + test_count=9 76s + echo ok 9 'can mount /proc with --unshare-user-try' 76s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-net --proc /proc --dev /dev true 76s + ok 'can unshare network, create new /dev with --unshare-user-try' 76s + test_count=10 76s + echo ok 10 'can unshare network, create new /dev with --unshare-user-try' 76s + echo -n 'expect EPERM: ' 76s expect EPERM: + test -n '' 76s + CAP= 76s + cat /etc/shadow 76s + cat /etc/shadow 76s + ok 'cannot read /etc/shadow with --unshare-user-try' 76s + test_count=11 76s + echo ok 11 'cannot read /etc/shadow with --unshare-user-try' 76s + '[' x '!=' x ']' 76s + ok_skip 'not sure what unreadable file to use' 76s + ok '# SKIP' 'not sure what unreadable file to use' 76s + test_count=12 76s + echo ok 12 '# SKIP' 'not sure what unreadable file to use' 76s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 76s + ok 'can bind a destination over a symlink' 76s + test_count=13 76s + echo ok 13 'can bind a destination over a symlink' 76s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 76s + '[' x '!=' x ']' 76s + ok_skip 'no FUSE support' 76s + ok '# SKIP' 'no FUSE support' 76s + test_count=14 76s + echo ok 14 '# SKIP' 'no FUSE support' 76s + bwrap --bind / / --tmpfs /tmp --unshare-pid --proc /proc true 76s + ok 'can mount /proc with --unshare-pid' 76s + test_count=15 76s + echo ok 15 'can mount /proc with --unshare-pid' 76s + bwrap --bind / / --tmpfs /tmp --unshare-pid --unshare-net --proc /proc --dev /dev true 76s + ok 'can unshare network, create new /dev with --unshare-pid' 76s + test_count=16 76s + echo ok 16 'can unshare network, create new /dev with --unshare-pid' 76s + echo -n 'expect EPERM: ' 76s expect EPERM: + test -n '' 76s + CAP= 76s + cat /etc/shadow 76s + cat /etc/shadow 76s + ok 'cannot read /etc/shadow with --unshare-pid' 76s + test_count=17 76s + echo ok 17 'cannot read /etc/shadow with --unshare-pid' 76s + '[' x '!=' x ']' 76s + ok_skip 'not sure what unreadable file to use' 76s + ok '# SKIP' 'not sure what unreadable file to use' 76s + test_count=18 76s ok 18 # SKIP not sure what unreadable file to use 76s ok 19 can bind a destination over a symlink 76s ok 20 # SKIP no FUSE support 76s ok 21 can mount /proc with --unshare-user-try --unshare-pid 76s ok 22 can unshare network, create new /dev with --unshare-user-try --unshare-pid 76s + echo ok 18 '# SKIP' 'not sure what unreadable file to use' 76s + bwrap --bind / / --tmpfs /tmp --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 76s + ok 'can bind a destination over a symlink' 76s + test_count=19 76s + echo ok 19 'can bind a destination over a symlink' 76s + for ALT in "" "--unshare-user-try" "--unshare-pid" "--unshare-user-try --unshare-pid" 76s + '[' x '!=' x ']' 76s + ok_skip 'no FUSE support' 76s + ok '# SKIP' 'no FUSE support' 76s + test_count=20 76s + echo ok 20 '# SKIP' 'no FUSE support' 76s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --proc /proc true 76s + ok 'can mount /proc with --unshare-user-try --unshare-pid' 76s + test_count=21 76s + echo ok 21 'can mount /proc with --unshare-user-try --unshare-pid' 76s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --unshare-net --proc /proc --dev /dev true 76s + ok 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 76s + test_count=22 76s + echo ok 22 'can unshare network, create new /dev with --unshare-user-try --unshare-pid' 76s + echo -n 'expect EPERM: ' 76s expect EPERM: + test -n '' 76s + CAP= 76s + cat /etc/shadow 76s + cat /etc/shadow 76s ok 23 cannot read /etc/shadow with --unshare-user-try --unshare-pid 76s + ok 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 76s + test_count=23 76s + echo ok 23 'cannot read /etc/shadow with --unshare-user-try --unshare-pid' 76s + '[' x '!=' x ']' 76s + ok_skip 'not sure what unreadable file to use' 76s + ok '# SKIP' 'not sure what unreadable file to use' 76s + test_count=24 76s + echo ok 24 '# SKIP' 'not sure what unreadable file to use' 76s ok 24 # SKIP not sure what unreadable file to use 76s + bwrap --bind / / --tmpfs /tmp --unshare-user-try --unshare-pid --dir /tmp/dir --symlink dir /tmp/link --bind /etc /tmp/link true 76s + ok 'can bind a destination over a symlink' 76s + test_count=25 76s + echo ok 25 'can bind a destination over a symlink' 76s + rm -f ./symlink 76s ok 25 can bind a destination over a symlink 76s ++ pwd 76s ++ pwd 76s ++ pwd 76s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.35dWlb /var/tmp/tap-test.35dWlb --symlink /dev/null /var/tmp/tap-test.35dWlb/symlink true 76s + readlink ./symlink 76s + assert_file_has_content target.txt /dev/null 76s + fpath=target.txt 76s + shift 76s + for re in "$@" 76s + grep -q -e /dev/null target.txt 76s + ok '--symlink works' 76s + test_count=26 76s + echo ok 26 '--symlink works' 76s ++ pwd 76s ++ pwd 76s ++ pwd 76s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.35dWlb /var/tmp/tap-test.35dWlb --symlink /dev/null /var/tmp/tap-test.35dWlb/symlink true 76s ok 26 --symlink works 76s + ok '--symlink is idempotent' 76s + test_count=27 76s + echo ok 27 '--symlink is idempotent' 76s ok 27 --symlink is idempotent 76s ++ pwd 76s ++ pwd 76s ++ pwd 76s + bwrap --bind / / --tmpfs /tmp --ro-bind / / --bind /var/tmp/tap-test.35dWlb /var/tmp/tap-test.35dWlb --symlink /dev/full /var/tmp/tap-test.35dWlb/symlink true 76s + assert_file_has_content err.txt 'Can'\''t make symlink .*: existing destination is /dev/null' 76s + fpath=err.txt 76s + shift 76s + for re in "$@" 76s + grep -q -e 'Can'\''t make symlink .*: existing destination is /dev/null' err.txt 76s + ok '--symlink doesn'\''t overwrite a conflicting symlink' 76s + test_count=28 76s + echo ok 28 '--symlink doesn'\''t overwrite a conflicting symlink' 76s + 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 76s ok 28 --symlink doesn't overwrite a conflicting symlink 76s + ok 'all expected devices were created' 76s + test_count=29 76s + echo ok 29 'all expected devices were created' 76s + bwrap --bind / / --tmpfs /tmp --unshare-pid --as-pid-1 --bind / / bash -c 'echo $$' 76s + assert_file_has_content as_pid_1.txt 1 76s + fpath=as_pid_1.txt 76s + shift 76s + for re in "$@" 76s + grep -q -e 1 as_pid_1.txt 76s + ok 'can run as pid 1' 76s + test_count=30 76s + echo ok 30 'can run as pid 1' 76s + bwrap --bind / / --tmpfs /tmp --unshare-all --info-fd 42 --json-status-fd 43 -- bash -c 'exit 42' 76s ok 29 all expected devices were created 76s ok 30 can run as pid 1 76s + assert_file_has_content info.json '"child-pid": [0-9]' 76s + fpath=info.json 76s + shift 76s + for re in "$@" 76s + grep -q -e '"child-pid": [0-9]' info.json 76s + assert_file_has_content json-status.json '"child-pid": [0-9]' 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e '"child-pid": [0-9]' json-status.json 76s + assert_file_has_content_literal json-status.json '"exit-code": 42' 76s + fpath=json-status.json 76s + shift 76s + for s in "$@" 76s + grep -q -F -e '"exit-code": 42' json-status.json 76s + ok 'info and json-status fd' 76s + test_count=31 76s + echo ok 31 'info and json-status fd' 76s ++ 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/*' 76s ok 31 info and json-status fd 76s + DATA=$'/proc/self/ns/cgroup 4026532362\n/proc/self/ns/ipc 4026532302\n/proc/self/ns/mnt 4026532300\n/proc/self/ns/net 4026532363\n/proc/self/ns/pid 4026532304\n/proc/self/ns/pid_for_children 4026532304\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532301' 76s + for NS in "ipc" "mnt" "net" "pid" "uts" 76s ++ echo $'/proc/self/ns/cgroup 4026532362\n/proc/self/ns/ipc 4026532302\n/proc/self/ns/mnt 4026532300\n/proc/self/ns/net 4026532363\n/proc/self/ns/pid 4026532304\n/proc/self/ns/pid_for_children 4026532304\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532301' 76s ++ grep /proc/self/ns/ipc 76s ++ awk '{print $2}' 76s + want=4026532302 76s + assert_file_has_content info.json 4026532302 76s + fpath=info.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532302 info.json 76s + assert_file_has_content json-status.json 4026532302 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532302 json-status.json 76s + for NS in "ipc" "mnt" "net" "pid" "uts" 76s ++ echo $'/proc/self/ns/cgroup 4026532362\n/proc/self/ns/ipc 4026532302\n/proc/self/ns/mnt 4026532300\n/proc/self/ns/net 4026532363\n/proc/self/ns/pid 4026532304\n/proc/self/ns/pid_for_children 4026532304\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532301' 76s ++ grep /proc/self/ns/mnt 76s ++ awk '{print $2}' 76s + want=4026532300 76s + assert_file_has_content info.json 4026532300 76s + fpath=info.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532300 info.json 76s + assert_file_has_content json-status.json 4026532300 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532300 json-status.json 76s + for NS in "ipc" "mnt" "net" "pid" "uts" 76s ++ echo $'/proc/self/ns/cgroup 4026532362\n/proc/self/ns/ipc 4026532302\n/proc/self/ns/mnt 4026532300\n/proc/self/ns/net 4026532363\n/proc/self/ns/pid 4026532304\n/proc/self/ns/pid_for_children 4026532304\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532301' 76s ++ grep /proc/self/ns/net 76s ++ awk '{print $2}' 76s + want=4026532363 76s + assert_file_has_content info.json 4026532363 76s + fpath=info.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532363 info.json 76s + assert_file_has_content json-status.json 4026532363 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532363 json-status.json 76s + for NS in "ipc" "mnt" "net" "pid" "uts" 76s ++ echo $'/proc/self/ns/cgroup 4026532362\n/proc/self/ns/ipc 4026532302\n/proc/self/ns/mnt 4026532300\n/proc/self/ns/net 4026532363\n/proc/self/ns/pid 4026532304\n/proc/self/ns/pid_for_children 4026532304\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532301' 76s ++ grep /proc/self/ns/pid 76s ++ awk '{print $2}' 76s + want=$'4026532304\n4026532304' 76s + assert_file_has_content info.json $'4026532304\n4026532304' 76s + fpath=info.json 76s + shift 76s + for re in "$@" 76s + grep -q -e $'4026532304\n4026532304' info.json 76s + assert_file_has_content json-status.json $'4026532304\n4026532304' 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e $'4026532304\n4026532304' json-status.json 76s + for NS in "ipc" "mnt" "net" "pid" "uts" 76s ++ echo $'/proc/self/ns/cgroup 4026532362\n/proc/self/ns/ipc 4026532302\n/proc/self/ns/mnt 4026532300\n/proc/self/ns/net 4026532363\n/proc/self/ns/pid 4026532304\n/proc/self/ns/pid_for_children 4026532304\n/proc/self/ns/time 4026531834\n/proc/self/ns/time_for_children 4026531834\n/proc/self/ns/user 4026532298\n/proc/self/ns/uts 4026532301' 76s ++ grep /proc/self/ns/uts 76s ++ awk '{print $2}' 76s + want=4026532301 76s + assert_file_has_content info.json 4026532301 76s + fpath=info.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532301 info.json 76s + assert_file_has_content json-status.json 4026532301 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e 4026532301 json-status.json 76s + ok 'namespace id info in info and json-status fd' 76s + test_count=32 76s + echo ok 32 'namespace id info in info and json-status fd' 76s + command -v strace 76s + strace -h 76s + grep -v -e default 76s + grep -e fault 76s + 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 76s ok 32 namespace id info in info and json-status fd 76s bwrap: Adding ambient capability 36: Function not implemented 76s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e '"exit-code": [0-9]' json-status.json 76s + ok 'pre-exec failure doesn'\''t include exit-code in json-status' 76s + test_count=33 76s + echo ok 33 'pre-exec failure doesn'\''t include exit-code in json-status' 76s + notanexecutable=/ 76s + bwrap --bind / / --tmpfs /tmp --json-status-fd 42 / 76s bwrap: execvp /: Permission denied 76s + true 76s + assert_not_file_has_content json-status.json '"exit-code": [0-9]' 76s + fpath=json-status.json 76s + shift 76s + for re in "$@" 76s + grep -q -e '"exit-code": [0-9]' json-status.json 76s + ok 'exec failure doesn'\''t include exit-code in json-status' 76s + test_count=34 76s + echo ok 34 'exec failure doesn'\''t include exit-code in json-status' 76s + test -n '' 76s + BWRAP_RECURSE='bwrap --unshare-user --uid 0 --gid 0 --cap-add ALL --bind / / --bind /proc /proc' 76s + 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 76s ok 33 pre-exec failure doesn't include exit-code in json-status 76s ok 34 exec failure doesn't include exit-code in json-status 76s bwrap: No permissions to create new namespace, likely because the kernel does not allow non-privileged user namespaces. See or . 76s ++ report_err 76s ++ local exit_status=1 76s Unexpected nonzero exit status 1 while running: $BWRAP_RECURSE -- /proc/self/exe --unshare-all --bind / / --bind /proc /proc echo hello > recursive_proc.txt 76s + cleanup 76s + test -n '' 76s + test -f /var/tmp/tap-test.35dWlb/.testtmp 76s + rm -rf /var/tmp/tap-test.35dWlb 77s autopkgtest [19:16:10]: test upstream-as-root: -----------------------] 77s autopkgtest [19:16:10]: test upstream-as-root: - - - - - - - - - - results - - - - - - - - - - 77s upstream-as-root FAIL non-zero exit status 1 77s autopkgtest [19:16:10]: @@@@@@@@@@@@@@@@@@@@ summary 77s basic PASS 77s dev PASS 77s net PASS 77s upstream FAIL non-zero exit status 1 77s userns PASS 77s upstream-as-root FAIL non-zero exit status 1