Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 14 Jun 2017 19:51:30 +0200
From: Eugenio Pérez <eupm90@...il.com>
To: musl@...ts.openwall.com
Subject: valgrind memcheck + drd error on alpine 3.6 container

Hi, everyone!

I'm having an issue trying to use valgrind drd in the simplest musl-linked
program (just return 0).

drd refuses to even run main, and give me this error:

==24== drd, a thread error detector
==24== Copyright (C) 2006-2015, and GNU GPL'd, by Bart Van Assche.
==24== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info
==24== Command: ./f2k
==24==

drd: drd_malloc_wrappers.c:115 (handle_free): Assertion 'success' failed.

host stacktrace:
==24==    at 0x3805EF1D: show_sched_status_wrk (m_libcassert.c:343)
==24==    by 0x3805F208: report_and_quit (m_libcassert.c:419)
==24==    by 0x3805F3E9: vgPlain_assert_fail (m_libcassert.c:485)
==24==    by 0x38057635: handle_free (drd_malloc_wrappers.c:115)
==24==    by 0x380A51B9: do_client_request (scheduler.c:1861)
==24==    by 0x380A51B9: vgPlain_scheduler (scheduler.c:1425)
==24==    by 0x380B25DA: thread_wrapper (syswrap-linux.c:103)
==24==    by 0x380B25DA: run_a_thread_NORETURN (syswrap-linux.c:156)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable (lwpid 24)
==24==    at 0x4C96951: free (vg_replace_malloc.c:530)
==24==    by 0x4057A19: ??? (in /lib/ld-musl-x86_64.so.1)

I would like to compare it with glibc, but I'm unable to use it in alpine
linux properly. If it helps, memcheck gives me  this error:

==163== Invalid free() / delete / delete[] / realloc()
==163==    at 0x4C939EA: free (vg_replace_malloc.c:530)
==163==    by 0x4057A19: ??? (in /lib/ld-musl-x86_64.so.1)
==163==  Address 0x4e9b180 is in a rw- mapped file
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so segment
==163==
==163==
==163== HEAP SUMMARY:
==163==     in use at exit: 404 bytes in 1 blocks
==163==   total heap usage: 1 allocs, 1 frees, 404 bytes allocated
==163==
==163== 404 bytes in 1 blocks are still reachable in loss record 1 of 1
==163==    at 0x4C9461F: calloc (vg_replace_malloc.c:711)
==163==    by 0x4058B45: ??? (in /lib/ld-musl-x86_64.so.1)
==163==    by 0x4059774: __dls3 (in /lib/ld-musl-x86_64.so.1)
==163==    by 0xFFF000CB7: ???
==163==    by 0xFFF000D27: ???
==163==
==163== LEAK SUMMARY:
==163==    definitely lost: 0 bytes in 0 blocks
==163==    indirectly lost: 0 bytes in 0 blocks
==163==      possibly lost: 0 bytes in 0 blocks
==163==    still reachable: 404 bytes in 1 blocks
==163==         suppressed: 0 bytes in 0 blocks

And that is before even reach main() function! However, memchecks continue
after error; drd does not. ¿What could I do to keep diagnosing this error?

Thanks and regards!

Content of type "text/html" skipped

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.