Merge from mysql-5.1-innodb:

------------------------------------------------------------
  revno: 3478.1.3
  revision-id: marko.makela@oracle.com-20100525123748-pmpehbg29oyhc1ns
  parent: marko.makela@oracle.com-20100524114349-5kaw52sz0yh4szkb
  committer: Marko Mäkelä <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Tue 2010-05-25 15:37:48 +0300
  message:
    Suppress bogus Valgrind warnings about buf_buddy_relocate()
    accessing uninitialized memory in Valgrind-instrumented builds.
This commit is contained in:
Marko Mäkelä 2010-06-01 14:56:22 +03:00
parent 2b47efb6e4
commit ea53f9af45
2 changed files with 14 additions and 6 deletions
mysql-test
storage/innobase/buf

View file

@ -740,3 +740,8 @@
fun:pthread_create*
}
{
buf_buddy_relocate peeking (space,page) in potentially free blocks
Memcheck:Addr1
fun:buf_buddy_relocate
}

View file

@ -446,12 +446,15 @@ buf_buddy_relocate(
pool), so there is nothing wrong about this. The
mach_read_from_4() calls here will only trigger bogus
Valgrind memcheck warnings in UNIV_DEBUG_VALGRIND builds. */
bpage = buf_page_hash_get(
buf_pool,
mach_read_from_4((const byte*) src
+ FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID),
mach_read_from_4((const byte*) src
+ FIL_PAGE_OFFSET));
ulint space = mach_read_from_4(
(const byte*) src + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID);
ulint page_no = mach_read_from_4(
(const byte*) src + FIL_PAGE_OFFSET);
/* Suppress Valgrind warnings about conditional jump
on uninitialized value. */
UNIV_MEM_VALID(&space, sizeof space);
UNIV_MEM_VALID(&page_no, sizeof page_no);
bpage = buf_page_hash_get(buf_pool, space, page_no);
if (!bpage || bpage->zip.data != src) {
/* The block has probably been freshly