Subject: bug#59823: an installer dump was sent

From: Mathieu Othacehe <[email-masked]>
Date: Mon, 05 Dec 2022 09:18:30 +0100

Hello,

Thanks for reporting! So the error is:

--8<---------------cut here---------------start------------->8---
mathieu@meije ~$ cat dump.2022-12-04.10.54.06/installer-backtrace
In ./gnu/installer/steps.scm:
   150:13 19 (run ((locale . "de_DE.utf8")) #:todo-steps _ #:done-steps _)
   150:13 18 (run ((welcome . #t) (locale . "de_DE.utf8")) #:todo-steps _ #:done-steps _)
   150:13 17 (run ((timezone . "Europe/Berlin") (welcome . #t) (locale . "de_DE.utf8")) #:todo-steps _ #:done-steps _)
   150:13 16 (run ((keymap "de" #f #f) (timezone . "Europe/Berlin") (welcome . #t) (locale . "de_DE.utf8")) #:todo-steps _ #:done-steps _)
   150:13 15 (run ((hostname . "guix-hp") (keymap "de" #f #f) (timezone . "Europe/Berlin") (welcome . #t) (locale . "de_DE.utf8")) #:todo-steps _ #:done-steps _)
   150:13 14 (run ((network (select-technology . #<<technology> name: "Wired" type: "ethernet" powered?: #t connected?: #t>) (power-technology . #<unspecified>) (connect-service . #<<servi…>) …) …) …)
   150:13 13 (run ((substitutes #t) (network (select-technology . #<<technology> name: "Wired" type: "ethernet" powered?: #t connected?: #t>) (power-technology . #<unspecified>) (# . #<<se…>) …) …) …)
   150:13 12 (run ((user #<<user> name: "root" real-name: "" group: "users" password: <secret> home-directory: "/root"> #<<user> name: "typ" real-name: "Typ" group: "users" password: <secret…>) …) …)
   148:23 11 (run ((services #<<system-service> name: "GNOME" type: desktop recommended?: #f snippet: ((service gnome-desktop-service-type)) packages: ()> #<<system-service> name: "OpenSSH …> …) …) …)
In ./gnu/installer/newt/partition.scm:
    814:4 10 (run-partitioning-page)
In srfi/srfi-1.scm:
    634:9  9 (for-each #<procedure 7fc5c4397698 at ./gnu/installer/parted.scm:1524:14 (file-name)> _)
In ./gnu/installer/parted.scm:
  1528:22  8 (_ #<time type: time-duration nanosecond: 261179000 second: 4> #t)
In ice-9/boot-9.scm:
  1685:16  7 (raise-exception _ #:continuable? _)
  1780:13  6 (_ #<&compound-exception components: (#<&error> #<&origin origin: #f> #<&message message: "~A"> #<&irritants irritants: ("Gerät /dev/sdd wird noch verwendet.")> #<&exception-with-kind…>)
In ice-9/eval.scm:
    619:8  5 (_ #(#(#(#<directory (guile-user) 7fc5d77d0c80>) misc-error (#f "~A" ("Gerät /dev/sdd wird noch verwendet.") #f)) #<variable 7fc5c0c7d150 value: #<unspecified>> #<variable 7fc5c0c7…> …))
   626:19  4 (_ #(#(#(#<directory (guile-user) 7fc5d77d0c80>) misc-error (#f "~A" ("Gerät /dev/sdd wird noch verwendet.") #f)) #<variable 7fc5c0c7d150 value: #<unspecified>> #<variable 7fc5c0c7…> …))
In ./gnu/installer/dump.scm:
     58:4  3 (prepare-dump misc-error (#f "~A" ("Gerät /dev/sdd wird noch verwendet.") #f) #:result _)
In ice-9/ports.scm:
   433:17  2 (call-with-output-file _ _ #:binary _ #:encoding _)
In ./gnu/installer/dump.scm:
    60:27  1 (_ #<output: installer-backtrace 20>)
In unknown file:
           0 (make-stack #t)
./gnu/installer/dump.scm:62:36: Gerät /dev/sdd wird noch verwendet.
--8<---------------cut here---------------end--------------->8---

Which means that the delay in the "with-delay-device-in-use?" procedure
is probably not high enough.

Here is an attached patch to bump it from 16 to 96 seconds. I also
uploaded an image built on top of of the version-1.4.0 with this patch
if you are up for a retry :), you can download it this way:

--8<---------------cut here---------------start------------->8---
wget https://othacehe.org/files/installer.iso
--8<---------------cut here---------------end--------------->8---

Thanks,

Mathieu
>From b53d7f0c930f029d6b17be92dfa408b74615c1a5 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <[email-masked]>
Date: Mon, 5 Dec 2022 08:56:43 +0100
Subject: [PATCH 1/1] installer: Dump the device in use retry count to 96.

Fixes: <https://issues.guix.gnu.org/59823>

* gnu/installer/parted.scm (with-delay-device-in-use): Bump it.
---
 gnu/installer/parted.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 82375d29e3..518b40a7ea 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -348,7 +348,7 @@ (define (with-delay-device-in-use? file-name)
 fail. See rereadpt function in wipefs.c of util-linux for an explanation."
   ;; Kernel always return EINVAL for BLKRRPART on loopdevices.
   (and (not (string-match "/dev/loop*" file-name))
-       (let loop ((try 16))
+       (let loop ((try 96))
          (usleep 250000)
          (let ((in-use? (device-in-use? file-name)))
            (if (and in-use? (> try 0))
-- 
2.38.1