Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.5
Description
- bootstrap 10.5.9 with aria-encrypt-tables=1, e.g.
--aria-encrypt-tables=1 --file-key-management --file-key-management-filename=`pwd`/mysql-test/std_data/keys.txt --plugin-load-add=file_key_management
- start 10.5.10 on the datadir from 10.5.9;
- run CHECK TABLE `mysql`.`tables_priv`
10.5 8426c741
MariaDB [(none)]> CHECK TABLE `mysql`.`tables_priv`;
+-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+
| mysql.tables_priv | check | error | Page at 8192 as wrong LSN (3971177,0x66334873). Current LSN is (1,0x5a5b) |
| mysql.tables_priv | check | error | Page at 16384 as wrong LSN (11590737,0x19495cff). Current LSN is (1,0x5a5b) |
| mysql.tables_priv | check | error | Page 1: Wrong LSN (9127271,0x327b23c6). Current LSN is (1,0x5a5b) |
| mysql.tables_priv | check | error | Table is probably from another system and must be zerofilled or repaired ('REPAIR TABLE table_name') to be usable on this system |
| mysql.tables_priv | check | error | Corrupt |
+-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+
5 rows in set (0.012 sec)
The problem was introduced by this commit in 10.5.10:
commit 81258f14323e1d1ad0203bae93bc55a30d47c1b3 (HEAD)
|
Author: Monty <monty@mariadb.org>
|
Date: Fri Apr 2 22:00:36 2021 +0300
|
|
MDEV-17913 Encrypted transactional Aria tables remain corrupt after crash recovery, automatic repairment does not work
|
|
...
|
|
Other things:
|
- Extended Aria check_table() to check for wrong (= too big) LSN numbers.
|
- If check_table() failed just because of wrong LSN or TRN numbers,
|
a following repair table will just do a zerofill which is much faster.
|
- Limit number of LSN errors in one check table to MAX_LSN_ERROR (10).
|
- Removed old obsolete test of 'if (error_count & 2)'. Changed error_count
|
and warning_count from bits to numbers of errors/warnings as this is
|
more useful.
|
I don't know whether it is a real problem or the extended check produces false positives, but in any case corruption-like errors can cause troubles for users.
REPAIR makes the errors disappear.
Attachments
Issue Links
- relates to
-
MDEV-17913 Encrypted transactional Aria tables remain corrupt after crash recovery, automatic repairment does not work
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue relates to |
Description |
- bootstrap 10.5.9 with aria-encrypt-tables=1, e.g.
{noformat} --aria-encrypt-tables=1 --file-key-management --file-key-management-filename=`pwd`/mysql-test/std_data/keys.txt --plugin-load-add=file_key_management {noformat} - start 10.5.10 on the datadir from 10.5.9; - run {{CHECK TABLE `mysql`.`tables_priv`}} {code:sql|title=10.5 8426c741} MariaDB [(none)]> CHECK TABLE `mysql`.`tables_priv`; +-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+ | mysql.tables_priv | check | error | Page at 8192 as wrong LSN (3971177,0x66334873). Current LSN is (1,0x5a5b) | | mysql.tables_priv | check | error | Page at 16384 as wrong LSN (11590737,0x19495cff). Current LSN is (1,0x5a5b) | | mysql.tables_priv | check | error | Page 1: Wrong LSN (9127271,0x327b23c6). Current LSN is (1,0x5a5b) | | mysql.tables_priv | check | error | Table is probably from another system and must be zerofilled or repaired ('REPAIR TABLE table_name') to be usable on this system | | mysql.tables_priv | check | error | Corrupt | +-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+ 5 rows in set (0.012 sec) {code} The problem was introduced by this commit: {noformat} commit 81258f14323e1d1ad0203bae93bc55a30d47c1b3 (HEAD) Author: Monty <monty@mariadb.org> Date: Fri Apr 2 22:00:36 2021 +0300 ... Other things: - Extended Aria check_table() to check for wrong (= too big) LSN numbers. - If check_table() failed just because of wrong LSN or TRN numbers, a following repair table will just do a zerofill which is much faster. - Limit number of LSN errors in one check table to MAX_LSN_ERROR (10). - Removed old obsolete test of 'if (error_count & 2)'. Changed error_count and warning_count from bits to numbers of errors/warnings as this is more useful. {noformat} I don't know whether it is a real problem or the extended check produces false positives, but in any case corruption-like errors can cause troubles for users. {{REPAIR}} makes the errors disappear. |
- bootstrap 10.5.9 with aria-encrypt-tables=1, e.g.
{noformat} --aria-encrypt-tables=1 --file-key-management --file-key-management-filename=`pwd`/mysql-test/std_data/keys.txt --plugin-load-add=file_key_management {noformat} - start 10.5.10 on the datadir from 10.5.9; - run {{CHECK TABLE `mysql`.`tables_priv`}} {code:sql|title=10.5 8426c741} MariaDB [(none)]> CHECK TABLE `mysql`.`tables_priv`; +-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+ | mysql.tables_priv | check | error | Page at 8192 as wrong LSN (3971177,0x66334873). Current LSN is (1,0x5a5b) | | mysql.tables_priv | check | error | Page at 16384 as wrong LSN (11590737,0x19495cff). Current LSN is (1,0x5a5b) | | mysql.tables_priv | check | error | Page 1: Wrong LSN (9127271,0x327b23c6). Current LSN is (1,0x5a5b) | | mysql.tables_priv | check | error | Table is probably from another system and must be zerofilled or repaired ('REPAIR TABLE table_name') to be usable on this system | | mysql.tables_priv | check | error | Corrupt | +-------------------+-------+----------+----------------------------------------------------------------------------------------------------------------------------------+ 5 rows in set (0.012 sec) {code} The problem was introduced by this commit in 10.5.10: {noformat} commit 81258f14323e1d1ad0203bae93bc55a30d47c1b3 (HEAD) Author: Monty <monty@mariadb.org> Date: Fri Apr 2 22:00:36 2021 +0300 ... Other things: - Extended Aria check_table() to check for wrong (= too big) LSN numbers. - If check_table() failed just because of wrong LSN or TRN numbers, a following repair table will just do a zerofill which is much faster. - Limit number of LSN errors in one check table to MAX_LSN_ERROR (10). - Removed old obsolete test of 'if (error_count & 2)'. Changed error_count and warning_count from bits to numbers of errors/warnings as this is more useful. {noformat} I don't know whether it is a real problem or the extended check produces false positives, but in any case corruption-like errors can cause troubles for users. {{REPAIR}} makes the errors disappear. |
issue.field.resolutiondate | 2021-06-07 21:51:59.0 | 2021-06-07 21:51:59.029 |
Fix Version/s | 10.5.11 [ 25734 ] | |
Fix Version/s | 10.5 [ 23123 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 122488 ] | MariaDB v4 [ 159367 ] |