Comment 2 for bug 315564

Revision history for this message
Vladimir Kolesnikov (vkolesnikov) wrote :

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?