Package: valgrind
Version: 1:3.19.0-1
Severity: normal
Tags: patch

Hi!
As detected by valgrind-if-available testsuite (on zelenka, as buildds
for this arch are slooow), drd reports the following false positive:

.----
drd, a thread error detector
Copyright (C) 2006-2020, and GNU GPL'd, by Bart Van Assche.
Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
Command: /tmp/___

Thread 3:
Conflicting store by thread 3 at 0x052581c0 size 2
   at 0x486A32A: memcpy (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x490EBBD: _IO_new_file_xsputn (fileops.c:1235)
   by 0x490EBBD: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EA709: outstring_func (vfprintf-internal.c:239)
   by 0x48EA709: __vfprintf_internal (vfprintf-internal.c:767)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Address 0x52581c0 is at offset 0 from 0x52581c0. Allocation context:
   at 0x48456DE: malloc (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x4901215: _IO_file_doallocate (filedoalloc.c:101)
   by 0x4910A83: _IO_doallocbuf (genops.c:347)
   by 0x4910A83: _IO_doallocbuf (genops.c:342)
   by 0x490FCC3: _IO_file_overflow@@GLIBC_2.2 (fileops.c:744)
   by 0x490EC61: _IO_new_file_xsputn (fileops.c:1243)
   by 0x490EC61: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EA709: outstring_func (vfprintf-internal.c:239)
   by 0x48EA709: __vfprintf_internal (vfprintf-internal.c:767)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment start (thread 2)
   at 0x49942A8: clone (clone.S:48)
   by 0x49954C3: __clone_internal (clone-internal.c:83)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment end (thread 2)
   at 0x48639F2: pthread_rwlock_wrlock@* (in 
/usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x108BE7: worker (threaded.c:23)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???

Conflicting store by thread 3 at 0x052581c6 size 1
   at 0x486A35E: memcpy (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x490EBBD: _IO_new_file_xsputn (fileops.c:1235)
   by 0x490EBBD: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EA709: outstring_func (vfprintf-internal.c:239)
   by 0x48EA709: __vfprintf_internal (vfprintf-internal.c:767)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Address 0x52581c6 is at offset 6 from 0x52581c0. Allocation context:
   at 0x48456DE: malloc (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x4901215: _IO_file_doallocate (filedoalloc.c:101)
   by 0x4910A83: _IO_doallocbuf (genops.c:347)
   by 0x4910A83: _IO_doallocbuf (genops.c:342)
   by 0x490FCC3: _IO_file_overflow@@GLIBC_2.2 (fileops.c:744)
   by 0x490EC61: _IO_new_file_xsputn (fileops.c:1243)
   by 0x490EC61: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EA709: outstring_func (vfprintf-internal.c:239)
   by 0x48EA709: __vfprintf_internal (vfprintf-internal.c:767)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment start (thread 2)
   at 0x49942A8: clone (clone.S:48)
   by 0x49954C3: __clone_internal (clone-internal.c:83)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment end (thread 2)
   at 0x48639F2: pthread_rwlock_wrlock@* (in 
/usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x108BE7: worker (threaded.c:23)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???

Conflicting store by thread 3 at 0x052581c7 size 1
   at 0x486A090: memcpy (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x490EBBD: _IO_new_file_xsputn (fileops.c:1235)
   by 0x490EBBD: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EBB71: outstring_func (vfprintf-internal.c:239)
   by 0x48EBB71: __vfprintf_internal (vfprintf-process-arg.c:213)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Address 0x52581c7 is at offset 7 from 0x52581c0. Allocation context:
   at 0x48456DE: malloc (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x4901215: _IO_file_doallocate (filedoalloc.c:101)
   by 0x4910A83: _IO_doallocbuf (genops.c:347)
   by 0x4910A83: _IO_doallocbuf (genops.c:342)
   by 0x490FCC3: _IO_file_overflow@@GLIBC_2.2 (fileops.c:744)
   by 0x490EC61: _IO_new_file_xsputn (fileops.c:1243)
   by 0x490EC61: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EA709: outstring_func (vfprintf-internal.c:239)
   by 0x48EA709: __vfprintf_internal (vfprintf-internal.c:767)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment start (thread 2)
   at 0x49942A8: clone (clone.S:48)
   by 0x49954C3: __clone_internal (clone-internal.c:83)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment end (thread 2)
   at 0x48639F2: pthread_rwlock_wrlock@* (in 
/usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x108BE7: worker (threaded.c:23)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???

Conflicting store by thread 3 at 0x052581c8 size 1
   at 0x486A35E: memcpy (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x490EBBD: _IO_new_file_xsputn (fileops.c:1235)
   by 0x490EBBD: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EAC53: outstring_func (vfprintf-internal.c:239)
   by 0x48EAC53: __vfprintf_internal (vfprintf-internal.c:1096)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Address 0x52581c8 is at offset 8 from 0x52581c0. Allocation context:
   at 0x48456DE: malloc (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x4901215: _IO_file_doallocate (filedoalloc.c:101)
   by 0x4910A83: _IO_doallocbuf (genops.c:347)
   by 0x4910A83: _IO_doallocbuf (genops.c:342)
   by 0x490FCC3: _IO_file_overflow@@GLIBC_2.2 (fileops.c:744)
   by 0x490EC61: _IO_new_file_xsputn (fileops.c:1243)
   by 0x490EC61: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EA709: outstring_func (vfprintf-internal.c:239)
   by 0x48EA709: __vfprintf_internal (vfprintf-internal.c:767)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment start (thread 2)
   at 0x49942A8: clone (clone.S:48)
   by 0x49954C3: __clone_internal (clone-internal.c:83)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment end (thread 2)
   at 0x48639F2: pthread_rwlock_wrlock@* (in 
/usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x108BE7: worker (threaded.c:23)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???

Conflicting store by thread 3 at 0x052581c9 size 1
   at 0x486A35E: memcpy (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x490EBBD: _IO_new_file_xsputn (fileops.c:1235)
   by 0x490EBBD: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EBB71: outstring_func (vfprintf-internal.c:239)
   by 0x48EBB71: __vfprintf_internal (vfprintf-process-arg.c:213)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108BD5: worker (threaded.c:27)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Address 0x52581c9 is at offset 9 from 0x52581c0. Allocation context:
   at 0x48456DE: malloc (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x4901215: _IO_file_doallocate (filedoalloc.c:101)
   by 0x4910A83: _IO_doallocbuf (genops.c:347)
   by 0x4910A83: _IO_doallocbuf (genops.c:342)
   by 0x490FCC3: _IO_file_overflow@@GLIBC_2.2 (fileops.c:744)
   by 0x490EC61: _IO_new_file_xsputn (fileops.c:1243)
   by 0x490EC61: _IO_file_xsputn@@GLIBC_2.2 (fileops.c:1196)
   by 0x48EA709: outstring_func (vfprintf-internal.c:239)
   by 0x48EA709: __vfprintf_internal (vfprintf-internal.c:767)
   by 0x48E0715: printf@@GLIBC_2.4 (printf.c:33)
   by 0x108B7B: worker (threaded.c:16)
   by 0x484C1B7: ??? (in /usr/libexec/valgrind/vgpreload_drd-s390x-linux.so)
   by 0x491779F: start_thread (pthread_create.c:442)
   by 0x49942FD: ??? (clone.S:66)
   by 0xFFFFFFFFFFFFFFFF: ???
Other segment start (thread 4)
   (thread finished, call stack no longer available)
Other segment end (thread 4)
   (thread finished, call stack no longer available)


For lists of detected and suppressed errors, rerun with: -s
ERROR SUMMARY: 26 errors from 5 contexts (suppressed: 170 from 88)
`----

I see we have a bunch of suppressions in valgrind's debian/supp/debian.supp
that say:

{
   drd false positive with glibc 2.28 bug#918023
   drd:ConflictingAccess
   fun:mempcpy
   fun:_IO_new_file_xsputn
   fun:_IO_file_xsputn@@GLIBC_2.2.5
}

{
   drd false positive with glibc 2.28 bug#918023, bug#931315
   drd:ConflictingAccess
   fun:mempcpy
   fun:_IO_new_file_xsputn
   fun:_IO_file_xsputn@@GLIBC_2.17
}

yet this symbol is memcpy vs ...xsputn@@GLIBC_2.2; let's change the
suppression to use wildcards:

{
   drd <some descriptive text>
   drd:ConflictingAccess
   fun:mem*cpy
   fun:_IO_new_file_xsputn
   fun:_IO_file_xsputn@@GLIBC_*
}

Perusing pmdk's suppressions, I see also the same with mem*cpy replaced with
memmove; while this test doesn't tickle it, what about suppressing that as
well just in case?

Reply via email to