Details
Description
As noted in MDEV-32873, the test innodb.innodb-table-online,crypt could occasionally fail like this if it was made compatible with ./mtr --repeat:
11.0 5b6134b040b59d6c896ec0a2c86029a0bcca788c |
innodb.innodb-table-online '16k,crypt,innodb' w6 [ 2 fail ]
|
Test ended at 2023-11-24 12:54:43
|
|
CURRENT_TEST: innodb.innodb-table-online
|
--- /mariadb/11/mysql-test/suite/innodb/r/innodb-table-online,crypt.result~ 2023-11-24 12:54:34.235128293 +0200
|
+++ /mariadb/11/mysql-test/suite/innodb/r/innodb-table-online,crypt.reject 2023-11-24 12:54:43.067237664 +0200
|
@@ -251,7 +251,7 @@
|
@merge_encrypt_1>@merge_encrypt_0, @merge_decrypt_1>@merge_decrypt_0,
|
@rowlog_encrypt_1>@rowlog_encrypt_0;
|
sort_balance @merge_encrypt_1>@merge_encrypt_0 @merge_decrypt_1>@merge_decrypt_0 @rowlog_encrypt_1>@rowlog_encrypt_0
|
-0 0 0 1
|
+0 0 0 0
|
SET DEBUG_SYNC = 'now SIGNAL dml2_done';
|
connection con1;
|
ERROR HY000: Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again
|
|
mysqltest: Result content mismatch
|
In the rr replay trace that I analyzed, get_one_variable() would convert export_vars.innodb_n_rowlog_blocks_encrypted to a string, and then it would apparently be compared as a string. In the case of the failure, the problem is that '16' compares smaller than '9'.
After I replaced all occurrences of variable_value to CAST(variable_value AS INTEGER), the test became stable, because 16 would compare larger than 9.
Attachments
Issue Links
- relates to
-
MDEV-32873 Test innodb.innodb-index-online occasionally fails
- Closed