summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorJan Lindström <jan.lindstrom@mariadb.com>2016-11-09 15:17:55 +0200
committerJan Lindström <jan.lindstrom@mariadb.com>2016-11-09 15:17:55 +0200
commitada3d7581bd619a729f1243a730499eb4d07b054 (patch)
treebc6a72a8edc73548e80f373cabc57bd7e234afcc /storage
parent8e5f532dc2cb5922ee59fd6c9a33e9d1614b7b05 (diff)
downloadmariadb-git-ada3d7581bd619a729f1243a730499eb4d07b054.tar.gz
MDEV-10692: InnoDB: Failing assertion: lock->trx->lock.wait_lock == lock
When we enter here wait_lock could be already gone i.e. NULL, that should be allowed.
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/lock/lock0lock.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc
index d17cef18f76..12a79aacb4a 100644
--- a/storage/innobase/lock/lock0lock.cc
+++ b/storage/innobase/lock/lock0lock.cc
@@ -779,7 +779,8 @@ lock_reset_lock_and_trx_wait(
ut_ad(lock_get_wait(lock));
ut_ad(lock_mutex_own());
- if (lock->trx->lock.wait_lock != lock) {
+ if (lock->trx->lock.wait_lock &&
+ lock->trx->lock.wait_lock != lock) {
const char* stmt=NULL;
const char* stmt2=NULL;
size_t stmt_len;
@@ -800,7 +801,7 @@ lock_reset_lock_and_trx_wait(
<< " and statement "
<< (stmt2 ? stmt2 : "NULL")
<< "wait_lock " << lock->trx->lock.wait_lock;
- ut_error;
+ ut_ad(lock->trx->lock.wait_lock != lock);
}
lock->trx->lock.wait_lock = NULL;