Comment 2 for bug 1254571

Revision history for this message
zhai weixiang (zhaiwx1987) wrote :

I found anther bug, after_flush should be called before signal_update, otherwise the binlog dump thread may be waked up first and missed to mark the packet header (to tell the slave that the master needs an ACK)

quoted code:(trx_group_commit_leader, log.cc)

5901 else
5902 {
5903 signal_update();
5904 }
5905
5906 if (RUN_HOOK(binlog_storage, after_flush,
5907 (leader->thd, log_file_name, log_file.pos_in_file, synced)))
5908 {
5909 sql_print_error("Failed to run 'after_flush' hooks");
5910 for (current= queue; current != NULL; current= current->next)
5911 {
5912 if (!current->error)
5913 {

So the attached file didn't fix this bug completely. I'll rewrite the patch based on the latest Percona Server 5.5.34