Commit 0c7db783 authored by Tor Didriksen's avatar Tor Didriksen

Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX

Suppress the known warnings generated by filesort().

The real fix belongs to worklog 1509:
Pack values of non-sorted fields in the sort buffer
(which is basically the same issue, but in an optimization context:
 We are writing the entire sort buffer to disk, 
 including un-used space for varchar columns.)



mysql-test/valgrind.supp:
  Add new Memcheck suppressions for filesort.
sql/filesort.cc:
  Remove the ifdef HAVE_purify/bzero code, use valgrind suppressions instead.
parent e46b3453
...@@ -791,3 +791,37 @@ ...@@ -791,3 +791,37 @@
fun:fil_delete_tablespace fun:fil_delete_tablespace
fun:row_drop_table_for_mysql fun:row_drop_table_for_mysql
} }
{
Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / one
Memcheck:Param
write(buf)
obj:*/libpthread*.so
fun:my_write
fun:my_b_flush_io_cache
fun:_my_b_write
fun:_ZL10write_keysP13st_sort_paramPPhjP11st_io_cacheS4_
fun:_ZL13find_all_keysP13st_sort_paramP10SQL_SELECTPPhP11st_io_cacheS6_S6_
fun:_Z8filesortP3THDP8st_tableP13st_sort_fieldjP10SQL_SELECTybPy
}
{
Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / two
Memcheck:Param
write(buf)
obj:*/libpthread*.so
fun:my_write
fun:my_b_flush_io_cache
fun:_Z15merge_many_buffP13st_sort_paramPhP10st_buffpekPjP11st_io_cache
fun:_Z8filesortP3THDP8st_tableP13st_sort_fieldjP10SQL_SELECTybPy
}
{
Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / three
Memcheck:Param
write(buf)
obj:*/libpthread*.so
fun:my_write
fun:my_b_flush_io_cache
fun:_Z8filesortP3THDP8st_tableP13st_sort_fieldjP10SQL_SELECTybPy
}
...@@ -959,21 +959,10 @@ static void make_sortkey(register SORTPARAM *param, ...@@ -959,21 +959,10 @@ static void make_sortkey(register SORTPARAM *param,
if (addonf->null_bit && field->is_null()) if (addonf->null_bit && field->is_null())
{ {
nulls[addonf->null_offset]|= addonf->null_bit; nulls[addonf->null_offset]|= addonf->null_bit;
#ifdef HAVE_purify
bzero(to, addonf->length);
#endif
} }
else else
{ {
#ifdef HAVE_purify
uchar *end= field->pack(to, field->ptr);
uint length= (uint) ((to + addonf->length) - end);
DBUG_ASSERT((int) length >= 0);
if (length)
bzero(end, length);
#else
(void) field->pack(to, field->ptr); (void) field->pack(to, field->ptr);
#endif
} }
to+= addonf->length; to+= addonf->length;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment