Subject: Re: bug#55639: time-machine back in 2020: weird error

From: Ludovic Courtès <[email-masked]>
Date: Tue, 31 May 2022 16:32:34 +0200

Hi,

zimoun <[email-masked]> skribis:

>>>From 9d795fb, I get on machine A,
>
> $ guix time-machine --commit=a7b20226b2 -- build hello
> [...]
> Backtrace:
>            1 (primitive-load "/home/simon/.cache/guix/inferiors/wulv?")
> In guix/ui.scm:
>   1936:12  0 (run-guix-command _ . _)
>
> guix/ui.scm:1936:12: In procedure run-guix-command:
> Throw to key `match-error' with args `("match" "no matching pattern" #<derivation /gnu/store/c6hgmfq0i4zgryqyl0ab1ms51fnrkmdv-bootstrap-binaries-0.drv => /gnu/store/5bdaayvl6cs8nrdivskz4dbrsy2m009c-bootstrap-binaries-0 7fcda0633a50>)'.

Works for me:

--8<---------------cut here---------------start------------->8---
$ guix describe
Generation 216  May 30 2022 00:00:02    (current)
  guix 98e2f4f
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 98e2f4fbebb8b08784401e2095123fcd3d3a32cb
$ guix time-machine --commit=a7b20226b2 -- build hello
guile: warning: failed to install locale
/gnu/store/a462kby1q51ndvxdv3b6p0rsixxrgx1h-hello-2.10
--8<---------------cut here---------------end--------------->8---

> Last, on machine B, the time-machine just works.  Maybe it is related to
> NVMe and something like [1].

This looks like something different, but it’s very weird.  The unhelpful
‘match-error’ seems to occur early on:

--8<---------------cut here---------------start------------->8---
$ head -1942 ~/.cache/guix/inferiors/wulvgnewx2av6dvgkq6adku4kzmlva75l2gukndywh7wvzenkmoa/share/guile/site/3.0/guix/ui.scm | tail -12
      ;; Disable canonicalization so we don't don't stat unreasonably.
      (with-fluids ((%file-port-name-canonicalization #f))
        (dynamic-wind
          (const #f)
          (lambda ()
            (apply command-main args))
          (lambda ()
            ;; Abuse 'exit-hook' (which is normally meant to be used by the
            ;; REPL) to run things like profiling hooks upon completion.
            (run-hook exit-hook)))))))

(define (run-guix . args)
--8<---------------cut here---------------end--------------->8---

Does “guix time-machine --commit=a7b20226b2 -- help” work for you?

Can you fiddle at the REPL and try to see more precisely what’s failing?

  guix time-machine --commit=a7b20226b2 -- repl -q

Thanks,
Ludo’.