Character encoding issue causing broken symlinks for profile generation

  • Done
  • quality assurance status badge
Details
3 participants
  • Leo Famulari
  • Ludovic Courtès
  • Christopher Baines
Owner
unassigned
Submitted by
Christopher Baines
Severity
normal

Debbugs page

Christopher Baines wrote 8 years ago
(address . bug-guix@gnu.org)
5bb403f5-f6a4-b497-9cc8-21b007f308ed@cbaines.net
The profile generation/union code generates broken symlinks. I've
reproduced this on 2 different machines (both Debian running Guix).

To reproduce, run:

guix environment --pure --container --ad-hoc nss-certs findutils
coreutils

[env]# find $GUIX_ENVIRONMENT/etc/ssl/certs -xtype l -exec head {} \;

head: cannot open
'/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/Certinomis_-_Autorit??_Racine:2.1.1.pem'
for reading: No such file or directory
head: cannot open
'/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/NetLock_Arany_=Class_Gold=_F??tan??s??tv??ny:2.6.73.65.44.228.0.16.pem'
for reading: No such file or directory
head: cannot open
'/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/T??RKTRUST_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??_H6:2.6.125.161.242.101.236.138.pem'
for reading: No such file or directory
head: cannot open
'/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/AC_Ra??z_Certic??mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem'
for reading: No such file or directory
head: cannot open
'/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/T??B??TAK_UEKAE_K??k_Sertifika_Hizmet_Sa??lay??c??s??_-_S??r??m_3:2.1.17.pem'
for reading: No such file or directory
head: cannot open
'/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/T??RKTRUST_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??_H5:2.7.0.142.23.254.36.32.129.pem'
for reading: No such file or directory

Note the ?? in the names, which are the points where the names are
incorrect.

This will cause errors like Throw to key `gnutls-error' with args
`(#<gnutls-error-enum Error while reading file.> when using Guix.
Leo Famulari wrote 8 years ago
(name . Christopher Baines)(address . mail@cbaines.net)(address . 25213@debbugs.gnu.org)
20161216003055.GA18512@jasmine
On Thu, Dec 15, 2016 at 09:23:56PM +0000, Christopher Baines wrote:
Toggle quote (3 lines)
> The profile generation/union code generates broken symlinks. I've reproduced
> this on 2 different machines (both Debian running Guix).

Thanks for the report!

Toggle quote (22 lines)
> To reproduce, run:
>
> guix environment --pure --container --ad-hoc nss-certs findutils coreutils
>
> [env]# find $GUIX_ENVIRONMENT/etc/ssl/certs -xtype l -exec head {} \;
>
> head: cannot open '/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/Certinomis_-_Autorit??_Racine:2.1.1.pem'
> for reading: No such file or directory
> head: cannot open '/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/NetLock_Arany_=Class_Gold=_F??tan??s??tv??ny:2.6.73.65.44.228.0.16.pem'
> for reading: No such file or directory
> head: cannot open '/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/T??RKTRUST_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??_H6:2.6.125.161.242.101.236.138.pem'
> for reading: No such file or directory
> head: cannot open '/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/AC_Ra??z_Certic??mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem'
> for reading: No such file or directory
> head: cannot open '/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/T??B??TAK_UEKAE_K??k_Sertifika_Hizmet_Sa??lay??c??s??_-_S??r??m_3:2.1.17.pem'
> for reading: No such file or directory
> head: cannot open '/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/T??RKTRUST_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??_H5:2.7.0.142.23.254.36.32.129.pem'
> for reading: No such file or directory
>
> Note the ?? in the names, which are the points where the names are
> incorrect.

The interesting thing is that the links appear to be broken in some
cases and not others:

[env]# ls -l '/gnu/store/xxiqkmck8g8n6ic4jbxq84m1028vhrdj-profile/etc/ssl/certs/AC_Ra??z_Certic??mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem'
lrwxrwxrwx 3 65534 65534 164 Jan 1 1970 '/gnu/store/xxiqkmck8g8n6ic4jbxq84m1028vhrdj-profile/etc/ssl/certs/AC_Ra??z_Certic??mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem' -> '/gnu/store/c7kr9pdni867k2778pykh16sw003kl1s-nss-certs-3.27.2/etc/ssl/certs/AC_Ra??z_Certic??mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem'
Ludovic Courtès wrote 8 years ago
(name . Christopher Baines)(address . mail@cbaines.net)(address . 25213-done@debbugs.gnu.org)
87a8bv3ivx.fsf@gnu.org
Hello Christopher,

Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (14 lines)
> The profile generation/union code generates broken symlinks. I've
> reproduced this on 2 different machines (both Debian running Guix).
>
> To reproduce, run:
>
> guix environment --pure --container --ad-hoc nss-certs findutils
> coreutils
>
> [env]# find $GUIX_ENVIRONMENT/etc/ssl/certs -xtype l -exec head {} \;
>
> head: cannot open
> '/gnu/store/g41lycan2cq74qfs6acsxmxk4c4ra0pd-profile/etc/ssl/certs/Certinomis_-_Autorit??_Racine:2.1.1.pem'
> for reading: No such file or directory

If we can’t have French root authority certificates, we definitely have
a problem. ;-)

Fixed in commit 1af0860e8be81c01ad405c1226d6bc4516e62863.

Commit 580deec5b44d623e994e59ef07e9e0c5496762fd has the download code
ignore dangling symlinks.

Thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 25213@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 25213
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help