--- Begin Message ---
Subject: |
[PATCH 0/3] offload to Childhurd fails: setting synchronous mode: locking protocol |
Date: |
Wed, 1 Jul 2020 16:29:29 +0200 |
Hello Guix!
I configured my system with a childhurd service and added
--8<---------------cut here---------------start------------->8---
(build-machine
(name "childhurd")
(system "i586-gnu")
(host-key "ssh-ed25519 ... root@childhurd")
(user "root")
(private-key "/home/janneke/.ssh/id_rsa_childhurd"))
--8<---------------cut here---------------end--------------->8---
to /etc/guix/machines. Sadly, running guix offload test gives
--8<---------------cut here---------------start------------->8---
$ guix offload test
guix offload: testing 1 build machines defined in '/etc/guix/machines.scm'...
guix offload: Guix is usable on 'childhurd' (test returned
"/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
guix offload: 'childhurd' is running GNU Guile 3.0.4
guix offload: error: exception occurred on remote host 'localhost': (%exception
#<inferior-object #<&store-protocol-error message: "setting synchronous mode:
locking protocol" status: 1>>)
--8<---------------cut here---------------end--------------->8---
So, I looked into the Debian/Hurd sqlite3 package for inspiration and found
debian/patches/20-hurd-locking-style.patch...well, that should fix it, right?
Sadly, this patch seems to break sqlite3 altogether.
--8<---------------cut here---------------start------------->8---
$ guix offload test
guix offload: testing 1 build machines defined in '/etc/guix/machines.scm'...
Backtrace:
In ice-9/boot-9.scm:
1736:10 11 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In unknown file:
10 (apply-smob/0 #<thunk 7f3c99b1f480>)
In ice-9/boot-9.scm:
718:2 9 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
619:8 8 (_ #(#(#<directory (guile-user) 7f3c99743f00>)))
In guix/ui.scm:
1949:12 7 (run-guix-command _ . _)
663:2 6 (call-with-error-handling _)
In ice-9/boot-9.scm:
1736:10 5 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
1731:15 4 (with-exception-handler #<procedure 7f3c9546d3f0 at
ice-9/boot-9.scm:1815:7 (exn)> _ #:unwind? _ # …)
In guix/scripts/offload.scm:
647:6 3 (check-machine-availability _ _)
In srfi/srfi-1.scm:
650:11 2 (for-each #<procedure assert-node-has-guix (node name)>
(#<<inferior> pid: pipe socket: #<input…>) …)
In guix/scripts/offload.scm:
582:2 1 (assert-node-has-guix #<<inferior> pid: pipe socket:
#<input-output: channel (open) 7f3c954a2500…> …)
In ice-9/boot-9.scm:
1669:16 0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
ERROR:
1. &inferior-exception:
arguments: (%exception #<inferior-object #<&store-protocol-error message:
"setting synchronous mode: unable to open database file" status: 1>>)
inferior: #<<inferior> pid: pipe socket: #<input-output: channel (open)
7f3c954a2500> close: #<procedure close-port (_)> version: (0 1 1) packages:
#<promise #<procedure 7f3c954a8000 at guix/inferior.scm:161:32 ()>> table:
#<promise #<procedure 7f3c954a56f0 at guix/inferior.scm:162:32 ()>>>
stack: ((#f ("ice-9/boot-9.scm" 1763 13)) (raise-exception
("ice-9/boot-9.scm" 1666 16)) (raise-exception ("ice-9/boot-9.scm" 1668 16))
(#f ("guix/store.scm" 582 42)) (with-exception-handler ("ice-9/boot-9.scm" 1735
10)) (open-connection ("guix/store.scm" 545 2)) (call-with-store
("guix/store.scm" 626 15)) (#f (#f #f #f)) (#f ("guix/repl.scm" 92 21))
(with-exception-handler ("ice-9/boot-9.scm" 1735 10)) (with-exception-handler
("ice-9/boot-9.scm" 1730 15)) (#f ("guix/repl.scm" 119 7)))
--8<---------------cut here---------------end--------------->8---
Maybe we're missing some file_lock patch that Debian has? Where to look,
glibc, hurd, ...? Ideas?
Greetings,
Janneke
Jan (janneke) Nieuwenhuizen (3):
gnu: Add sqlite/hurd with locking fix.
gnu: guile-sqlite3: Use sqlite/hurd for locking on the Hurd.
gnu: guix: Use sqlite/hurd for locking on the Hurd.
gnu/local.mk | 1 +
gnu/packages/guile.scm | 2 +-
gnu/packages/package-management.scm | 2 +-
gnu/packages/patches/sqlite3-hurd.patch | 51 +++++++++++++++++++++++++
gnu/packages/sqlite.scm | 9 +++++
5 files changed, 63 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/sqlite3-hurd.patch
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#42151: [PATCH v3 2/2] image: Do not set journal_model=WAL for the Hurd. |
Date: |
Sat, 11 Jul 2020 16:36:26 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Ludovic Courtès writes:
> "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org> skribis:
>
>> This fixes <https://bugs.gnu.org/42151>.
>>
>> * gnu/system/images/hurd.scm (hurd-initialize-root-partition): Use
>> #:wal-mode #f
>> in call to ...
[...]
>> + (list #:make-device-nodes make-hurd-device-nodes
>> + #:wal-mode? #f)))))
>
> IWBN to have an XXX comment here stating why we disable WAL mode on
> GNU/Hurd, possibly referencing this issue. That way, we can eventually
> revisit the issue and hopefully get rid of this workaround.
Sure, done!
> Apart from that the patch LGTM, thanks!
Yay! Pushed series to master as 4b9eecd322e566783369795ebea63a479b51f486.
Let the offloadings commence!
Janneke
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
--- End Message ---