Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
10.6, 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL), 11.3(EOL), 11.4
Description
While the testcase does not immediately look significant (we're deleting from mysql.innodb_table_stats) note that this is likely just an artifact, i.e. the issue can likely be reproduced in other ways without deleting from innodb_table_stats. There are number of bugs open that look somewhat related (linked), but they are on older versions (except MDEV-33022 which is in combination with Galera), and this issue could be reproduced on 10.6+ only.
# Requires standard master/slave setup
|
CREATE TABLE t (c VARCHAR(2000) BINARY CHARACTER SET 'utf8') ENGINE=InnoDB; |
ALTER TABLE t ADD UNIQUE (c); |
SELECT c FROM t; |
DELETE FROM mysql.innodb_table_stats; |
Leads to (on slave):
11.4.0 8bf9f21855606ddeb0fe90fb1e70165adbec6746 (Debug, Slave) |
2024-01-22 15:37:12 6 [Note] Slave SQL thread initialized, starting replication in log 'FIRST' at position 4, relay log './relaylog.000001' position: 4; GTID position ''
|
2024-01-22 15:37:15 69 [ERROR] mariadbd: Can't find record in 'innodb_table_stats'
|
2024-01-22 15:37:15 69 [Warning] Slave SQL: Could not execute Delete_rows_v1 event on table mysql.innodb_table_stats; Can't find record in 'innodb_table_stats', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log binlog.000001, end_log_pos 0, Gtid 0-1-6, Internal MariaDB error code: 1032
|
Present in 10.6+, opt+dbg builds
Attachments
Issue Links
- relates to
-
MDEV-33359 Inconsistent MariaDB error codes 0, 1045, 2003 when using RESET MASTER and init_connect
-
- Open
-
-
MDEV-33426 Assertion `status_var.local_memory_used == 0 || !debug_assert_on_not_freed_memory' failed in THD::~THD from handle_slave_sql on slave upon INSERT to TEMPORARY Aria table, Memory not freed: -50616
-
- In Testing
-
-
MDEV-16710 Slave SQL: Could not execute Update_rows_v1 event with RocksDB and triggers
-
- Open
-
-
MDEV-27135 error code: 1032 on random slaves
-
- Open
-
-
MDEV-33022 Galera: Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;
-
- Closed
-
That's because these are just examples, they are expected to be extrapolated properly when you think of a common solution. But you are suggesting a solution each time based on one example only, not on a general problem, that's why I provide the next one trying to explain why the suggestion won't work.
Why is that?
In general (not taking into account specific tables involved), this statement is deterministic, it's not converted to row automatically and has no reason to. Unlike the previous one with limit.
Or is it the next solution, in which a statement would be converted to ROW because it uses a stat table? That is,
a) ignore replicating changes to stat tables +
b) convert everything else that uses stat tables to RBR?