Merge lp:~laurynas-biveinis/percona-server/bug1046389 into lp:percona-server/5.1

Proposed by Laurynas Biveinis
Status: Superseded
Proposed branch: lp:~laurynas-biveinis/percona-server/bug1046389
Merge into: lp:percona-server/5.1
Diff against target: 60 lines (+8/-6)
3 files modified
Percona-Server/mysql-test/r/percona_server_variables_debug.result (+2/-0)
Percona-Server/storage/innodb_plugin/buf/buf0buf.c (+5/-5)
Percona-Server/storage/innodb_plugin/page/page0page.c (+1/-1)
To merge this branch: bzr merge lp:~laurynas-biveinis/percona-server/bug1046389
Reviewer Review Type Date Requested Status
Laurynas Biveinis (community) Needs Fixing
Percona core g1 Pending
Percona core Pending
Review via email: mp+123106@code.launchpad.net

This proposal has been superseded by a proposal from 2012-09-25.

Description of the change

Fix bug 1046389 (UNIV_DEBUG build broken).

There are two regressions, both fixed:
1) Fix for bug 905334 regressed in adding debug-specific code with
missing local variable that breaks the build.

2) Dynamic UNIV_PAGE_SIZE introduced a warning regression, presumably
with a recent compiler.

Re-recorded the percona_server_variables_debug test due to additional
variables enabled.

Jenkins run, adjusted accordingly: http://jenkins.percona.com/job/percona-server-5.1-param-UNIV_DEBUG/2/

Since original bug 905334 fix turned out to be a no-op, I retested it with Kristian's (cd mysql-test ; for i in `seq 1000`; do echo XXX $i XXX; ./mtr --parallel=2 innodb.innodb_bug56680 || exit 1 ; done).

The UNIV_PAGE_SIZE part is a null merge for 5.5.

Has to go to trunk in a separate merge with the main Jenkins configuration adjusted to add -DUNIV_DEBUG at the same time.

To post a comment you must log in.
Revision history for this message
Vlad Lesin (vlad-lesin) wrote :

The code looks good.

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

Wrong order of the tests in the bug 905334 fix, invalidating this fix: the buffer page type check must come before the page no test, or the latter will assert.

review: Needs Fixing

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Percona-Server/mysql-test/r/percona_server_variables_debug.result'
2--- Percona-Server/mysql-test/r/percona_server_variables_debug.result 2012-09-05 22:27:47 +0000
3+++ Percona-Server/mysql-test/r/percona_server_variables_debug.result 2012-09-17 13:33:07 +0000
4@@ -89,6 +89,7 @@
5 INNODB_BUFFER_POOL_SIZE
6 INNODB_CHANGED_PAGES_LIMIT
7 INNODB_CHANGE_BUFFERING
8+INNODB_CHANGE_BUFFERING_DEBUG
9 INNODB_CHECKPOINT_AGE_TARGET
10 INNODB_CHECKSUMS
11 INNODB_COMMIT_CONCURRENCY
12@@ -159,6 +160,7 @@
13 INNODB_THREAD_CONCURRENCY_TIMER_BASED
14 INNODB_THREAD_SLEEP_DELAY
15 INNODB_TRACK_CHANGED_PAGES
16+INNODB_TRX_RSEG_N_SLOTS_DEBUG
17 INNODB_USE_PURGE_THREAD
18 INNODB_USE_SYS_MALLOC
19 INNODB_USE_SYS_STATS_TABLE
20
21=== modified file 'Percona-Server/storage/innodb_plugin/buf/buf0buf.c'
22--- Percona-Server/storage/innodb_plugin/buf/buf0buf.c 2012-08-19 15:14:44 +0000
23+++ Percona-Server/storage/innodb_plugin/buf/buf0buf.c 2012-09-17 13:33:07 +0000
24@@ -2123,6 +2123,7 @@
25 if (mode == BUF_GET_IF_IN_POOL && ibuf_debug) {
26 /* Try to evict the block from the buffer pool, to use the
27 insert buffer as much as possible. */
28+ ulint page_no = buf_block_get_page_no(block);
29
30 if (buf_LRU_free_block(&block->page, TRUE, FALSE)) {
31 //buf_pool_mutex_exit();
32@@ -2131,11 +2132,10 @@
33 "innodb_change_buffering_debug evict %u %u\n",
34 (unsigned) space, (unsigned) offset);
35 return(NULL);
36- } else if (UNIV_UNLIKELY(buf_block_get_page_no(block)
37- != page_no
38- || buf_block_get_space(block) != space
39- || (buf_block_get_state(block)
40- != BUF_BLOCK_FILE_PAGE))) {
41+ } else if (UNIV_UNLIKELY(buf_block_get_state(block)
42+ != BUF_BLOCK_FILE_PAGE
43+ || (buf_block_get_page_no(block) != page_no)
44+ || (buf_block_get_space(block) != space))) {
45
46 /* buf_LRU_free_block temporarily releases the
47 block mutex, and now block points to something
48
49=== modified file 'Percona-Server/storage/innodb_plugin/page/page0page.c'
50--- Percona-Server/storage/innodb_plugin/page/page0page.c 2012-02-17 09:42:04 +0000
51+++ Percona-Server/storage/innodb_plugin/page/page0page.c 2012-09-17 13:33:07 +0000
52@@ -1584,7 +1584,7 @@
53 n--;
54
55 ut_ad(n >= 0);
56- ut_ad(n < UNIV_PAGE_SIZE / (REC_N_NEW_EXTRA_BYTES + 1));
57+ ut_ad((ulint) n < UNIV_PAGE_SIZE / (REC_N_NEW_EXTRA_BYTES + 1));
58
59 return((ulint) n);
60 }

Subscribers

People subscribed via source and target branches