• Jan Lindström's avatar
    MDEV-22494 : Galera assertion lock_sys.mutex.is_owned() at lock_trx_handle_wait_low · 523d67a2
    Jan Lindström authored
    Problem was that trx->lock.was_chosen_as_wsrep_victim variable was
    not set back to false after it was set true.
    
    wsrep_thd_bf_abort
    	Add assertions for correct mutex status and take necessary
    	mutexes before calling thd->awake_no_mutex().
    
    innobase_rollback_trx()
    	Reset trx->lock.was_chosen_as_wsrep_victim
    
    wsrep_abort_slave_trx()
    	Removed unused function.
    
    wsrep_innobase_kill_one_trx()
    	Added function comment, removed unnecessary parameters
    	and added debug assertions to enforce correct usage. Added
    	more debug output to help out on error analysis.
    
    wsrep_abort_transaction()
    	Added debug assertions and removed unused variables.
    
    trx0trx.h
    	Removed assert_trx_is_free macro and replaced it with
    	assert_freed() member function.
    
    trx_create()
    	Use above assert_free() and initialize wsrep variables.
    
    trx_free()
    	Use assert_free()
    
    trx_t::commit_in_memory()
    	Reset lock.was_chosen_as_wsrep_victim
    
    trx_rollback_for_mysql()
    	Reset trx->lock.was_chosen_as_wsrep_victim
    
    Add test case galera_bf_kill
    523d67a2
galera_bf_lock_wait.test 1.31 KB