Valgrind fatal error at startup

Hello,

Whenever I try to use Valgrind, I am faced with this error:

valgrind:  Fatal error at startup: a function redirection
valgrind:  which is mandatory for this platform-tool combination
valgrind:  cannot be set up.  Details of the redirection are:
valgrind:  
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      strlen
valgrind:  in an object with soname matching:   ld-linux-x86-64.so.2
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux-x86-64.so.2
valgrind:  
valgrind:  Possible fixes: (1, short term): install glibc's debuginfo
valgrind:  package on this machine.  (2, longer term): ask the packagers
valgrind:  for your Linux distribution to please in future ship a non-
valgrind:  stripped ld.so (or whatever the dynamic linker .so is called)
valgrind:  that exports the above-named function using the standard
valgrind:  calling conventions for this platform.  The package you need
valgrind:  to install for fix (1) is called
valgrind:  
valgrind:    On Debian, Ubuntu:                 libc6-dbg
valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo
valgrind:  
valgrind:  Note that if you are debugging a 32 bit process on a
valgrind:  64 bit system, you will need a corresponding 32 bit debuginfo
valgrind:  package (e.g. libc6-dbg:i386).
valgrind:  
valgrind:  Cannot continue -- exiting now.  Sorry.

There are a few topics in arch forums for this issue. I think this thread pretty much sums up all the recommended fixes I have found. However, on my system, the DEBUGINFOD_URLS env variable is already set, and the default shell is bash, so the only solution left is compiling glibc with debug symbols (which doesn’t seem ideal). Before doing that, is there any other solution I can try?

Well, it’s been a while but I’ll comment here for future reference for (maybe even me and) others as I just encountered this issue and info about it is hard to come by.

As per this Manjaro thread I think the issue is that glibc and debuginfod versions are out of sync. I managed to fix the issue by using downgrade to upgrade glibc to the most recent version.

But this isn’t the root issue nor a long term fix: why were they out-of-sync?

Turns out I once foolishly decided to try out some other arch-based distro, and during that process the arch mirrors in /etc/pacman.d/mirrorlist got overwritten by mirrors of that distro, and their packages were lagging behind.

You can investigate if that is the issue cat /etc/pacman.d/mirrorlist
If the mirrors look wrong, these steps should fix the issue:

sudo reflector --country {your_country} --latest 5 --protocol http --protocol https --sort rate --save /etc/pacman.d/mirrorlist

sudo pacman -Syyuu