Hi Daogang,
The test still fails in my machine.
I've compiled it through ./BUILD/compile-pentium-valgrind-max and
tried to run the test case as follows:
./mtr rpl_trigger --valgrind-mysqld
I will approve the patch but before pushing do what follows:
1 - Change some comments as explained in-line.
2 - Make sure that you have the latest branch, apply the patch and
check if the error was gone.
3 - If so, push the patch and after pushing it, monitor the trees to see
if everything is ok.
Cheers.
Dao-Gang.Qu@stripped wrote:
> #At file:///home/daogangq/mysql/bzrwork/bug45630/mysql-5.1-bugteam/ based on
> revid:epotemkin@stripped
>
> 3034 Dao-Gang.Qu@stripped 2009-07-22
> Bug #45630 rpl_trigger.test causes valgrind failures within
> nptl_pthread_exit_hack_handler
>
> The server shutdown and start code triggered the valgrind failures
> within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64)
> in rpl_trigger.test file.
>
> For fixing the bug, suppress valgrind failures within
> nptl_pthread_exit_hack_handler
> on Ubuntu 9.04, x86 (but not amd64). Because the server shutdown and start
> code has been heavily used in mysql test set.
> @ mysql-test/valgrind.supp
> Add code for suppressing valgrind failures within
> nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64).
>
> modified:
> mysql-test/valgrind.supp
> === modified file 'mysql-test/valgrind.supp'
> --- a/mysql-test/valgrind.supp 2008-10-21 07:55:03 +0000
> +++ b/mysql-test/valgrind.supp 2009-07-22 08:59:35 +0000
> @@ -517,3 +517,126 @@
> fun:dlopen*
> }
>
> +#
> +# BUG#45630
> +# Suppress valgrind failures within nptl_pthread_exit_hack_handler on Ubuntu 9.04,
> x86 (but not amd64):
>
> +#
> +#==12750== at 0x4026FDE: malloc (vg_replace_malloc.c:207)
> +#==12750== by 0x4004ABE: (within /lib/ld-2.9.so)
> +# ...
> +#==12750== by 0x4011C1D: (within /lib/ld-2.9.so)
> +#==12750== by 0x4202901: (within /lib/tls/i686/cmov/libc-2.9.so)
> +#==12750== by 0x400E035: (within /lib/ld-2.9.so)
> +#==12750== by 0x4202AC4: __libc_dlopen_mode (in /lib/tls/i686/cmov/libc-2.9.so)
> +#==12750== by 0x404AE16: pthread_cancel_init (in
> /lib/tls/i686/cmov/libpthread-2.9.so)
> +#==12750== by 0x404AF40: _Unwind_ForcedUnwind (in
> /lib/tls/i686/cmov/libpthread-2.9.so)
> +#==12750== by 0x4048960: __pthread_unwind (in
> /lib/tls/i686/cmov/libpthread-2.9.so)
> +#==12750== by 0x4042A5F: pthread_exit (in /lib/tls/i686/cmov/libpthread-2.9.so)
> +#==12750== by 0x8721CE9: nptl_pthread_exit_hack_handler (my_thr_init.c:61)
> +#==12750== by 0x40424FE: start_thread (in /lib/tls/i686/cmov/libpthread-2.9.so)
> +#==12750== by 0x41C649D: clone (in /lib/tls/i686/cmov/libc-2.9.so)
> +#
>
Please, remove the comments above. I think they are not necessary and
are just cluttering the file.
> +
> +{
> + Mem loss within nptl_pthread_exit_hack_handler 1
> + Memcheck:Leak
> + fun:malloc
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/libc-*.so
> + obj:*/ld-*.so
> + fun:__libc_dlopen_mode
> + fun:pthread_cancel_init
> + fun:_Unwind_ForcedUnwind
> + fun:__pthread_unwind
> + fun:pthread_exit
> + fun:nptl_pthread_exit_hack_handler
> + fun:start_thread
> + fun:clone
> +}
> +
> +{
> + Mem loss within nptl_pthread_exit_hack_handler 2
> + Memcheck:Leak
> + fun:malloc
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/libc-*.so
> + obj:*/ld-*.so
> + fun:__libc_dlopen_mode
> + fun:pthread_cancel_init
> + fun:_Unwind_ForcedUnwind
> + fun:__pthread_unwind
> + fun:pthread_exit
> + fun:nptl_pthread_exit_hack_handler
> + fun:start_thread
> + fun:clone
> +}
> +
> +{
> + Mem loss within nptl_pthread_exit_hack_handler 3
> + Memcheck:Leak
> + fun:calloc
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/libc-*.so
> + obj:*/ld-*.so
> + fun:__libc_dlopen_mode
> + fun:pthread_cancel_init
> + fun:_Unwind_ForcedUnwind
> + fun:__pthread_unwind
> + fun:pthread_exit
> + fun:nptl_pthread_exit_hack_handler
> + fun:start_thread
> + fun:clone
> +}
> +
> +{
> + Mem loss within nptl_pthread_exit_hack_handler 4
> + Memcheck:Leak
> + fun:malloc
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/libc-*.so
> + obj:*/ld-*.so
> + fun:__libc_dlopen_mode
> + fun:pthread_cancel_init
> + fun:_Unwind_ForcedUnwind
> + fun:__pthread_unwind
> + fun:pthread_exit
> + fun:nptl_pthread_exit_hack_handler
> + fun:start_thread
> +}
> +
> +{
> + Mem loss within nptl_pthread_exit_hack_handler 5
> + Memcheck:Leak
> + fun:calloc
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/ld-*.so
> + obj:*/libc-*.so
> + obj:*/ld-*.so
> + fun:__libc_dlopen_mode
> + fun:pthread_cancel_init
> + fun:_Unwind_ForcedUnwind
> + fun:__pthread_unwind
> + fun:pthread_exit
> + fun:nptl_pthread_exit_hack_handler
> + fun:start_thread
> +}
> +
>
>
> ------------------------------------------------------------------------
>
>
>