From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Subject: bug#33737: do not attempt to build a package known to be broken Date: Tue, 18 Dec 2018 11:50:01 +0100 Message-ID: <87mup3hzxi.fsf@gnu.org> References: <87efakyb26.fsf@elephly.net> <20181216211451.7e15fdc7@scratchpost.org> <87imztw2zx.fsf@elephly.net> 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]:38100) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gZCxr-0006k7-Ka for bug-guix@gnu.org; Tue, 18 Dec 2018 05:51:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gZCxq-0003TM-OZ for bug-guix@gnu.org; Tue, 18 Dec 2018 05:51:03 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:48385) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gZCxq-0003TD-Hv for bug-guix@gnu.org; Tue, 18 Dec 2018 05:51:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gZCxq-0003FU-E8 for bug-guix@gnu.org; Tue, 18 Dec 2018 05:51:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87imztw2zx.fsf@elephly.net> (Ricardo Wurmus's message of "Sun, 16 Dec 2018 22:55:30 +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: Ricardo Wurmus Cc: 33737@debbugs.gnu.org Hello! Ricardo Wurmus skribis: > Danny Milosavljevic writes: > >>> I propose that =E2=80=9Cguix publish=E2=80=9D should also convey inform= ation about >>> failed builds. The Guix client can then abort right away without >>> wasting time and power to attempt a doomed build. Users may override >>> this with =E2=80=9C--fallback=E2=80=9D or a new option. Good idea! The difficulty is that the protocol between =E2=80=98guix substitute --quer= y=E2=80=99 and the daemon is currently very much Boolean: either =E2=80=98guix substit= ute=E2=80=99 provides the binary or it doesn=E2=80=99t. We=E2=80=99d have to adjust it. >> As long as we distinguish transient build machine errors (disk full, can= 't >> resolve hostname, too many names in directory, no inodes left etc) from = actual >> errors in the source code, +1. > > I was thinking of something very simple. The daemon is already capable > of caching build failures; I think it may be good to simply pass that > information on to clients. The daemon tries to cache only =E2=80=9Cpersistent=E2=80=9D failures. In p= articular, local failures likely due to lack of space are not cached. However, the daemon currently doesn=E2=80=99t distinguish between ENOSPC and actual failures for offloaded builds. We may be able to fix this by having =E2=80=98guix offload=E2=80=99 check the available disk space upon f= ailure. Then there=E2=80=99s the problem of non-deterministic failures. For these = it would be nicer to let the user build stuff anyway. There=E2=80=99s no good solution here. Ludo=E2=80=99.