From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#33370: guix publish: at least one user will have to build a given substitute Date: Wed, 14 Nov 2018 11:09:57 +0100 Message-ID: <87in10km16.fsf@gnu.org> References: <87ftw4wnc7.fsf@lassieur.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49981) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gMs8W-0003DY-Po for bug-guix@gnu.org; Wed, 14 Nov 2018 05:11:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gMs8U-0006PE-Hl for bug-guix@gnu.org; Wed, 14 Nov 2018 05:11:04 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:46695) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gMs8U-0006P0-EQ for bug-guix@gnu.org; Wed, 14 Nov 2018 05:11:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gMs8U-0003MY-6K for bug-guix@gnu.org; Wed, 14 Nov 2018 05:11:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87ftw4wnc7.fsf@lassieur.org> ("=?UTF-8?Q?Cl=C3=A9ment?= Lassieur"'s message of "Wed, 14 Nov 2018 00:48:40 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: =?UTF-8?Q?Cl=C3=A9ment?= Lassieur Cc: 33370@debbugs.gnu.org Hello, Cl=C3=A9ment Lassieur skribis: > I've noticed that narinfo baking is triggered by user requests when the > '--cache' option of 'guix publish' is used. It means that the first > user who will want it will get the 404 response and will have to build > it manually. (See guix/scripts/publish.scm, make-request-handler.) Note that the first request (404) returns with an expiry of 5mn instead of the default (much longer) expiry for =E2=80=9Cnormal=E2=80=9D 404s. We discussed this behavior at length back then and that seemed to me like a reasonable behavior for a service with many users: the first one gets 404 (or has to wait for 5 more minutes), but when there are enough users, it doesn=E2=80=99t matter much. For a single-user setup, I recommend not using =E2=80=98--cache=E2=80=99. > Would it be possible to trigger the baking right after the build is > done? So that every user can be sure that they will get the substitute > once they know that Cuirass has built it. > > If 'guix publish' has no way to get the notification that a build is > done, maybe Cuirass could trigger the baking? (But that would be > hackish in my opinion.) I had that in mind: adding a build completion hook on Cuirass, which could trigger baking (I don=E2=80=99t think it=E2=80=99s particularly hacki= sh: Cuirass is the only place that can send a notification.) Basically we=E2=80=99d ru= n: cuirass --build-completion-hook=3D/some/program =E2=80=A6 and that program could do a GET on the right narinfo URL(s). This would be useful in reducing latency; the downside is that we=E2=80=99d= bake lots of things, even possibly things that nobody ever needs. Thoughts? Ludo=E2=80=99.