mariadb/plugin/semisync
unknown a1bfae20cb BUG#50157 Assertion !active_tranxs_->is_tranx_end_pos(..) in ReplSemiSyncMaster::commitTrx
The root cause of the crash is that a TranxNode is freed before it is used.
A TranxNode is allocated and inserted into the active list each time 
a log event is written and flushed into the binlog file. 
The memory for TranxNode is allocated with thd_alloc and will be freed 
at the end of the statement. The after_commit/after_rollback callback
was supposed to be called before the end of each statement and remove the node from
the active list. However this assumption is not correct in all cases(e.g. call 
'CREATE TEMPORARY TABLE myisam_t SELECT * FROM innodb_t' in a transaction
 and delete all temporary tables automatically when a session closed), 
and can cause the memory allocated for TranxNode be freed
before it was removed from the active list. So The TranxNode pointer in the active
list would become a wild pointer and cause the crash.

After this patch, We have a class called a TranxNodeAllocate which manages the memory
for allocating and freeing TranxNode. It uses my_malloc to allocate memory.


sql/rpl_handler.cc:
  params are not initialized.
2010-01-31 02:26:51 +08:00
..
CMakeLists.txt Postfix of previews commit, add missing file 2009-10-23 15:22:20 +08:00
configure.in Backporting WL#4398 WL#1720 2009-09-26 12:49:49 +08:00
Makefile.am Bug#48351 Inconsistent library names for semisync plugin 2009-11-27 16:49:45 +08:00
plug.in Bug#48351 Inconsistent library names for semisync plugin 2009-11-27 16:49:45 +08:00
semisync.cc Backporting WL#4398 WL#1720 2009-09-26 12:49:49 +08:00
semisync.h Backport BUG#45848 Semisynchronous replication internals are visible in SHOW PROCESSLIST and logs 2009-10-12 20:55:01 +08:00
semisync_master.cc BUG#50157 Assertion !active_tranxs_->is_tranx_end_pos(..) in ReplSemiSyncMaster::commitTrx 2010-01-31 02:26:51 +08:00
semisync_master.h BUG#50157 Assertion !active_tranxs_->is_tranx_end_pos(..) in ReplSemiSyncMaster::commitTrx 2010-01-31 02:26:51 +08:00
semisync_master_plugin.cc Postfix of bug#45674 2009-10-18 20:29:03 +08:00
semisync_slave.cc Backport post fix for semisync 2009-10-12 21:21:13 +08:00
semisync_slave.h Backport post fix for semisync 2009-10-12 21:21:13 +08:00
semisync_slave_plugin.cc Backport BUG#47298 Semisync: always wait until timeout if no semi-sync slave available 2009-10-12 21:15:32 +08:00