Jan Nieuwenhuizen writes: Adding one additional patch to this series, hence 4/3 (see attached) fixes the sqlite problem.
With this over-complete series we can now do offload builds to a childhurd: --8<---------------cut here---------------start------------->8--- $ guix build -e '(@@ (gnu packages commencement) rsync-boot0)' sending 74 store items (365 MiB) to 'localhost'... exporting path `/gnu/store/1kf05mhh31wl89r3mlx52x5sxrjivi7i-module-import-compiled-guile-builder' exporting path `/gnu/store/7jxamp3g8wdr6vwrisqfmrncxh8nbfb4-mirrors' [...] exporting path `/gnu/store/x8wnf0h0ipibgzadlbmll8bcnhvv1yaq-diffutils-boot0-3.7' offloading '/gnu/store/3xmmbjfqrl4p4sn8vljfdikypb0vi5am-rsync-3.1.3.drv' to 'localhost'... offloading build of /gnu/store/3xmmbjfqrl4p4sn8vljfdikypb0vi5am-rsync-3.1.3.drv to 'localhost' [...] @ build-succeeded /gnu/store/3xmmbjfqrl4p4sn8vljfdikypb0vi5am-rsync-3.1.3.drv - retrieving 1 store item from 'localhost'... importing file or directory '/gnu/store/haf6mlm8xa6s2q918s05pijl6ql17mnq-rsync-3.1.3'... guix offload: error: corrupt input while restoring archive from #<input: string 7ff4794cee00> guix build: error: build of `/gnu/store/3xmmbjfqrl4p4sn8vljfdikypb0vi5am-rsync-3.1.3.drv' failed [1]10:04:55 janneke@dundal:~/src/guix/master [env] --8<---------------cut here---------------end--------------->8--- After the build succeeds, the download fails but lets first get this patch series done... Janneke
>From dc6f96fc7de50602fb28d7ad7b8cbff09e55f538 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" <jann...@gnu.org> Date: Fri, 3 Jul 2020 23:45:20 +0200 Subject: [PATCH 4/3] database: Do not use journal_model=WAL for the Hurd. Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 This fixes <https://bugs.gnu.org/42151>. * guix/store/database.scm (call-with-database): When building for the Hurd, do not set journal_model=WAL. --- guix/store/database.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/guix/store/database.scm b/guix/store/database.scm index a38e4d7e52..da46b0abce 100644 --- a/guix/store/database.scm +++ b/guix/store/database.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2019 Caleb Ristvedt <caleb.ristv...@cune.org> ;;; Copyright © 2018, 2020 Ludovic Courtès <l...@gnu.org> +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <jann...@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ (define-module (guix store database) #:use-module (sqlite3) #:use-module (guix config) + #:use-module (guix gexp) #:use-module (guix serialization) #:use-module (guix store deduplication) #:use-module (guix base16) @@ -27,6 +29,7 @@ #:use-module (guix build syscalls) #:use-module ((guix build utils) #:select (mkdir-p executable-file?)) + #:use-module (guix utils) #:use-module (guix build store-copy) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) @@ -105,9 +108,12 @@ create it and initialize it as a new database." (mkdir-p (dirname file)) #t))) (db (sqlite-open file))) - ;; Turn DB in "write-ahead log" mode, which should avoid SQLITE_LOCKED - ;; errors when we have several readers: <https://www.sqlite.org/wal.html>. - (sqlite-exec db "PRAGMA journal_mode=WAL;") + ;; Using WAL breaks for the Hurd <https://bugs.gnu.org/42151>. + (unless (let-system (system target) + (equal? target "i586-pc-gnu")) + ;; Turn DB in "write-ahead log" mode, which should avoid SQLITE_LOCKED + ;; errors when we have several readers: <https://www.sqlite.org/wal.html>. + (sqlite-exec db "PRAGMA journal_mode=WAL;")) ;; Install a busy handler such that, when the database is locked, sqlite ;; retries until 30 seconds have passed, at which point it gives up and -- Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
-- Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com