#789694 schroot: Please consider patch to fix it on hurd-i386

Package:
schroot
Source:
schroot
Description:
Execute commands in a chroot environment
Submitter:
Gabriele Giacone
Date:
2022-06-06 10:27:07 UTC
Severity:
wishlist
Tags:
#789694#5
Date:
2015-06-23 13:42:52 UTC
From:
To:
Dear maintainer,

attached patch makes schroot working on hurd, has been being tested on
exodar porterbox since many months.
It works around #763932 bug.

More info in threads at
https://lists.debian.org/debian-hurd/2014/09/msg00058.html
https://lists.debian.org/debian-hurd/2015/05/msg00063.html

Thanks for considering.

#789694#10
Date:
2015-07-09 08:45:04 UTC
From:
To:
Gabriele Giacone, le Tue 23 Jun 2015 15:42:52 +0200, a écrit :

We also need a summary, because there is a lot of information spread
across the whole thread, it's hard to determine how it fits together.

AIUI, what we have is:

- debootstrap sets up a passive (i.e. permanent) bind mount from /proc
to $CHROOT/proc
- schroot sets up other active bind mounts (e.g. for /dev, /servers,
etc.) as added in gnu/fstab from your patch
- do_umount_all "$CHROOT_MOUNT_LOCATION" does not work on the Hurd
because of bug #763932, that's why the second do_umount_all call.
- that second call (do_umount_all "${CHROOT_FILE_UNPACK_DIR}/${SESSION_ID}")
manages to umount /dev, /servers etc. but not /proc because that one is
passive, and umount doesn't unmount passive mounts. This is why the
addition of the explicit settrans to make it go away.

Please correct anything wrong in this summary.  Notably I don't think
debootstrap uses a passive translator, and thus I don't see why the
second do_umount_all shouldn't be able to umount $CHROOT/proc actually.

That was the kind of summary you should have attached with your patch.
Please really take the habit of writing this kind of summary, otherwise
it'd take a huge lot of time for the maintainer to gather, thus
considerably lowering the probability that he works on the bug at all.

#789694#15
Date:
2015-07-09 08:59:18 UTC
From:
To:
Samuel Thibault, le Thu 09 Jul 2015 10:45:04 +0200, a écrit :

I have thus commited everything but that explicit settrans, which I
don't understand why it would be needed.

Samuel

#789694#20
Date:
2015-07-09 12:34:23 UTC
From:
To:
debootstrap in hurd case just runs "setup-translators -K", which sets
another passive /proc under chroot, and it bindmounts /dev and
/servers.
Bindmounts are active.
BTW patch fixes CHROOT_TYPE=file case only, I didn't spend time on
other cases. So how one creates the chroot tarball should not actually
matter.

Yes, /proc /dev /servers in gnu/fstab.

Correct.

Correct.

As said above, debootstrap does create /proc passive translator under
chroot and maybe that would break chroot removal in CHROOT_TYPE!=file
cases. Not tested.
In CHROOT_TYPE=file case, tarball gets uncompressed, no passive
translators around, /proc /dev /servers get bindmounted and everything
works and gets removed fine. Unless... one runs setup-translators by
hand or by upgrading hurd package in chroot, that will set /proc
passive translator, which will make chroot removal fail.

I already tried to explain it at [0][1], probably fixable by making
setup-translators not to set passive /proc under chroots if already
bindmounted, as said [2] no idea how to detect that.

[0] https://lists.debian.org/debian-hurd/2014/09/msg00058.html
[1] https://lists.debian.org/debian-hurd/2015/05/msg00069.html
[2] https://lists.debian.org/debian-hurd/2014/10/msg00007.html

#789694#25
Date:
2015-07-26 16:26:22 UTC
From:
To:
I just want to check on the state of this patch and add a few notes.

I'm not familiar with the hurd details, so really just wanted to check
if any changes were required before it was merged.  Note that I've
opened pull requests here:

https://github.com/codelibre-net/schroot/pull/7 (master)
https://github.com/codelibre-net/schroot/pull/6 (1.6 branch)

Please feel free to add any comments there if needed.

Regarding Samuel's commit to the alioth master branch: this is no longer
the canonical upstream repo for schroot, so committing here is not a
great idea; it's now basically a mirror of the actual github repo, so
and commits are liable to be lost.  The above two pull requests are your
commit split into two and rebased onto the 1.6 branch (which is what's
currently in Debian unstable).

If you're happy with both of the above pull requests, I'll merge them
and make a new 1.6 release.


Kind regards,
Roger

#789694#30
Date:
2015-07-30 18:34:49 UTC
From:
To:
Roger Leigh, le Sun 26 Jul 2015 16:26:22 +0000, a écrit :

Aow, ok.

Yes, please.

Samuel

#789694#35
Date:
2016-02-15 22:31:04 UTC
From:
To:
Hello,

Samuel Thibault, on Thu 30 Jul 2015 20:34:49 +0200, wrote:

Are there any news about this?

Thanks,
Samuel

#789694#40
Date:
2016-02-15 22:47:33 UTC
From:
To:
Hi,

These were merged into the 1.6 and master branches, but I've yet to make
a new release.  There are some other pending PRs to finish review and
test, and I can make a release after that now that I have some Debian
VMs to build and test in.


Regards,
Roger

#789694#45
Date:
2022-05-29 21:37:24 UTC
From:
To:
Gabriele Giacone wrote...

Greetings,

schroot 1.6.10-13 was accepted to unstable a few moments ago and should
contain the fix. Can you please check whether there's anything left to
do here?

Regards,

    Christoph

#789694#52
Date:
2022-06-06 10:17:53 UTC
From:
To:
Hello,

Christoph Biedl, le dim. 29 mai 2022 23:37:24 +0200, a ecrit:

It seems to be working fine indeed, thanks!

Samuel