Hi!
>>>>> "sanja" == sanja <sanja@stripped> writes:
sanja> #At bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-maria/
sanja> 2691 sanja@stripped 2008-10-24
sanja> Added correct reaction on find operation status during writing the page.
> (BUG#40308)
sanja> modified:
sanja> storage/maria/ma_pagecache.c
sanja> per-file messages:
sanja> storage/maria/ma_pagecache.c
sanja> Added correct reaction on find operation status during writing the page.
sanja> === modified file 'storage/maria/ma_pagecache.c'
<cut>
sanja> @@ -3859,10 +3861,7 @@ restart:
sanja> reg_request= ((pin == PAGECACHE_PIN_LEFT_UNPINNED) ||
sanja> (pin == PAGECACHE_PIN));
sanja> block= find_block(pagecache, file, pageno, level,
sanja> - (write_mode != PAGECACHE_WRITE_DONE &&
sanja> - lock != PAGECACHE_LOCK_LEFT_WRITELOCKED &&
sanja> - lock != PAGECACHE_LOCK_WRITE_UNLOCK &&
sanja> - lock != PAGECACHE_LOCK_WRITE_TO_READ),
sanja> + write_mode != PAGECACHE_WRITE_DONE,
sanja> reg_request, &page_st);
We discussed this change on IRC.
sanja> if (!block)
sanja> {
sanja> @@ -3873,6 +3872,22 @@ restart:
sanja> /* Write to the disk key cache is in resize at the moment*/
sanja> goto no_key_cache;
sanja> }
sanja> + DBUG_PRINT("info", ("page status: %d", page_st));
sanja> + if (!(block->status & PCBLOCK_ERROR) &&
sanja> + ((page_st == PAGE_TO_BE_READ &&
sanja> + (offset || size < pagecache->block_size)) ||
sanja> + (page_st == PAGE_WAIT_TO_BE_READ)))
sanja> + {
sanja> + DBUG_PRINT("info", ("read block 0x%lx", (ulong)block));
sanja> + /* The requested page is to be read into the block buffer */
sanja> + read_block(pagecache, block,
sanja> + (my_bool)(page_st == PAGE_TO_BE_READ));
sanja> + DBUG_PRINT("info", ("read is done"));
Remove the DBUG_PRINT's and instead add the printing of block number
to read_block().
Ok to push after the above small change
Regards,
Monty