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