facebook / mysql-5.6

Facebook's branch of the Oracle MySQL database. This includes MyRocks.
http://myrocks.io
Other
2.48k stars 714 forks source link

use original se_private_data during DDSE change early steps #1415

Closed luqun closed 9 months ago

luqun commented 9 months ago

Summary:

INNODB hit crash during DDSE change due to use wrong root page/index_id calculated from DD tables private data.

mysqld`rec_get_offsets
mysqld`btr_estimate_number_of_different_key_vals(index=0x00007fffab987c88)
mysqld`dict_stats_update_transient_for_index
mysqld`dict_stats_update_transient
mysqld`dict_stats_update
mysqld`dict_stats_init
mysqld`ha_innobase::open
mysqld`handler::ha_open
mysqld`open_table_from_share
mysqld`open_table

During DDSE change(such as INNODB to ROCKSDB), it will

  1. populate existing DD tables in mysql with INNODB,
  2. create these DD tables in with ROCKSDB
  3. copy data form INNODB DD tables into ROCKSDB DD tables

Even in step1:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

facebook-github-bot commented 9 months ago

@luqun has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.