FS#74075 - pacman segfaults when trying to install haskell-uuid in a clean staging chroot

Attached to Project: Pacman
Opened by Felix Yan (felixonmars) - Wednesday, 09 March 2022, 23:25 GMT
Last edited by Felix Yan (felixonmars) - Wednesday, 09 March 2022, 23:28 GMT
Task Type Bug Report
Category General
Status Unconfirmed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version 6.0.1
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

Summary and Info:
pacman -S haskell-uuid fails with a segfault in a clean staging chroot. The relevant haskell rebuild is currently stuck here.

Steps to Reproduce:
1. create a clean staging chroot: staging-x86_64-build
2. arch-chroot into the root chroot, or a copy of it
3. run: pacman -S haskell-uuid

Output with --debug:
# pacman -S --debug haskell-uuid
debug: pacman v6.0.1 - libalpm v13.0.1
debug: config: attempting to read file /etc/pacman.conf
debug: config: new section 'options'
debug: config: CacheDir: /var/cache/pacman/pkg/
debug: config: HoldPkg: pacman
debug: config: HoldPkg: glibc
debug: config: Architecture: auto
debug: config: arch: x86_64
debug: config: verbosepkglists
debug: config: SigLevel: Required
debug: config: SigLevel: DatabaseOptional
debug: config: LocalFileSigLevel: Optional
debug: config: new section 'staging'
debug: config file /etc/pacman.conf, line 74: including /etc/pacman.d/mirrorlist
debug: config: new section 'testing'
debug: config file /etc/pacman.conf, line 77: including /etc/pacman.d/mirrorlist
debug: config: new section 'core'
debug: config file /etc/pacman.conf, line 80: including /etc/pacman.d/mirrorlist
debug: config: new section 'extra'
debug: config file /etc/pacman.conf, line 83: including /etc/pacman.d/mirrorlist
debug: config: new section 'community-staging'
debug: config file /etc/pacman.conf, line 86: including /etc/pacman.d/mirrorlist
debug: config: new section 'community-testing'
debug: config file /etc/pacman.conf, line 89: including /etc/pacman.d/mirrorlist
debug: config: new section 'community'
debug: config file /etc/pacman.conf, line 92: including /etc/pacman.d/mirrorlist
debug: config: finished parsing /etc/pacman.conf
debug: setup_libalpm called
debug: option 'logfile' = /var/log/pacman.log
debug: option 'gpgdir' = /etc/pacman.d/gnupg/
debug: option 'hookdir' = /etc/pacman.d/hooks/
debug: option 'cachedir' = /var/cache/pacman/pkg/
debug: registering sync database 'staging'
debug: database path for tree staging set to /var/lib/pacman/sync/staging.db
debug: "/var/lib/pacman/sync/staging.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/staging.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 593) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for staging repository
debug: adding new server URL to database 'staging': <url snipped, tier-0 repo>
debug: registering sync database 'testing'
debug: database path for tree testing set to /var/lib/pacman/sync/testing.db
debug: "/var/lib/pacman/sync/testing.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/testing.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 593) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for testing repository
debug: adding new server URL to database 'testing': <url snipped, tier-0 repo>
debug: registering sync database 'core'
debug: database path for tree core set to /var/lib/pacman/sync/core.db
debug: "/var/lib/pacman/sync/core.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/core.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 593) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for core repository
debug: adding new server URL to database 'core': <url snipped, tier-0 repo>
debug: registering sync database 'extra'
debug: database path for tree extra set to /var/lib/pacman/sync/extra.db
debug: "/var/lib/pacman/sync/extra.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/extra.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 593) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for extra repository
debug: adding new server URL to database 'extra': <url snipped, tier-0 repo>
debug: registering sync database 'community-staging'
debug: database path for tree community-staging set to /var/lib/pacman/sync/community-staging.db
debug: "/var/lib/pacman/sync/community-staging.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/community-staging.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 593) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for community-staging repository
debug: adding new server URL to database 'community-staging': <url snipped, tier-0 repo>
debug: registering sync database 'community-testing'
debug: database path for tree community-testing set to /var/lib/pacman/sync/community-testing.db
debug: "/var/lib/pacman/sync/community-testing.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/community-testing.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 593) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for community-testing repository
debug: adding new server URL to database 'community-testing': <url snipped, tier-0 repo>
debug: registering sync database 'community'
debug: database path for tree community set to /var/lib/pacman/sync/community.db
debug: "/var/lib/pacman/sync/community.db.sig" is not readable: No such file or directory
debug: sig path /var/lib/pacman/sync/community.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 593) : missing PGP signature
debug: missing optional signature
debug: setting usage of 15 for community repository
debug: adding new server URL to database 'community': <url snipped, tier-0 repo>
debug: loading package cache for repository 'staging'
debug: opening archive /var/lib/pacman/sync/staging.db
debug: added 1 packages to package cache for db 'staging'
debug: loading package cache for repository 'testing'
debug: opening archive /var/lib/pacman/sync/testing.db
debug: added 18 packages to package cache for db 'testing'
debug: loading package cache for repository 'core'
debug: opening archive /var/lib/pacman/sync/core.db
debug: added 257 packages to package cache for db 'core'
debug: loading package cache for repository 'extra'
debug: opening archive /var/lib/pacman/sync/extra.db
debug: added 2980 packages to package cache for db 'extra'
debug: loading package cache for repository 'community-staging'
debug: opening archive /var/lib/pacman/sync/community-staging.db
debug: added 628 packages to package cache for db 'community-staging'
debug: adding package 'haskell-uuid'
debug: loading package cache for repository 'local'
debug: added 110 packages to package cache for db 'local'
debug: adding package haskell-uuid-1.3.15-54 to the transaction add list
resolving dependencies...
debug: resolving target's dependencies
debug: started resolving dependencies
debug: checkdeps: package haskell-uuid-1.3.15-54
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-uuid'
debug: checkdeps: missing dependency 'haskell-cryptohash-md5' for package 'haskell-uuid'
debug: checkdeps: missing dependency 'haskell-cryptohash-sha1' for package 'haskell-uuid'
debug: checkdeps: missing dependency 'haskell-entropy' for package 'haskell-uuid'
debug: checkdeps: missing dependency 'haskell-network-info' for package 'haskell-uuid'
debug: checkdeps: missing dependency 'haskell-random' for package 'haskell-uuid'
debug: checkdeps: missing dependency 'haskell-uuid-types' for package 'haskell-uuid'
debug: loading package cache for repository 'community-testing'
debug: opening archive /var/lib/pacman/sync/community-testing.db
debug: added 24 packages to package cache for db 'community-testing'
debug: loading package cache for repository 'community'
debug: opening archive /var/lib/pacman/sync/community.db
debug: added 9077 packages to package cache for db 'community'
debug: started resolving dependencies
debug: checkdeps: package ghc-libs-9.0.2-1
debug: checkdeps: missing dependency 'numactl' for package 'ghc-libs'
debug: started resolving dependencies
debug: checkdeps: package numactl-2.0.14-2
debug: finished resolving dependencies
debug: pulling dependency numactl (needed by ghc-libs)
debug: finished resolving dependencies
debug: pulling dependency ghc-libs (needed by haskell-uuid)
debug: started resolving dependencies
debug: checkdeps: package haskell-cryptohash-md5-0.11.101.0-28
debug: finished resolving dependencies
debug: pulling dependency haskell-cryptohash-md5 (needed by haskell-uuid)
debug: started resolving dependencies
debug: checkdeps: package haskell-cryptohash-sha1-0.11.101.0-13
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-cryptohash-sha1'
debug: finished resolving dependencies
debug: pulling dependency haskell-cryptohash-sha1 (needed by haskell-uuid)
debug: started resolving dependencies
debug: checkdeps: package haskell-entropy-0.4.1.7-2
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-entropy'
debug: finished resolving dependencies
debug: pulling dependency haskell-entropy (needed by haskell-uuid)
debug: started resolving dependencies
debug: checkdeps: package haskell-network-info-0.2.1-1
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-network-info'
debug: finished resolving dependencies
debug: pulling dependency haskell-network-info (needed by haskell-uuid)
debug: started resolving dependencies
debug: checkdeps: package haskell-random-1.2.1-60
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-random'
debug: checkdeps: missing dependency 'haskell-splitmix' for package 'haskell-random'
debug: started resolving dependencies
debug: checkdeps: package haskell-splitmix-0.1.0.4-36
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-splitmix'
debug: finished resolving dependencies
debug: pulling dependency haskell-splitmix (needed by haskell-random)
debug: finished resolving dependencies
debug: pulling dependency haskell-random (needed by haskell-uuid)
debug: started resolving dependencies
debug: checkdeps: package haskell-uuid-types-1.0.5-47
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-uuid-types'
debug: checkdeps: missing dependency 'haskell-hashable' for package 'haskell-uuid-types'
debug: checkdeps: missing dependency 'haskell-random' for package 'haskell-uuid-types'
debug: started resolving dependencies
debug: checkdeps: package haskell-hashable-1.4.0.0-10
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-hashable'
debug: checkdeps: missing dependency 'haskell-base-orphans' for package 'haskell-hashable'
debug: checkdeps: missing dependency 'haskell-ghc-bignum-orphans' for package 'haskell-hashable'
debug: started resolving dependencies
debug: checkdeps: package haskell-base-orphans-0.8.6-11
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-base-orphans'
debug: finished resolving dependencies
debug: pulling dependency haskell-base-orphans (needed by haskell-hashable)
debug: started resolving dependencies
debug: checkdeps: package haskell-ghc-bignum-orphans-0.1-2
debug: checkdeps: missing dependency 'ghc-libs' for package 'haskell-ghc-bignum-orphans'
debug: finished resolving dependencies
debug: pulling dependency haskell-ghc-bignum-orphans (needed by haskell-hashable)
debug: finished resolving dependencies
debug: pulling dependency haskell-hashable (needed by haskell-uuid-types)
debug: finished resolving dependencies
debug: pulling dependency haskell-uuid-types (needed by haskell-uuid)
debug: finished resolving dependencies

error: segmentation fault
Please submit a full bug report with --debug if appropriate.
Segmentation fault (core dumped)

Journal:
systemd-coredump[4181023]: [🡕] Process 4181021 (pacman) of user 0 dumped core.

Module /usr/lib/libexpat.so.1.8.7 with build-id a05c64fe82308a309e7653685c94ce71735f8a1a
Module /usr/lib/libgpgme.so.11.26.0 with build-id 6b0cc8c1f25c33019c1002490c14d525ebac0f95
Module /usr/lib/libcurl.so.4.7.0 with build-id b74b0c97ac5b8eb1cd1dea2bcf9289ea085933fe
Module /usr/lib/libalpm.so.13.0.1 with build-id 39ebda1c723218bbdca9a779c7fd24357bebd2be
Module linux-vdso.so.1 with build-id 351b3072a0555d16594b35d390715fc2f77d54e3
Module libbrotlicommon.so.1 with build-id a4ba3f4b4571c8272343b621da812a6e24a202a7
Module libresolv.so.2 with build-id 46ffdf3d477a170314060c26927470d7399bc900
Module libkeyutils.so.1 with build-id ac405ddd17be10ce538da3211415ee50c8f8df79
Module libkrb5support.so.0 with build-id adf65240a4d2aba772d7a0772b4d015469934113
Module libcom_err.so.2 with build-id 358b783c9b3d12ba8248519ea2e7f3da4c4e0297
Module libk5crypto.so.3 with build-id eb8220b8f36675aac769450be4cb6bb7f97ec38a
Module libkrb5.so.3 with build-id 72d26767c5cb1097db75a5f5bff88860233c902b
Module libunistring.so.2 with build-id 015ac6d6bcb60b7d8bea31a80d1941b06e8636ab
Module libgpg-error.so.0 with build-id 82524ee3d1c4c2244d7cfdcc1e6eea5f9855f6c6
Module libassuan.so.0 with build-id 21dba3fc93d5d174beca9378b016bcd85829a5c1
Module libbrotlidec.so.1 with build-id 45defc036e918e0140a72f1fbce6e7692d38241d
Module libgssapi_krb5.so.2 with build-id e6e098ad51ce7bdd3dbe902d7b0f69a90f8a9e08
Module libssl.so.1.1 with build-id 1024424ab33a3767da03f4fdb1fc1b02479f160f
Module libpsl.so.5 with build-id 0229a201aaf5652186c9fdc192ebe52baf19d7f1
Module libssh2.so.1 with build-id a4adfe44cc7ebd295b3b783361acc3dcfcea1d50
Module libidn2.so.0 with build-id 1ce2b50ad9f9821c2c629b521cf5a3c99593d332
Module libnghttp2.so.14 with build-id f2738fead8e6593084b4fb8756f460aa8cf5535a
Module libpthread.so.0 with build-id 7fa8b52fae071a370ba4ca32bf9490a30aff31c4
Module libdl.so.2 with build-id bb9bd2657bfba9f60bd34d2050cc63a7eb024bc4
Module ld-linux-x86-64.so.2 with build-id c09c6f50f6bcec73c64a0b4be77eadb8f7202410
Module libz.so.1 with build-id 0c1459c56513efd5d53eb3868290e9afee6a6a26
Module libbz2.so.1.0 with build-id 919597c477c9b2cb9cdbb7745ed6494ac0e6da60
Module liblz4.so.1 with build-id e63600ab23b2f6997f42fac2fa56e1f02ce159a1
Module libzstd.so.1 with build-id 72f3511cba7db578f6a2647925f35664da6c838b
Module liblzma.so.5 with build-id 8b615460aa230708c5183f16bede67aa0437d95e
Module libacl.so.1 with build-id 27869ed0219ade5d2ffd50eaee11f967187faa8b
Module libcrypto.so.1.1 with build-id 4c926b672d97886b123e03a008387aecf0786de4
Module libc.so.6 with build-id 85766e9d8458b16e9c7ce6e07c712c02b8471dbc
Module libarchive.so.13 with build-id 985731a3b1f779e47cfa73d88ad8f36e561d6ec6
Module pacman with build-id 47e119b7e5c9c985c4d2a2853083215f940cc013
Stack trace of thread 36:
#0 0x00007f1072c6c34c __pthread_kill_implementation (libc.so.6 + 0x8f34c)
#1 0x00007f1072c1f4b8 raise (libc.so.6 + 0x424b8)
#2 0x00005608edbb1ac6 n/a (pacman + 0x11ac6)
#3 0x00007f1072c1f560 __restore_rt (libc.so.6 + 0x42560)
#4 0x00007f1072d5b622 __strcmp_avx2 (libc.so.6 + 0x17e622)
#5 0x00007f1072ed6c27 n/a (/usr/lib/libalpm.so.13.0.1 + 0x27c27)
ELF object binary architecture: AMD x86-64
This task depends upon

Comment by Allan McRae (Allan) - Wednesday, 09 March 2022, 23:56 GMT
__strcmp_avx2 <- I wonder if we can replicate this without AVX2.
Comment by Felix Yan (felixonmars) - Wednesday, 09 March 2022, 23:56 GMT
I managed to get a backtrace with debuginfod:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7e25622 in __strcmp_avx2 () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff7e25622 in __strcmp_avx2 () from /usr/lib/libc.so.6
#1 0x00007ffff7fa0c27 in _alpm_sync_prepare (data=0x7fffffffe8c0, handle=<optimized out>) at ../lib/libalpm/sync.c:472
#2 alpm_trans_prepare (handle=<optimized out>, data=data@entry=0x7fffffffe8c0) at ../lib/libalpm/trans.c:141
#3 0x000055555556d4d7 in sync_prepare_execute () at ../src/pacman/sync.c:758
#4 0x000055555555ca7b in sync_trans (targets=<optimized out>) at ../src/pacman/sync.c:728
#5 pacman_sync (targets=<optimized out>) at ../src/pacman/sync.c:958
#6 main (argc=<optimized out>, argv=<optimized out>) at ../src/pacman/pacman.c:1258
Comment by Felix Yan (felixonmars) - Thursday, 10 March 2022, 00:01 GMT
And on a x86-64-v4 machine, it's slightly different:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7e404cc in __strcmp_evex () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff7e404cc in __strcmp_evex () from /usr/lib/libc.so.6
#1 0x00007ffff7fa2c27 in _alpm_sync_prepare (data=0x7fffffffe8c0, handle=<optimized out>) at ../lib/libalpm/sync.c:472
#2 alpm_trans_prepare (handle=<optimized out>, data=data@entry=0x7fffffffe8c0) at ../lib/libalpm/trans.c:141
#3 0x000055555556d4d7 in sync_prepare_execute () at ../src/pacman/sync.c:758
#4 0x000055555555ca7b in sync_trans (targets=<optimized out>) at ../src/pacman/sync.c:728
#5 pacman_sync (targets=<optimized out>) at ../src/pacman/sync.c:958
#6 main (argc=<optimized out>, argv=<optimized out>) at ../src/pacman/pacman.c:1258
Comment by Allan McRae (Allan) - Thursday, 10 March 2022, 00:05 GMT
Unlikely to be both __strcmp_evex and __strcmp_avx2. I'll stop blaming glibc!
Comment by Felix Yan (felixonmars) - Thursday, 10 March 2022, 00:06 GMT
... and it's __strcmp_sse2_unaligned on x86-64-v2. Glad that I still have one such machine.
Comment by Allan McRae (Allan) - Thursday, 10 March 2022, 01:33 GMT
The file haskell-cryptohash-md5-0.11.101.0-28/desc in the community-staging repo db is empty causing this.

Loading...