List:Commits« Previous MessageNext Message »
From:marko.makela Date:April 23 2012 7:27am
Subject:bzr push into mysql-trunk branch (marko.makela:3884 to 3886) Bug#13875241
View as plain text  
 3886 Marko Mäkelä	2012-04-23
      Bug#13875241 NONDETERMINISM IN INNODB-INDEX-ONLINE.TEST
      
      The index cardinality statistics would sometimes show one more entry
      for the PRIMARY KEY, depending on whether the row affected by the
      DELETE statement was purged. Adjust the statistics and results.
      
      Remove the generation of the DBUG trace (ds.trace), as it is no longer
      needed.

    modified:
      mysql-test/suite/innodb/r/innodb-index-online.result
      mysql-test/suite/innodb/t/innodb-index-online.test
 3885 Marko Mäkelä	2012-04-23
      Correct a typo in a comment.

    modified:
      storage/innobase/row/row0merge.cc
 3884 Mayank Prasad	2012-04-23
      finxing test case bug12427262 result file.

    modified:
      mysql-test/r/bug12427262.result
=== modified file 'mysql-test/suite/innodb/r/innodb-index-online.result'
--- a/mysql-test/suite/innodb/r/innodb-index-online.result	revid:mayank.prasad@stripped0423041704-a7mo50u0gi35g373
+++ b/mysql-test/suite/innodb/r/innodb-index-online.result	revid:marko.makela@strippedom-20120423072546-6ir7raovf9tjqzxs
@@ -1,6 +1,4 @@
-SET GLOBAL DEBUG='d,query,debug_sync_exec:i:t:A,ds.trace';
 SET DEBUG='+d,debug_sync_abort_on_timeout';
-SET DEBUG='d,query,debug_sync_exec:i:t:A,ds.trace';
 call mtr.add_suppression("InnoDB: Warning: Small buffer pool size");
 call mtr.add_suppression("Cannot find index .*c2 in InnoDB index translation table");
 call mtr.add_suppression("Find index .*c2 in InnoDB index list but not its MySQL index number");
@@ -20,7 +18,6 @@ SET DEBUG_SYNC='RESET';
 SET DEBUG_SYNC='write_row_noreplace SIGNAL have_handle WAIT_FOR go_ahead';
 INSERT INTO t1 VALUES(1,2,3);
 SET DEBUG='+d,debug_sync_abort_on_timeout';
-SET DEBUG='d,query,debug_sync_exec:i:t:A,ds.trace';
 SET DEBUG_SYNC='now WAIT_FOR have_handle';
 SET lock_wait_timeout=1;
 ALTER TABLE t1 ADD UNIQUE INDEX(c2);
@@ -99,6 +96,9 @@ SET SESSION innodb_analyze_is_persistent
 ANALYZE TABLE t1;
 Table	Op	Msg_type	Msg_text
 test.t1	analyze	status	OK
+UPDATE mysql.innodb_index_stats SET stat_value=5
+WHERE database_name='test' AND table_name='t1' AND index_name='PRIMARY'
+AND stat_value=6;
 SELECT * FROM mysql.innodb_index_stats;
 database_name	table_name	index_name	last_update	stat_name	stat_value	sample_size	stat_description
 test	t1	PRIMARY	LAST_UPDATE	n_diff_pfx01	5	1	c1

=== modified file 'mysql-test/suite/innodb/t/innodb-index-online.test'
--- a/mysql-test/suite/innodb/t/innodb-index-online.test	revid:mayank.prasad@stripped
+++ b/mysql-test/suite/innodb/t/innodb-index-online.test	revid:marko.makela@stripped
@@ -1,9 +1,7 @@
 --source include/have_innodb.inc
 --source include/have_debug_sync.inc
 
-SET GLOBAL DEBUG='d,query,debug_sync_exec:i:t:A,ds.trace';
 SET DEBUG='+d,debug_sync_abort_on_timeout';
-SET DEBUG='d,query,debug_sync_exec:i:t:A,ds.trace';
 
 call mtr.add_suppression("InnoDB: Warning: Small buffer pool size");
 # These will be triggered by INSERT INTO t1 VALUES(6,3,1);
@@ -35,7 +33,6 @@ connect (con1,localhost,root,,);
 connection con1;
 
 SET DEBUG='+d,debug_sync_abort_on_timeout';
-SET DEBUG='d,query,debug_sync_exec:i:t:A,ds.trace';
 # This should block at the end because of the INSERT in connection default
 # is holding a metadata lock.
 SET DEBUG_SYNC='now WAIT_FOR have_handle';
@@ -125,6 +122,10 @@ INSERT INTO t1 VALUES(6,3,1);
 INSERT INTO t1 VALUES(7,4,2);
 SET SESSION innodb_analyze_is_persistent=1;
 ANALYZE TABLE t1;
+# Purge may or may not have cleaned up the DELETE FROM t1 WHERE c1=7;
+UPDATE mysql.innodb_index_stats SET stat_value=5
+WHERE database_name='test' AND table_name='t1' AND index_name='PRIMARY'
+AND stat_value=6;
 --replace_column 4 LAST_UPDATE
 SELECT * FROM mysql.innodb_index_stats;
 CREATE TABLE t1_c2_stats SELECT * FROM mysql.innodb_index_stats
@@ -160,6 +161,8 @@ INSERT INTO t1 SELECT 5+c1,c2,c3 FROM t1
 INSERT INTO t1 SELECT 10+c1,c2,c3 FROM t1;
 INSERT INTO t1 SELECT 20+c1,c2,c3 FROM t1;
 INSERT INTO t1 SELECT 40+c1,c2,c3 FROM t1;
+# Purge may or may not have cleaned up the DELETE FROM t1 WHERE c1=7;
+--replace_result 6 5
 EXPLAIN SELECT COUNT(*) FROM t1 WHERE c2>3;
 ANALYZE TABLE t1;
 

=== modified file 'storage/innobase/row/row0merge.cc'
--- a/storage/innobase/row/row0merge.cc	revid:mayank.prasad@stripped
+++ b/storage/innobase/row/row0merge.cc	revid:marko.makela@oracle.com-20120423072546-6ir7raovf9tjqzxs
@@ -2473,7 +2473,7 @@ row_merge_drop_index_dict(
 	if (error != DB_SUCCESS) {
 		/* Even though we ensure that DDL transactions are WAIT
 		and DEADLOCK free, we could encounter other errors e.g.,
-		DB_TOO_MANY_TRANSACTIONS. */
+		DB_TOO_MANY_CONCURRENT_TRXS. */
 		trx->error_state = DB_SUCCESS;
 
 		ut_print_timestamp(stderr);
@@ -2545,7 +2545,7 @@ row_merge_drop_indexes_dict(
 	if (error != DB_SUCCESS) {
 		/* Even though we ensure that DDL transactions are WAIT
 		and DEADLOCK free, we could encounter other errors e.g.,
-		DB_TOO_MANY_TRANSACTIONS. */
+		DB_TOO_MANY_CONCURRENT_TRXS. */
 		trx->error_state = DB_SUCCESS;
 
 		ut_print_timestamp(stderr);
@@ -2739,7 +2739,7 @@ row_merge_drop_temp_indexes(void)
 	if (error != DB_SUCCESS) {
 		/* Even though we ensure that DDL transactions are WAIT
 		and DEADLOCK free, we could encounter other errors e.g.,
-		DB_TOO_MANY_TRANSACTIONS. */
+		DB_TOO_MANY_CONCURRENT_TRXS. */
 		trx->error_state = DB_SUCCESS;
 
 		ut_print_timestamp(stderr);
@@ -2871,7 +2871,7 @@ row_merge_rename_index_to_add(
 	if (err != DB_SUCCESS) {
 		/* Even though we ensure that DDL transactions are WAIT
 		and DEADLOCK free, we could encounter other errors e.g.,
-		DB_TOO_MANY_TRANSACTIONS. */
+		DB_TOO_MANY_CONCURRENT_TRXS. */
 		trx->error_state = DB_SUCCESS;
 
 		ut_print_timestamp(stderr);
@@ -2926,7 +2926,7 @@ row_merge_rename_index_to_drop(
 	if (err != DB_SUCCESS) {
 		/* Even though we ensure that DDL transactions are WAIT
 		and DEADLOCK free, we could encounter other errors e.g.,
-		DB_TOO_MANY_TRANSACTIONS. */
+		DB_TOO_MANY_CONCURRENT_TRXS. */
 		trx->error_state = DB_SUCCESS;
 
 		ut_print_timestamp(stderr);

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (marko.makela:3884 to 3886) Bug#13875241marko.makela23 Apr