[MDEV-16267] Wrong INFORMATION_SCHEMA.INNODB_BUFFER_PAGE.TABLE_NAME Created: 2018-05-23  Updated: 2018-05-24  Resolved: 2018-05-24

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB, Storage Engine - XtraDB
Affects Version/s: 10.1.24, 10.0.31, 10.2.7, 10.3.1
Fix Version/s: 10.0.36, 10.1.34, 10.2.16, 10.3.8

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: regression

Issue Links:
Problem/Incident
is caused by MDEV-12188 information schema - errors populatin... Closed

 Description   

http://buildbot.askmonty.org/buildbot/builders/kvm-fulltest/builds/13417

nnodb.innodb_information_schema_buffer 'innodb' w1 [ fail ]
        Test ended at 2018-05-18 01:54:17
 
CURRENT_TEST: innodb.innodb_information_schema_buffer
Warning: /mnt/buildbot/build/mariadb-10.3.7/libmysqld/examples/mysqltest_embedded: unknown variable 'loose-ssl-ca=/mnt/buildbot/build/mariadb-10.3.7/mysql-test/std_data/cacert.pem'
Warning: /mnt/buildbot/build/mariadb-10.3.7/libmysqld/examples/mysqltest_embedded: unknown variable 'loose-ssl-cert=/mnt/buildbot/build/mariadb-10.3.7/mysql-test/std_data/client-cert.pem'
Warning: /mnt/buildbot/build/mariadb-10.3.7/libmysqld/examples/mysqltest_embedded: unknown variable 'loose-ssl-key=/mnt/buildbot/build/mariadb-10.3.7/mysql-test/std_data/client-key.pem'
Warning: /mnt/buildbot/build/mariadb-10.3.7/libmysqld/examples/mysqltest_embedded: unknown option '--loose-skip-ssl'
--- /mnt/buildbot/build/mariadb-10.3.7/mysql-test/suite/innodb/r/innodb_information_schema_buffer.result	2018-05-17 23:18:19.000000000 -0400
+++ /mnt/buildbot/build/mariadb-10.3.7/mysql-test/suite/innodb/r/innodb_information_schema_buffer.reject	2018-05-18 01:54:15.973896889 -0400
@@ -17,6 +17,10 @@
 and PAGE_STATE="file_page" and PAGE_TYPE="index";
 TABLE_NAME	INDEX_NAME	NUMBER_RECORDS	DATA_SIZE	PAGE_STATE	PAGE_TYPE
 `test`.`infoschema_buffer_test`	GEN_CLUST_INDEX	2	58	FILE_PAGE	INDEX
+`test`.`infoschema_buffer_test`	NULL	0	0	FILE_PAGE	INDEX
+`test`.`infoschema_buffer_test`	NULL	0	0	FILE_PAGE	INDEX
+`test`.`infoschema_buffer_test`	NULL	0	0	FILE_PAGE	INDEX
+`test`.`infoschema_buffer_test`	NULL	0	0	FILE_PAGE	INDEX
 CREATE INDEX idx ON infoschema_buffer_test(col1);
 SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
 FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
 
mysqltest: Result length mismatch



 Comments   
Comment by Marko Mäkelä [ 2018-05-24 ]

I believe that this result mismatch is a regression caused by MDEV-12188. With this fix, the functions i_s_innodb_buffer_page_fill() and i_s_innodb_buf_page_lru_fill() appear to expose garbage in information_schema.innodb_buffer_pool_page.table_name and information_schema.innodb_buffer_pool_page_lru.table_name for buffer pool pages that used to belong to a dropped index or table.

The fix should be to invoke Field::set_notnull() only if the index lookup succeeded.

Generated at Thu Feb 08 08:27:38 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.