From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id yNUhMaocTl91JQAA0tVLHw (envelope-from ) for ; Tue, 01 Sep 2020 10:04:26 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id SHz/LKocTl9JHQAAbx9fmQ (envelope-from ) for ; Tue, 01 Sep 2020 10:04:26 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id C7F85940C2C for ; Tue, 1 Sep 2020 10:04:25 +0000 (UTC) Received: from localhost ([::1]:38098 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kD39L-0005gZ-Hb for larch@yhetil.org; Tue, 01 Sep 2020 06:04:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46190) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kD374-00019l-VG for guix-patches@gnu.org; Tue, 01 Sep 2020 06:02:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:43555) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kD374-0004sT-KJ for guix-patches@gnu.org; Tue, 01 Sep 2020 06:02:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kD374-0004JL-Ha for guix-patches@gnu.org; Tue, 01 Sep 2020 06:02:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#42849] [PATCH 3/3] installer: Run the installation inside a container. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 01 Sep 2020 10:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42849 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Mathieu Othacehe Cc: 42849@debbugs.gnu.org Received: via spool by 42849-submit@debbugs.gnu.org id=B42849.159895451216542 (code B ref 42849); Tue, 01 Sep 2020 10:02:02 +0000 Received: (at 42849) by debbugs.gnu.org; 1 Sep 2020 10:01:52 +0000 Received: from localhost ([127.0.0.1]:55098 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kD36t-0004Ik-Pb for submit@debbugs.gnu.org; Tue, 01 Sep 2020 06:01:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36008) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kD36s-0004IG-Fs for 42849@debbugs.gnu.org; Tue, 01 Sep 2020 06:01:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47948) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kD36n-0004ra-0z for 42849@debbugs.gnu.org; Tue, 01 Sep 2020 06:01:45 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=59166 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kD36l-0003lK-OH; Tue, 01 Sep 2020 06:01:44 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= In-Reply-To: <87a6ybiab6.fsf@gnu.org> (Mathieu Othacehe's message of "Mon, 31 Aug 2020 08:44:29 +0200") Date: Tue, 01 Sep 2020 10:48:03 +0200 Message-ID: <87k0xdanng.fsf@gnu.org> References: <20200813123419.263639-1-othacehe@gnu.org> <20200813123419.263639-3-othacehe@gnu.org> <87eennhnpz.fsf@gnu.org> <87a6ybiab6.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 16 Fructidor an 228 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -3.3 (---) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: -1.01 X-TUID: eAIvL0fgOtXQ Hi Mathieu! Mathieu Othacehe skribis: >> Should =E2=80=98mount-cow-store=E2=80=99 also make an overlay for /var/g= uix/db? That >> way, changes to that directory would go to /mnt/var/guix/db and the >> original database would remain unchanged. > > I took the lazy path because it's just one file that keeps reasonably > small. Adding an extra overlay for /var/guix/db would make > sense here. Yeah, no big deal. >> Hmm, that seems quite complex, and it=E2=80=99s not great that we have t= o tweak >> guix-daemon-service =E2=80=9Cjust=E2=80=9D for this. > > Yes I can't say I'm satisfied with all of this but I'm trying different > angles for this problem since months, with no proper outcome. Yeah=E2=80=A6 (I must say I really appreciate your commitment tackling hard problems like this one, kudos!) >> Is there a way we can identify processes that have open overlay files, >> so we could terminate them? > > That's the current approach but it breaks very ofter because kmscon, > udev or any other processes that can't be killed, opens an overlay file. > I'd really like to avoid relying on this kind of solution. OK, makes sense! >> Alternately, something that might simplify the code would be to always >> run guix-daemon in a separate mount namespace. We could add a >> =E2=80=98fork+exec-command/container=E2=80=99 procedure in (gnu build sh= epherd) to help >> with that. >> >> That way, all we=E2=80=99d need to do is to run =E2=80=98guix system ini= t=E2=80=99 in that same >> mount namespace, which can be achieved using =E2=80=98container-excursio= n=E2=80=99. > > Yes I tried that at first but there's a catch. While running guix-daemon > in it's own mount namespace, it won't 'see' the mounted file-systems > such as /mnt. > > So that would mean that we would have to do spawn a containerized > process that would: > > * Join guix-daemon mnt namespace > * Call "with-mounted-partitions" > * Mount the cow-store > * Run 'guix system init' > > In this is end it still seem overly complex, but I can give it another > try. WDYT? It does seem complex indeed. So perhaps we can settle on the solution you sent, but let=E2=80=99s see if= we can move complexity out of sight. For example, if we can arrange to have a =E2=80=98fork+exec-command/container=E2=80=99 procedure that can be = passed the PID of a namespace, such that the =E2=80=98start=E2=80=99 method of guix-da= emon is just a few more lines its current definition, I=E2=80=99ll be happy. How does that sound? Thank you! Ludo=E2=80=99.