semi sync seems broken because of Group commit in Percona Server5.5
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
Invalid
|
Undecided
|
Unassigned | ||
5.1 |
Invalid
|
Undecided
|
Unassigned | ||
5.5 |
Triaged
|
Medium
|
Unassigned | ||
5.6 |
Invalid
|
Undecided
|
Unassigned |
Bug Description
In function MYSQL_BIN_
quoted code in log.cc:
5903 if (RUN_HOOK(
5904 (leader->thd, log_file_name, log_file.
5905 {
After all transactions committed by the leader thread, other threads were waked up and after_commit was called
quoted code :
29 int Trans_delegate:
230 {
231 Trans_param param;
232 bool is_real_trans= (all || thd->transactio
233
234 param.flags = is_real_trans ? TRANS_IS_REAL_TRANS : 0;
235
236 Trans_binlog_info *log_info=
237 my_pthread_
238
239 param.log_file= log_info ? log_info->log_file : 0;
240 param.log_pos= log_info ? log_info->log_pos : 0;
241
242 int ret= 0;
243 FOREACH_
Here log_info is NULL if the current thread is not the leader of group commit, So these threads will never waiting for the ACK from slave.
tags: | added: contribution |
a simple patch based on the logic of MySQL 5.6. Can be patched on Percona Server 5.5.18 we are using now.