Hi josch,
while debugging mmdebstrap, I observed an odd behavior I'd like to
report separately. I'm not sure it is fixable in a sane way or worth
fixing at all (as opposed to documenting it maybe). I also reproduce it
on 1.5.7 (sid).
| $ mmdebstrap --variant=apt sid /dev/null --chrooted-essential-hook=bash
| I: automatically chosen mode: unshare
| I: chroot architecture amd64 is equal to the host's architecture
| I: finding correct signed-by value...
| done
| I: automatically chosen format: null
| I: using /tmp/mmdebstrap.Ti_tmTJfJt as tempdir
| I: running apt-get update...
| done
| I: downloading packages with apt...
| done
| I: extracting archives...
| done
| I: installing essential packages...
| done
| I: running --chrooted-essential-hook in shell: sh -c 'bash'
| root@debian:/#
At this point, I have a shell in the essential hook just as expected. It
seems to be important to be interactive as I cannot reproduce this with
say --chrooted-essential-hook=true. I won't do anything here and just
press ctrl-d.
| root@debian:/# exit
| I: installing remaining packages inside the chroot...
| done
| installing: 0.00 [> ]
| [1]+ Stopped mmdebstrap --variant=apt sid /dev/null --chrooted-essential-hook=bash
Somehow mmdebstrap stopped here. If I use --variant=essential instead, I
cannot reproduce this. Let's try continuing.
| $ fg
| mmdebstrap --variant=apt sid /dev/null --chrooted-essential-hook
This looks very hung. How about ctrl-c?
| ^CI: run_progress() received signal INT: waiting for child...
| I: main() received signal INT: waiting for setup...
| I: main() received signal INT: waiting for setup...
| done
| Reading package lists...
| Building dependency tree...
| The following additional packages will be installed:
| debian-archive-keyring libapt-pkg7.0 libhogweed6t64 liblz4-1 libnettle8t64
| libseccomp2 libstdc++6 libxxhash0 sqv
| Suggested packages:
| apt-doc aptitude | synaptic | wajig dpkg-dev gnupg | gnupg2 | gnupg1
| powermgmt-base
| Recommended packages:
| ca-certificates
| The following NEW packages will be installed:
| apt debian-archive-keyring libapt-pkg7.0 libhogweed6t64 liblz4-1
| libnettle8t64 libseccomp2 libstdc++6 libxxhash0 sqv
| 0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
| Need to get 5118 kB of archives.
| After this operation, 15.9 MB of additional disk space will be used.
| Get:1 http://deb.debian.org/debian sid/main amd64 libnettle8t64 amd64 3.10.2-1 [307 kB]
| Get:2 http://deb.debian.org/debian sid/main amd64 libhogweed6t64 amd64 3.10.2-1 [336 kB]
| Get:3 http://deb.debian.org/debian sid/main amd64 sqv amd64 1.3.0-3 [661 kB]
| Get:4 http://deb.debian.org/debian sid/main amd64 libxxhash0 amd64 0.8.3-2 [27.1 kB]
| Get:5 http://deb.debian.org/debian sid/main amd64 liblz4-1 amd64 1.10.0-6 [70.5 kB]
| Get:6 http://deb.debian.org/debian sid/main amd64 libstdc++6 amd64 15.2.0-8 [736 kB]
| Get:7 http://deb.debian.org/debian sid/main amd64 libapt-pkg7.0 amd64 3.1.12 [1229 kB]
| Get:8 http://deb.debian.org/debian sid/main amd64 debian-archive-keyring all 2025.1 [179 kB]
| Get:9 http://deb.debian.org/debian sid/main amd64 libseccomp2 amd64 2.6.0-2 [51.7 kB]
| Get:10 http://deb.debian.org/debian sid/main amd64 apt amd64 3.1.12 [1520 kB]
| Fetched 5118 kB in 0s (163 MB/s)
| Chrooting into /tmp/mmdebstrap.Ti_tmTJfJt/
| E: Sub-process env exited unexpectedly
| W: Operation was interrupted before it could finish
| E: setup failed: E: apt-get -o Dir::Bin::dpkg=env -o DPkg::Options::=--unset=TMPDIR -o DPkg::Options::=dpkg --yes install -oAPT::Status-Fd=<$fd> -oDpkg::Use-Pty=false apt failed: process exited with 100 and error in console output
| W: hooklistener errored out: E: received eof on socket
|
| I: main() received signal PIPE: waiting for setup...
| I: removing tempdir /tmp/mmdebstrap.Ti_tmTJfJt...
| E: mmdebstrap failed to run
Given the signal, the behavior feels ok-ish. I'm more wondering about
why it stops in the first place.
I am aware that --chrooted hooks are undocumented. You may also
reproduce this via --essential-hook="sh -c bash".
I hope that I don't nerd snipe you now. This is not important and not
blocking my work. Maybe just leaving it in the bug tracker to document
it as known-problem is good enough. I haven't dug any deeper to avoid
leveling up the yak I'm shaving.
Helmut