summaryrefslogtreecommitdiff
path: root/sql/mdl.cc
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2017-06-22 17:35:36 +0400
committerSergey Vojtovich <svoj@mariadb.org>2017-06-26 16:11:22 +0400
commitdd710e75523b2a8280617f0e1ef522a01767b318 (patch)
tree559eb68992ddd96c201dd55d5ca0bb1167520485 /sql/mdl.cc
parent0d69d313a11fb03f31d71282f622b25d0a4764b8 (diff)
downloadmariadb-git-dd710e75523b2a8280617f0e1ef522a01767b318.tar.gz
MDEV-12882 - Assertion failed in MDL_context::upgrade_shared_lock
Relaxed assertion (in MySQL it was removed). For "LOCK TABLES t1 WRITE CONCURRENT, t1 READ" upgrade lock to weakest existing suitable lock, which is MDL_SHARED_NO_READ_WRITE.
Diffstat (limited to 'sql/mdl.cc')
-rw-r--r--sql/mdl.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/sql/mdl.cc b/sql/mdl.cc
index f1a505f3d84..25809c3d9cc 100644
--- a/sql/mdl.cc
+++ b/sql/mdl.cc
@@ -2320,11 +2320,12 @@ MDL_context::upgrade_shared_lock(MDL_ticket *mdl_ticket,
if (mdl_ticket->has_stronger_or_equal_type(new_type))
DBUG_RETURN(FALSE);
- /* Only allow upgrades from SHARED_UPGRADABLE/NO_WRITE/NO_READ_WRITE/READ */
+ /* Only allow upgrades from UPGRADABLE/NO_WRITE/NO_READ_WRITE/READ/WRITE */
DBUG_ASSERT(mdl_ticket->m_type == MDL_SHARED_UPGRADABLE ||
mdl_ticket->m_type == MDL_SHARED_NO_WRITE ||
mdl_ticket->m_type == MDL_SHARED_NO_READ_WRITE ||
- mdl_ticket->m_type == MDL_SHARED_READ);
+ mdl_ticket->m_type == MDL_SHARED_READ ||
+ mdl_ticket->m_type == MDL_SHARED_WRITE);
mdl_xlock_request.init(&mdl_ticket->m_lock->key, new_type,
MDL_TRANSACTION);