GNU bug report logs - #47949
Failed to produce output path for guix-package-cache

Previous Next

Package: guix;

Reported by: Roel Janssen <roel <at> gnu.org>

Date: Thu, 22 Apr 2021 11:39:02 UTC

Severity: normal

Full log


View this message in rfc822 format

From: zimoun <zimon.toutoune <at> gmail.com>
To: Vagrant Cascadian <vagrant <at> debian.org>, Ludovic Courtès <ludo <at> gnu.org>, Roel Janssen <roel <at> gnu.org>
Cc: 47949 <at> debbugs.gnu.org
Subject: bug#47949: Failed to produce output path for guix-package-cache
Date: Wed, 02 Nov 2022 12:02:41 +0100
Hi Vagrant,

On ven., 28 oct. 2022 at 13:23, Vagrant Cascadian <vagrant <at> debian.org> wrote:

>> Oh yeah, that reminds me to add to the confusion, "guix time-machine
>> --commit=SOMECOMMIT" worked fine, even where "SOMECOMMIT" didn't
>> successfully work with guix pull.
>>
>> Maybe that's a clue pointing to the crufty .cache directories?
>
> Well, after removing ~/.cache/guix/checkouts/ I haven't had the problem
> again, with several successful pulls.

Well, “guix time-machine --commit=<some-commit>” uses,

--8<---------------cut here---------------start------------->8---
(define %default-channel-url
  ;; URL of the default 'guix' channel.
  "https://git.savannah.gnu.org/git/guix.git")

(define %default-guix-channel
  (channel
   (name 'guix)
   (branch "master")
   (url %default-channel-url)
   (introduction %guix-channel-introduction)))

(define %default-channels
  ;; Default list of channels.
  (list %default-guix-channel))
--8<---------------cut here---------------end--------------->8---

which is another directory checkout under ~/.cache/guix/checkouts. :-)


> This suggests to me that guix should make sure to not use a dirty
> checkout to prevent this in the future ... either exporting the guix
> tree it's working with to a temporary location, or something like
> running "git clean -dfx" before using the checkout...

From my understanding, you have 3 similar checkouts of Guix; the default one:

--8<---------------cut here---------------start------------->8---
$ cat  ~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/.git/config
[core]
	bare = false
	repositoryformatversion = 0
	filemode = true
	logallrefupdates = true
[remote "origin"]
	url = https://git.savannah.gnu.org/git/guix.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
--8<---------------cut here---------------end--------------->8---

and then 2 others, probably located at these hash names:

--8<---------------cut here---------------start------------->8---
$ guix repl
GNU Guile 3.0.8
Copyright (C) 1995-2021 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guix-user)> ,use(guix git)
scheme@(guix-user)> ,pp (map url-cache-directory (list
"https://git.savannah.gnu.org/git/guix.git"
"file:///home/vagrant/src/guix"
"file:///home/vagrant/src/guix-master"))
$1 = (
 "/home/simon/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq"
 "/home/simon/.cache/guix/checkouts/cbek2jy4zeoea2wj4xppwabceeayfzzuap6iw6uk7kylh4hdolfa"
 "/home/simon/.cache/guix/checkouts/duxgcjge5pc2tzexf4qwjra3uzu3t4htsxojtxralegek3bqkisa"
)
--8<---------------cut here---------------end--------------->8---

then you pulled,

  guix pull --url=/home/vagrant/src/guix --branch=master

and sometimes:

  guix pull --url=/home/vagrant/src/guix-master --branch=master

How clean are these 2 local repositories?

I do not know if “git clean -dfx” would help because here the error is
probably between the repositories src/guix and src/guix-master and Guix
manages them under 2 unrelated directory checkouts.

When you cleaned ~/.cache/guix/checkouts and pulled again, you created a
new directory checkout.  Based on which origin?  Default?  Or src/guix?
Or src/guix-master?

Cheers,
simon




This bug report was last modified 2 years and 44 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.