trx_mutex also needs to be taken care of.
=== modified file 'Percona-Server/storage/innobase/handler/ha_innodb.cc' --- Percona-Server/storage/innobase/handler/ha_innodb.cc 2013-10-02 09:14:44 +0000 +++ Percona-Server/storage/innobase/handler/ha_innodb.cc 2013-10-02 20:17:33 +0000 @@ -17273,7 +17273,11 @@ if (wait_lock) { WSREP_DEBUG("canceling wait lock"); victim_trx->lock.was_chosen_as_deadlock_victim= TRUE; + lock_mutex_enter(); + trx_mutex_enter(victim_trx); lock_cancel_waiting_and_release(wait_lock); + trx_mutex_exit(victim_trx); + lock_mutex_exit(); }
wsrep_thd_awake(thd, signal);
fixes it. (Though there is another crash but not related)
trx_mutex also needs to be taken care of.
=== modified file 'Percona- Server/ storage/ innobase/ handler/ ha_innodb. cc' Server/ storage/ innobase/ handler/ ha_innodb. cc 2013-10-02 09:14:44 +0000 Server/ storage/ innobase/ handler/ ha_innodb. cc 2013-10-02 20:17:33 +0000 DEBUG(" canceling wait lock"); trx->lock. was_chosen_ as_deadlock_ victim= TRUE; enter(victim_ trx); cancel_ waiting_ and_release( wait_lock) ; exit(victim_ trx);
--- Percona-
+++ Percona-
@@ -17273,7 +17273,11 @@
if (wait_lock) {
WSREP_
victim_
+ lock_mutex_enter();
+ trx_mutex_
lock_
+ trx_mutex_
+ lock_mutex_exit();
}
wsrep_ thd_awake( thd, signal);
fixes it. (Though there is another crash but not related)