On Wed, Aug 25, 2021 at 01:26:08PM -0500, Eric Blake wrote:
On Tue, Aug 24, 2021 at 05:13:24PM +0100, Richard W.M. Jones wrote:
This is the nbdkit change transplanted to libnbd. Because there are several subdirectory Makefiles which define the MALLOC_CHECK_ environment variables, I turned it into a macro which is placed in the top level subdir-rules.mk.
Nice refactoring to avoid duplication.
Note this currently breaks valgrinding because of: https://sourceware.org/bugzilla/show_bug.cgi?id=28256 and because there's not a good place to unset GLIBC_TUNABLES in libnbd.
Patch looks good to apply (I almost tackled the same project myself before seeing your email). Could we modify run.in to define _VG to start with 'env -u GLIBC_TUNABLES valgrind' on systems where 'env -u' is supported? (Sadly, POSIX doesn't require 'env -u')
I actually thought of another way to fix this but forgot to send a follow-up email: diff --git a/valgrind/glibc.suppressions b/valgrind/glibc.suppressions index a03332d9..d0f8ac52 100644 --- a/valgrind/glibc.suppressions +++ b/valgrind/glibc.suppressions @@ -57,3 +57,14 @@ ... fun:__printf_chk } + +# Conditional jump or move depends on uninitialised value(s) in +# __GI___tunables_init +# https://sourceware.org/bugzilla/show_bug.cgi?id=28256 +# Bug present in glibc 2.34 and fixed in 2.35. +{ + glibc_6 + Memcheck:Cond + fun:parse_tunables + fun:__GI___tunables_init +} This obviously only suppresses the error rather than fixing it but I tested it and it allows make check-valgrind to pass partially. There is actually a further error revealed by valgrinding (but disguised by the above problem) which I'm looking into. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html