bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#68874: executing `/gnu/store/...-guile-3.0.9/bin/guile': Exec format


From: Simon Tournier
Subject: bug#68874: executing `/gnu/store/...-guile-3.0.9/bin/guile': Exec format error
Date: Fri, 02 Feb 2024 01:37:38 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Hi,

On Thu, 01 Feb 2024 at 22:16, Josselin Poiret <dev@jpoiret.xyz> wrote:

>> --8<---------------cut here---------------start------------->8---
>> $ /tmp/new/bin/guix describe
>> /gnu/store/vqkjfl6ds3vdvig2x5pkvvzkc3wivrp0-guile-wrapper/bin/guile: error 
>> while loading shared libraries: 
>> /gnu/store/1gd9nsy4cps8fnrd1avkc9l01l7ywiai-guile-3.0.9/lib/libguile-3.0.so.1:
>>  file too short
>> --8<---------------cut here---------------end--------------->8---
>
> File too short sounds like store corruption, can you check whether that
> file is empty?  Maybe try gc'ing it and retrying?

Indeed, empty:

--8<---------------cut here---------------start------------->8---
$ file $(readlink -f 
/gnu/store/1gd9nsy4cps8fnrd1avkc9l01l7ywiai-guile-3.0.9/lib/libguile-3.0.so.1)
/gnu/store/1gd9nsy4cps8fnrd1avkc9l01l7ywiai-guile-3.0.9/lib/libguile-3.0.so.1.6.0:
 empty
--8<---------------cut here---------------end--------------->8---

However, I am not able to remove the item.  I mean: I have tried many
operations as “guix gc”, “guix gc --verify” with ’repair’ and
’contents’, remove some part of ~/.cache/guix and then “guix gc”, remove
the complete ~/.cache/guix and then “guix gc”, rebuild the derivation
with --check, etc.

And the file is still empty.  Arf, I spent some time to find which was
retained it.

Well, I did nothing special for that corruption.  And once I had it, the
process for recovering is not straightforward.  Somehow, it misses
helpers that maps item to profile.

For instance, in order to find the culprit retaining the item, I did

--8<---------------cut here---------------start------------->8---
$ guix gc --referrers /gnu/store/1gd9nsy4cps8fnrd1avkc9l01l7ywiai-guile-3.0.9
/gnu/store/1gd9nsy4cps8fnrd1avkc9l01l7ywiai-guile-3.0.9
/gnu/store/50vkm2fkk3aij8jc92phb3ahapn776m8-guix-command
/gnu/store/fd744pmbhzq1avpjjsmfiasp7yqdmiwy-guix-daemon
/gnu/store/vqkjfl6ds3vdvig2x5pkvvzkc3wivrp0-guile-wrapper

$ guix gc --referrers /gnu/store/50vkm2fkk3aij8jc92phb3ahapn776m8-guix-command
/gnu/store/fd744pmbhzq1avpjjsmfiasp7yqdmiwy-guix-daemon
/gnu/store/icp4z3cxp0fibsm4j887nz8k56jc1jgi-guix-7bf8b7c33
--8<---------------cut here---------------end--------------->8---

then ’grep’ the term ’7bf8b7c33’ inside /var/guix/profiles/per-user.

Well, it was retained because I did switch-generation.  Anyway.

Hum, it could be nice if instead:

    guix gc: error: cannot delete path `/gnu/store/…' since it is still alive

it would also point the “profile“ (or profiles) that makes it alive.

Cheers,
simon





reply via email to

[Prev in Thread] Current Thread [Next in Thread]