From mboxrd@z Thu Jan 1 00:00:00 1970 From: anothersms@gmail.com (=?utf-8?Q?Nicol=C3=B2?= Balzarotti) Subject: guix build --repair might not always work Date: Thu, 23 Jan 2020 15:43:35 +0100 Message-ID: <87k15ib5d4.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:36411) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iudht-0001rJ-Tk for guix-devel@gnu.org; Thu, 23 Jan 2020 09:43:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iudhs-0000ts-Bd for guix-devel@gnu.org; Thu, 23 Jan 2020 09:43:41 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:38458) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iudhs-0000sC-2z for guix-devel@gnu.org; Thu, 23 Jan 2020 09:43:40 -0500 Received: by mail-wm1-x329.google.com with SMTP id u2so2813426wmc.3 for ; Thu, 23 Jan 2020 06:43:39 -0800 (PST) Received: from guixSD (host215-142-dynamic.16-79-r.retail.telecomitalia.it. [79.16.142.215]) by smtp.gmail.com with ESMTPSA id z21sm3085500wml.5.2020.01.23.06.43.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jan 2020 06:43:37 -0800 (PST) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane-mx.org@gnu.org Sender: "Guix-devel" To: Guix-devel #-*- org -*- Hello Guix! Sorry for the long mail, but I added all details I could think of in order to try to debug this error (). What happened: After a power failure during a guix pull + guix reconfigure,= my /gnu/store ended up in a bad state. Emacs failed to run with errors like: #+begin_quote /gnu/store/9i4lhk2g1f2k6sfwk9pyc8idx1ffgilw-emacs-26.3/bin/emacs-26.3: erro= r while loading shared libraries: /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa= 90-libxft-2.3.3/lib/libXft.so.2: file too short=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 #+end_quote I run #+begin_src bash :results list # This is the broken system guix gc --verify=3Drepair,contents #+end_src #+RESULTS: - reading the store... - checking path existence... - checking hashes... And nothing else. So, let's check the hash #+begin_src bash # This is the broken system guix hash -r /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3 #+end_src #+RESULTS: : 08fxn4xasrvv5ljydvy6xzxyzpd93f7rk2w0czp70z9fi3qdng9f This is different than a hash I get on another system: #+begin_src bash # This is the sane system guix hash -r /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3 #+end_src #+RESULTS: : 12lx9ar5vb2l4dwgw1cfjqyrfscca4rs6vmnxnza7l8qys97zps3 #+begin_src bash # This is the broken system sha1sum /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3/lib/libXft= .so.2.3.3 #+end_src #+RESULTS: : da39a3ee5e6b4b0d3255bfef95601890afd80709 /gnu/store/mwfb8a9mkcn65nfnsnvj= 39xly9d8qa90-libxft-2.3.3/lib/libXft.so.2.3.3 #+begin_src bash # This is the sane system sha1sum /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3/lib/libXft= .so.2.3.3 #+end_src #+RESULTS: : ce886196f0ab2bab3d27796b61627e9efcbd9eb0 /gnu/store/mwfb8a9mkcn65nfnsnvj= 39xly9d8qa90-libxft-2.3.3/lib/libXft.so.2.3.3 #+begin_src bash :results table # This is the broken system ls -lah /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3/lib/libXf= t.so.2.3.3 | sed -s 's/ /|/g' #+end_src #+RESULTS: | -r-xr-xr-x | 4 | root | root | 0 | Jan | | 1 | | 1970 | /gnu/store/mw= fb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3/lib/libXft.so.2.3.3 | #+begin_src bash :results table # This is the sane system ls -lah /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3/lib/libXf= t.so.2.3.3 | sed -s 's/ /|/g' #+end_src #+RESULTS: | -r-xr-xr-x | 2 | root | root | 109K | Jan | | 1 | | 1970 | /gnu/store= /mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3/lib/libXft.so.2.3.3 | The manual also suggests this command: #+begin_src bash :results table :dir /sudo:localhost: # This is the broken system guix build --repair libxft #+end_src #+RESULTS: | /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3 | Same on the sane system. Do you have any idea on why is it failing? On IRC, said he had t= he same problem and "solved" it by re-install guix. Not being able to find wh= ich path is broken is a serious problem. Last thing I could do is to check the database (file:/var/guix/db/db.sqlite) #+begin_src sqlite :eval never select * from ValidPaths where path =3D "/gnu/store/mwfb8a9mkcn65nfnsnvj39x= ly9d8qa90-libxft-2.3.3"; #+end_src #+RESULTS: | 24700 | /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3 | sha256= :2e3ddbf0882e7d70ee67808b998f1ba9ddeffbefc6efe6252d7b67ad3ab1dd21 | 1579715= 645 | /gnu/store/ajkyhj4qsbzw7kqc4wp9yfzci7r5xgyy-libxft-2.3.3.drv | 10104 | # Sane System: #+begin_src sqlite :eval never select * from ValidPaths where path =3D "/gnu/store/mwfb8a9mkcn65nfnsnvj39x= ly9d8qa90-libxft-2.3.3"; #+end_src | 162188 | /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3 | sha25= 6:43df7f92f618d1a3beedb66ea333518c69973d968e05fe782354ac5db24a9d8a | 157114= 4877 | /gnu/store/kv1xa04z0z8rmn5g365gg4glrgxp4cvr-libxft-2.3.3.drv | 27267= 2 | #+begin_src sqlite :eval never cat /gnu/store/ajkyhj4qsbzw7kqc4wp9yfzci7r5xgyy-libxft-2.3.3.drv #+end_src #+RESULTS: #+begin_example Derive([("out","/gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3","= ","")],[("/gnu/store/8qakp7k3ayv335z5cz3v0gmm2wsc2l0l-expat-2.2.9.drv",["ou= t"]),("/gnu/store/ac3g11x2nznnd93wbhlgllbmwmcvrci3-module-import-compiled.d= rv",["out"]),("/gnu/store/bv9py3f2dsa5iw0aijqjv9zxwprcy1nb-fontconfig-2.13.= 1.drv",["out"]),("/gnu/store/fbclj50yav35pdn6lkkadj3vxdiz5ja6-libxft-2.3.3.= drv",["out"]),("/gnu/store/il86vp1ir9bqvpn9cnx3b9qbfbjzjvqa-expat-2.2.7.drv= ",["out"]),("/gnu/store/nvg11k85cvyw96dj8470wp6c1bcwf5mp-guile-2.0.14.drv",= ["out"]),("/gnu/store/xv0kp47vd6qhn63py0lz6nq1fniczmmr-module-import.drv",[= "out"]),("/gnu/store/ydb37apsc4rc24npva269vi7gszcddv8-fontconfig-2.13.1.drv= ",["out"])],["/gnu/store/g4l2y8in2ksvm58xvyn657vpyycd7gsw-libxft-2.3.3-guil= e-builder"],"x86_64-linux","/gnu/store/qqdjb8vq2kdknfflkfdkqh6vp3mwgwl8-gui= le-2.0.14/bin/guile",["--no-auto-compile","-L","/gnu/store/7myzmxzapx7jnvbs= yzv4xhfi2gg58d1w-module-import","/gnu/store/g4l2y8in2ksvm58xvyn657vpyycd7gs= w-libxft-2.3.3-guile-builder"],[("GUILE_LOAD_COMPILED_PATH","/gnu/store/cn5= v2g0zihw9hdsgcnbl6knq4zincfdk-module-import-compiled"),("allowSubstitutes",= "0"),("guix properties","((type . graft) (graft (count . 2)))"),("out","/gn= u/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3"),("preferLocalBuild"= ,"1")]) #+end_example #+begin_src bash :results raw :wrap example # Sane system cat /gnu/store/kv1xa04z0z8rmn5g365gg4glrgxp4cvr-libxft-2.3.3.drv #+end_src #+RESULTS: #+begin_example Derive([("out","/gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3","= ","")],[("/gnu/store/5abb4chfjhln2z6d02859assm6q9ywfm-guile-2.0.14.drv",["o= ut"]),("/gnu/store/5yzc9yzx5icb9ymsw23d33jpyd4hqf5y-libxft-2.3.3.drv",["out= "]),("/gnu/store/iwxyyn37rdh712v7y5fphmidrna5cwq2-module-import-compiled.dr= v",["out"]),("/gnu/store/kg7qgva4bmii2xp2bi2diqyd9khafxvr-fontconfig-2.13.1= .drv",["out"]),("/gnu/store/rp8qh5j8z3x6kz2nkmji8vh1sp1m091d-expat-2.2.9.dr= v",["out"]),("/gnu/store/skba4njas8mnvvsk2jb87nrfirdlniyk-module-import.drv= ",["out"]),("/gnu/store/x6idp5bk60y095350k4gf1q45hc8bja1-expat-2.2.7.drv",[= "out"]),("/gnu/store/xzb84yvlcpgi6f2hidf62147v1hah29a-fontconfig-2.13.1.drv= ",["out"])],["/gnu/store/g4l2y8in2ksvm58xvyn657vpyycd7gsw-libxft-2.3.3-guil= e-builder"],"x86_64-linux","/gnu/store/qqdjb8vq2kdknfflkfdkqh6vp3mwgwl8-gui= le-2.0.14/bin/guile",["--no-auto-compile","-L","/gnu/store/7myzmxzapx7jnvbs= yzv4xhfi2gg58d1w-module-import","/gnu/store/g4l2y8in2ksvm58xvyn657vpyycd7gs= w-libxft-2.3.3-guile-builder"],[("GUILE_LOAD_COMPILED_PATH","/gnu/store/cn5= v2g0zihw9hdsgcnbl6knq4zincfdk-module-import-compiled"),("allowSubstitutes",= "0"),("guix properties","((type . graft) (graft (count . 2)))"),("out","/gn= u/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3"),("preferLocalBuild"= ,"1")]) #+end_example They are completely different so I don't know how to further investigate it. Last thing I did: #+begin_src bash :eval never sudo mount -o remount,rw /gnu/store echo "hello" > /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3/lib= /libXft.so.2.3.3 guix build --repair libxft #+end_src Results: #+begin_example path `/gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3' is corrupte= d or missing! applying 2 grafts for /gnu/store/ajkyhj4qsbzw7kqc4wp9yfzci7r5xgyy-libxft-2.= 3.3.drv... grafting '/gnu/store/844ngi6h6icrc3kkmxc1rni4pvwijhzg-libxft-2.3.3' -> '/gn= u/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3'... successfully built /gnu/store/ajkyhj4qsbzw7kqc4wp9yfzci7r5xgyy-libxft-2.3.3= .drv /gnu/store/mwfb8a9mkcn65nfnsnvj39xly9d8qa90-libxft-2.3.3 #+end_example Any suggestions on why this happens, how to check for other paths of the st= ore, and if this can be fixed? Thanks, Nicol=C3=B2