From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Cuirass news Date: Wed, 24 Jan 2018 23:12:08 +0100 Message-ID: <877es6x5xj.fsf@gnu.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]:34496) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eeTHA-0004A8-QN for guix-devel@gnu.org; Wed, 24 Jan 2018 17:12:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eeTHA-0008VD-1d for guix-devel@gnu.org; Wed, 24 Jan 2018 17:12:12 -0500 Received: from hera.aquilenet.fr ([2a0c:e300::1]:48986) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eeTH9-0008TJ-Qx for guix-devel@gnu.org; Wed, 24 Jan 2018 17:12:11 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 3E5CCB32B for ; Wed, 24 Jan 2018 23:12:10 +0100 (CET) Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MyiI1gB8TVbQ for ; Wed, 24 Jan 2018 23:12:09 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 37869764E for ; Wed, 24 Jan 2018 23:12:09 +0100 (CET) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel Hello Guix! Over the last few days, out of frustration ;-), I hacked Cuirass to improve several things: =E2=80=A2 Logging is improved: useful events are logged, including build started/succeeded/failed (using a variant of what I proposed in the Guix =E2=80=98wip-ui=E2=80=99 branch). This makes it much easier to un= derstand what=E2=80=99s going on! =E2=80=A2 Concurrency: the evaluate/build cycle would previously happen sequentially. This was bad for latency (it could take a while before we would pull from the repo) and for resource usage (while evaluating all the build machines would be idle). Now there=E2=80=99s = some concurrency, with a switch to Fibers (yay!), which means that these activities can be interleaved, as well as HTTP request processing. =E2=80=A2 Build status: the starttime/stoptime of a =E2=80=98Build=E2=80= =99 entry in the database is now accurate since we set them once the build has actually started/stopped. This means the database is updated as soon as a build finishes, rather than when the whole =E2=80=98build-derivations=E2=80=99 RPC has returned. We can also dist= inguish between started and scheduled builds now. =E2=80=A2 HTTP API: as a corollary, /api/latestbuilds now really returns = the latest builds. There=E2=80=99s a new /api/queue that returns pending builds=E2=80=94builds that have a database entry with =E2=80=98status= =E2=80=99 < 0. =E2=80=A2 Restarting unfinished builds: it=E2=80=99s common, especially w= hen testing, to interrupt Cuirass, leaving a number of builds unfinished or not even started. Now Cuirass restarts those upon startup. And! This brings a whole set of new bugs that I=E2=80=99m hunting notably = on berlin (which may thus lag behind=E2=80=A6). Overall I think it=E2=80=99ll= make Cuirass easier to work with and more =E2=80=9Cintrospectable=E2=80=9D. Feedback welcome! Ludo=E2=80=99.