Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.6, 10.11
-
None
Description
Sometimes, the rows dumped by mysqldump , from innodb_index_stats, seem to relate to various kinds of temporary tables.
referencing table names like "#mysql50##sql-alter-cdc-153" etc.
Not only this breaks test suite, but also I think it is a mistake to have such entries to be dumped. I'm not sure whether stats for temporary tables need to be persistently stored, but quite sure there is no need for them in the dump
Below example is taken from recent failure https://buildbot.mariadb.net/buildbot/builders/winx64-debug/builds/48252/steps/test/logs/stdio, but stats reveal this kind of failures is as far back as 2021, for 10.3
CURRENT_TEST: main.mysqldump-system
|
--- D:/winx64-debug/build/src/mysql-test/main/mysqldump-system,win.result~ 2024-12-12 19:26:05.806142500 +0200
|
+++ D:\winx64-debug\build\src\mysql-test\main\mysqldump-system,win.reject 2024-12-12 19:26:06.743663500 +0200
|
@@ -112,13 +112,13 @@
|
|
LOCK TABLES `innodb_index_stats` WRITE;
|
/*!40000 ALTER TABLE `innodb_index_stats` DISABLE KEYS */;
|
-REPLACE INTO `innodb_index_stats` VALUES ('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_diff_pfx01',4,1,'Time_zone_id'),('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_diff_pfx02',393,1,'Time_zone_id,Transition_time'),('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('mysql','tz','PRIMARY','2019-12-31 21:00:00','size',1,NULL,'Number of pages in the index');
|
+REPLACE INTO `innodb_index_stats` VALUES ('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_diff_pfx01',4,1,'Time_zone_id'),('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_diff_pfx02',393,1,'Time_zone_id,Transition_time'),('mysql','tz','PRIMARY','2019-12-31 21:00:00','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('mysql','tz','PRIMARY','2019-12-31 21:00:00','size',1,NULL,'Number of pages in the index'),('test','#mysql50##sql-alter-cdc-153','GEN_CLUST_INDEX','2024-12-12 17:25:52','n_diff_pfx01',0,1,'DB_ROW_ID'),('test','#mysql50##sql-alter-cdc-153','GEN_CLUST_INDEX','2024-12-12 17:25:52','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('test','#mysql50##sql-alter-cdc-153','GEN_CLUST_INDEX','2024-12-12 17:25:52','size',1,NULL,'Number of pages in the index');
|
/*!40000 ALTER TABLE `innodb_index_stats` ENABLE KEYS */;
|
UNLOCK TABLES;
|
Attachments
Issue Links
- relates to
-
MDEV-15020 Server hangs due to InnoDB persistent statistics or innodb_stats_auto_recalc
-
- Closed
-
-
MDEV-29566 Failed to read from the .par file upon concurrent DDL/SELECT with partition pruning
-
- Stalled
-
-
MDEV-33575 Assertion `rec_get_trx_id(rec, clust_index) < trx->id' failed in row_merge_read_clustered_index
-
- Confirmed
-
When it comes to MariaDB Server 10.6 and later, these failures occur for different reasons than earlier versions. Much was cleaned up about the 2 InnoDB statistics tables as well as DDL in general.
With
MDEV-25506it is possible that if the server is killed in the middle of a DDL operation, some garbage files will remain in the file system until the purge of history removes them. This does not affect the persistent statistics tables.There is a known problem of inadequate locking around the InnoDB statistics tables. As a result of this, ha_innobase::delete_table() may be unable to remove statistics for a table that was dropped. See also MDEV-29566 and MDEV-33575.