Philip,
Thanks for the report. However I cannot reproduce the problem on 5.1.30. What I get is:
.... # 23:04:56 Validators: DatabaseConsistency # 23:04:56 Starting 10 processes, 1000000 queries each, duration 300 seconds. # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: COMMIT # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:56 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF # 23:04:57 Bad checksum table: table10_pbxt_int_autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION # 23:04:57 Started periodic reporting process... # 23:05:02 Killing periodic reporting process with pid 22114... ....
so the tool reports some problem, in the query log I can see the following (an excerpt):
5 Query SET AUTOCOMMIT=OFF 5 Query START TRANSACTION 6 Query SELECT SUM(`int_key`) + SUM(`int`) FROM `table10_pbxt_int_autoinc` 5 Query SHOW TABLES 5 Query START TRANSACTION 6 Query SELECT SUM(`int_key`) + SUM(`int`) FROM `table10_pbxt_int_autoinc` 5 Query INSERT INTO `table10_pbxt_int_autoinc` ( `pk` ) VALUES ( NULL ) , ( NULL ) , ( NULL ) 6 Query SELECT SUM(`int_key`) + SUM(`int`) FROM `table10_pbxt_int_autoinc` 5 Query ROLLBACK
so thread 5 inserts NULL and rolls back indeed. If I correctly understand the rolled back rows will contain NULLs in columns other than PK. Now I start the mysql client (the tool doesn't stop the server) and get:
mysql> select * from table10_pbxt_int_autoinc; +---------+----+------+ | int_key | pk | int | +---------+----+------+ | 100 | 15 | 100 | | 100 | 14 | 100 | | 60 | 3 | 140 | | 60 | 2 | 140 | | 60 | 1 | 140 | | 60 | 4 | 140 | | 60 | 5 | 140 | | 60 | 6 | 140 | | 60 | 7 | 140 | | 60 | 8 | 140 | | 60 | 9 | 140 | | 60 | 10 | 140 | +---------+----+------+ 12 rows in set (0.00 sec)
As you can see there's no row with NULLs in int_key or int columns. Do you get a different result or do I miss something?
Philip,
Thanks for the report. However I cannot reproduce the problem on 5.1.30. What I get is:
.... pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: COMMIT pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: SET AUTOCOMMIT=OFF pbxt_int_ autoinc; sum: 2400; affected_rows:0E0; query: START TRANSACTION
# 23:04:56 Validators: DatabaseConsistency
# 23:04:56 Starting 10 processes, 1000000 queries each, duration 300 seconds.
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:56 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Bad checksum table: table10_
# 23:04:57 Started periodic reporting process...
# 23:05:02 Killing periodic reporting process with pid 22114...
....
so the tool reports some problem, in the query log I can see the following (an excerpt):
so thread 5 inserts NULL and rolls back indeed. If I correctly understand the rolled back rows will contain NULLs in columns other than PK. Now I start the mysql client (the tool doesn't stop the server) and get:
mysql> select * from table10_ pbxt_int_ autoinc; ---+--- -+----- -+ ---+--- -+----- -+ ---+--- -+----- -+
+------
| int_key | pk | int |
+------
| 100 | 15 | 100 |
| 100 | 14 | 100 |
| 60 | 3 | 140 |
| 60 | 2 | 140 |
| 60 | 1 | 140 |
| 60 | 4 | 140 |
| 60 | 5 | 140 |
| 60 | 6 | 140 |
| 60 | 7 | 140 |
| 60 | 8 | 140 |
| 60 | 9 | 140 |
| 60 | 10 | 140 |
+------
12 rows in set (0.00 sec)
As you can see there's no row with NULLs in int_key or int columns. Do you get a different result or do I miss something?