|
From: Tom H. <to...@co...> - 2006-07-10 19:28:28
|
In message <115...@ok...>
Alex Bennee <ker...@be...> wrote:
> I'm testing a multi-threaded app although the second thread is just a
> background listening thread. Semi-redacted the subject was at:
>
> Thread 1: status = VgTs_Runnable
> ==31252== at 0x4104F57: operator new(unsigned long)
> (vg_replace_malloc.c:167)
>
> And
>
> Thread 2: status = VgTs_WaitSys
> ==31252== at 0x3B73EBC6B2: poll (in /lib64/tls/libc-2.3.4.so)
>
> And the error that got dumped:
>
> ==31252== Address 0x4361678 is not stack'd, malloc'd or (recently)
> free'd
> --31252-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11
> (SIGSEGV) - exiting
> --31252-- si_code=1; Faulting address: 0x0; sp: 0x4032AEE00
>
> valgrind: the 'impossible' happened:
> Killed by fatal signal
> ==31252== at 0x380218A7: unlinkBlock (m_mallocfree.c:189)
> ==31252== by 0x38021EB3: vgPlain_arena_malloc (m_mallocfree.c:1055)
> ==31252== by 0x38037A9A: vgPlain_cli_malloc
> (replacemalloc_core.c:101)
> ==31252== by 0x380015DC: vgMemCheck___builtin_new
> (mc_malloc_wrappers.c:182)
> ==31252== by 0x38039B9E: do_client_request (scheduler.c:1158)
> ==31252== by 0x38039453: vgPlain_scheduler (scheduler.c:869)
> ==31252== by 0x3804CD6E: thread_wrapper (syswrap-linux.c:87)
> ==31252== by 0x3804CE65: run_a_thread_NORETURN (syswrap-linux.c:120)
>
> Need any more information?
This is almost certainly caused by your program corrupting the heap
data structure by writing past the end of an allocated block.
Fix the errors valgrind has already reported (especially any invalid
write errors) and see if it still happens after that.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|