Hi, Sergey! On Apr 01, Sergey Vojtovich wrote: > revision-id: 5c26e91f755 (mariadb-10.5.0-70-g5c26e91f755) > parent(s): 6daf451415f > author: Sergey Vojtovich <s...@mariadb.org> > committer: Sergey Vojtovich <s...@mariadb.org> > timestamp: 2019-12-25 20:24:25 +0400 > message: > > Cleanup close_all_tables_for_name() > > close_all_tables_for_name() is always preceded by > wait_while_table_is_used(), which makes tdc_remove_table() redundant. > The only (now fixed) exception was close_cached_tables(). > > Part of MDEV-17882 - Cleanup refresh version > > diff --git a/sql/sql_base.cc b/sql/sql_base.cc > index 60e2b9957a4..9494c0b7bd2 100644 > --- a/sql/sql_base.cc > +++ b/sql/sql_base.cc > @@ -391,13 +391,12 @@ bool close_cached_tables(THD *thd, TABLE_LIST *tables, > if (! table) > continue; > > - if (thd->mdl_context.upgrade_shared_lock(table->mdl_ticket, > MDL_EXCLUSIVE, > - timeout)) > + if (wait_while_table_is_used(thd, table, > + HA_EXTRA_PREPARE_FOR_FORCED_CLOSE))
the comment just above this block says /* If we are under LOCK TABLES, we need to reopen the tables without opening a door for any concurrent threads to sneak in and get lock on our tables. To achieve this we use exclusive metadata locks. */ how do you achieve it now without the MDL_EXCLUSIVE ? > { > result= true; > break; > } > - table->file->extra(HA_EXTRA_PREPARE_FOR_FORCED_CLOSE); > close_all_tables_for_name(thd, table->s, HA_EXTRA_NOT_USED, NULL); > } the rest is fine Regards, Sergei VP of MariaDB Server Engineering and secur...@mariadb.org _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp