Commit 3becab22 authored by unknown's avatar unknown

Maria: fix for compiler warning (signed-ness).

    #warning to warn (!) about current issues in the pagecache hindering
    checkpoint (we will have to fix them!).


mysys/mf_pagecache.c:
  fix for compiler warning (signed-ness).
  #warning to warn (!) about current issues in the pagecache hindering
  checkpoint (we will have to fix them!).
parent 6691ce30
...@@ -699,7 +699,7 @@ int init_pagecache(PAGECACHE *pagecache, my_size_t use_mem, ...@@ -699,7 +699,7 @@ int init_pagecache(PAGECACHE *pagecache, my_size_t use_mem,
pagecache->shift= my_bit_log2(block_size); pagecache->shift= my_bit_log2(block_size);
DBUG_PRINT("info", ("block_size: %u", DBUG_PRINT("info", ("block_size: %u",
block_size)); block_size));
DBUG_ASSERT((1 << pagecache->shift) == block_size); DBUG_ASSERT(((uint)(1 << pagecache->shift)) == block_size);
blocks= (int) (use_mem / (sizeof(PAGECACHE_BLOCK_LINK) + blocks= (int) (use_mem / (sizeof(PAGECACHE_BLOCK_LINK) +
2 * sizeof(PAGECACHE_HASH_LINK) + 2 * sizeof(PAGECACHE_HASH_LINK) +
...@@ -3259,6 +3259,7 @@ restart: ...@@ -3259,6 +3259,7 @@ restart:
#ifndef DBUG_OFF #ifndef DBUG_OFF
int rc= int rc=
#endif #endif
#warning we are doing an unlock here, so need to give the page its rec_lsn!
pagecache_make_lock_and_pin(pagecache, block, pagecache_make_lock_and_pin(pagecache, block,
write_lock_change_table[lock].unlock_lock, write_lock_change_table[lock].unlock_lock,
write_pin_change_table[pin].unlock_pin); write_pin_change_table[pin].unlock_pin);
...@@ -3614,6 +3615,11 @@ restart: ...@@ -3614,6 +3615,11 @@ restart:
else else
{ {
/* Link the block into a list of blocks 'in switch' */ /* Link the block into a list of blocks 'in switch' */
#warning this unlink_changed() is a serious problem for Maria's Checkpoint: it \
removes a page from the list of dirty pages, while it's still dirty. A \
solution is to abandon first_in_switch, just wait for this page to be \
flushed by somebody else, and loop. TODO: check all places where we remove a \
page from the list of dirty pages
unlink_changed(block); unlink_changed(block);
link_changed(block, &first_in_switch); link_changed(block, &first_in_switch);
} }
......
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