diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2019-11-01 19:18:47 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2020-02-13 01:27:14 +0400 |
commit | c5e00fea102f0f8d614f60f39737b55dd09b4062 (patch) | |
tree | 51ec14aaffb7f0a31b279edb19d8f06b2e81508d /sql/mdl.cc | |
parent | 646d1ec83a57d9a5b380079afc3612c1d9acadd5 (diff) | |
download | mariadb-git-c5e00fea102f0f8d614f60f39737b55dd09b4062.tar.gz |
MDEV-20867 - Perform careful review of "Server crashes with BACKUP STAGE and FLUSH TABLE table_name"
Reverted original patch (c2e0a0b).
For consistency with "LOCK TABLE <table_name> READ" and "FLUSH TABLES
WITH READ LOCK", which are forbidden under "BACKUP STAGE", forbid "FLUSH
TABLE <table_name> FOR EXPORT" and "FLUSH TABLE <table_name> WITH READ
LOCK" as well.
It'd allow consistent fixes for problems like MDEV-18643.
Diffstat (limited to 'sql/mdl.cc')
-rw-r--r-- | sql/mdl.cc | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/sql/mdl.cc b/sql/mdl.cc index e7c0d699d76..591127dc1d8 100644 --- a/sql/mdl.cc +++ b/sql/mdl.cc @@ -3166,19 +3166,14 @@ void MDL_context::set_transaction_duration_for_all_locks() DBUG_ASSERT(m_tickets[MDL_STATEMENT].is_empty()); - /* Don't swap locks if this thread is running backup stages */ - if (current_thd->current_backup_stage == BACKUP_FINISHED) - m_tickets[MDL_TRANSACTION].swap(m_tickets[MDL_EXPLICIT]); + m_tickets[MDL_TRANSACTION].swap(m_tickets[MDL_EXPLICIT]); Ticket_iterator it_ticket(m_tickets[MDL_EXPLICIT]); while ((ticket= it_ticket++)) { - if (ticket->get_key()->mdl_namespace() != MDL_key::BACKUP) - { - m_tickets[MDL_EXPLICIT].remove(ticket); - m_tickets[MDL_TRANSACTION].push_front(ticket); - } + m_tickets[MDL_EXPLICIT].remove(ticket); + m_tickets[MDL_TRANSACTION].push_front(ticket); } #ifndef DBUG_OFF |