bug#59196: guix pull fails on A20-OlinuXino-LIME2-eMMC

2022-11-13 Thread Tanguy LE CARROUR
Hi Denis,

Thanks for your answer.

Strange thing, though… I didn't received your answer!?
I came across it by chance while checking
[bug-guix](https://lists.gnu.org/archive/html/bug-guix).

> Sat, 12 Nov 2022 16:40:20 +0100
> Does it also fails with 'guix pull -M 1 -c 1' ?

Thanks for the tip, but unfortunately, I get the same kind of error:

```
building /gnu/store/sq3w2hk9z1va6q2dbjg16mi0afw64q9b-gnutls-3.7.7.drv...
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
\ 'build' phas\Backtrace:
  15 (primitive-load 
"/gnu/store/62r09kg575mg293by6fb83808p9diy3b-compute-guix-derivation")
In ice-9/eval.scm:
155:9 14 (_ _)
159:9 13|(_ #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(# ?) ?) ?) 
?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?))
In ice-9/boot-9.scm:
152:2 12 (with-fluid* _ _ _)
152:2 11 (with-fluid* _ _ _)
In ./guix/store.scm:
  2170:24 10 (run-with-store # _ 
#:guile-for-build _ #:system _ #:target _)
   1998:8  9 (_ _)
In ./guix/gexp.scm:
   299:22  8 (_ _)
   1180:2  7 (_ _)
   1046:2  6 (_ _)
892:4  5 (_ _)
In ./guix/store.scm:
  2055:12  4 (_ #)
   1403:5  3 (map/accumulate-builds # 
# ?)
  1419:15  2 (_ # _ _)
   713:11  1 (process-stderr # _)
In ./guix/serialization.scm:
 80:6  0 (read-int #)

./guix/serialization.scm:80:6: In procedure read-int:
ERROR:
  1. &nar-error:
  file: #f
  port: #

   
/guix pull: error: You found a bug: the program 
'/gnu/store/62r09kg575mg293by6fb83808p9diy3b-compute-guix-derivation'
failed to compute the derivation for Guix (version: 
"4f648f6096639427021da378fdfbd0c68d9d2aac"; system: "armhf-linux";
host version: "1.2.0"; pull-version: 1).
Please report the COMPLETE output above by email to .
```

I'll try on a brand new SD card, because the one I used is a bit old.

Any other ideas about what might have gone wrong?

Regards,

-- 
Tanguy





bug#59196: guix pull fails on A20-OlinuXino-LIME2-eMMC

2022-11-13 Thread Denis 'GNUtoo' Carikli
On Sun, 13 Nov 2022 11:48:18 +0100
Tanguy LE CARROUR  wrote:

> Hi Denis,
> 
> Thanks for your answer.
> 
> Strange thing, though… I didn't received your answer!?
> I came across it by chance while checking
> [bug-guix](https://lists.gnu.org/archive/html/bug-guix).
> 
> > Sat, 12 Nov 2022 16:40:20 +0100
> > Does it also fails with 'guix pull -M 1 -c 1' ?
[...]
> I'll try on a brand new SD card, because the one I used is a bit old.
> 
> Any other ideas about what might have gone wrong?
The command I gave sometimes works on 32bit machines with a low
amount of RAM, so it was worth trying.

Unfortunately here I'm out of ideas, other people with more experience
in Guix might know better.

Also note that I also do have an A20-OlinuXino-LIME2-eMMC, so I might
be able to run tests too if they are fast to do. Maybe I should try to
cross compile a rootfs and see if it boots.

Long time ago it booted if I recall well, and then it stopped working
but I didn't take the time to track the regression down or to try again.

Denis.


pgpLCzVzyqHrs.pgp
Description: OpenPGP digital signature


bug#56674: [Shepherd] Use of ‘waitpid’, ‘system*’, etc. in service code can cause deadlocks

2022-11-13 Thread Ludovic Courtès
Hi,

Ludovic Courtès  skribis:

>   1. In the best case, shepherd (as of 0.9.1) is stuck while ‘system*’
>  is in ‘waitpid’ waiting for child process completion (“stuck” as
>  in: doesn’t do anything, not even answering ‘herd’ requests or
>  inetd connections.)
>
>   2. I don’t think that can happen with ‘system*’ (because it’s in C),
>  but generally speaking, there’s a possibility that shepherd’s event
>  loop will handle child process termination before some other
>  user-made ‘waitpid’ call does.
>
> Anyway, that’s a bad situation.
>
> So I can think of several ways to address it:
>
>   1. Change the nginx service ‘stop’ method to just
>  (make-kill-destructor), which should work just as well as invoking
>  “nginx -s stop”.
>
>   2. Have Shepherd provide a replacement for ‘system*’.

These fresh Shepherd commits install a non-blocking ‘system*’ replacement:

  975b0aa service: Provide a non-blocking replacement of 'system*'.
  039c7a8 service: Spawn a fiber responsible for process monitoring.

We’ll have to do more testing and probably go for a 0.9.3 release soon.

Protip: you can test the latest shepherd with:

--8<---cut here---start->8---
(operating-system
  ;; …
  (essential-services
   (modify-services (operating-system-default-essential-services
 this-operating-system)
 (shepherd-root-service-type
  config =>
  (shepherd-configuration
   (shepherd (package
   (inherit shepherd-0.9)
   (version "0.9.3pre")
   (source (git-checkout
(url 
"https://git.savannah.gnu.org/git/shepherd.git";)))
   (native-inputs
(modify-inputs (package-native-inputs shepherd-0.9)
  (append autoconf automake help2man texinfo 
gnu-gettext))
--8<---cut here---end--->8---

Full example attached.

Ludo’.

;; This is an operating system configuration template
;; for a "bare bones" setup, with no X11 display server.

(use-modules (gnu) (guix) (guix git))
(use-service-modules networking ssh web vpn shepherd)
(use-package-modules linux screen ssh
 admin autotools gettext man texinfo)

(operating-system
  (host-name "komputilo")
  (timezone "Europe/Berlin")
  (locale "en_US.utf8")

  ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
  ;; target hard disk, and "my-root" is the label of the target
  ;; root file system.
  (bootloader (bootloader-configuration
   (bootloader grub-bootloader)
   (targets '("/dev/sdX"
  ;; It's fitting to support the equally bare bones ‘-nographic’
  ;; QEMU option, which also nicely sidesteps forcing QWERTY.
  (kernel-arguments (list "console=ttyS0,115200"))
  (file-systems (cons (file-system
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
  %base-file-systems))

  ;; This is where user accounts are specified.  The "root"
  ;; account is implicit, and is initially created with the
  ;; empty password.
  (users (cons (user-account
(name "alice")
(comment "Bob's sister")
(group "users")

;; Adding the account to the "wheel" group
;; makes it a sudoer.  Adding it to "audio"
;; and "video" allows the user to play sound
;; and access the webcam.
(supplementary-groups '("wheel"
"audio" "video")))
   %base-user-accounts))

  ;; Globally-installed packages.
  (packages (append (list screen strace) %base-packages))

  (essential-services
   (modify-services (operating-system-default-essential-services
 this-operating-system)
 (shepherd-root-service-type
  config =>
  (shepherd-configuration
   (shepherd (package
   (inherit shepherd-0.9)
   (version "0.9.3pre")
   (source (git-checkout
(url 
"https://git.savannah.gnu.org/git/shepherd.git";)))
   (native-inputs
(modify-inputs (package-native-inputs shepherd-0.9)
  (append autoconf automake help2man texinfo 
gnu-gettext)

  ;; Add services to the baseline: a DHCP client and
  ;; an SSH server.
  (services (append (list (service dhcp-client-service-type)
  (service nginx-service-type
   (nginx-configuration
(server-blocks
 (list (nginx-server-configuration
(listen '("80"))
(server-name '("www.example.org"))
(root "/sr