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