[MDEV-28114] Semi-sync Master ACK Receiver Thread Can Error on COM_QUIT Created: 2022-03-17 Updated: 2023-10-23 Resolved: 2022-04-22 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Fix Version/s: | 10.4.25, 10.5.16, 10.6.8, 10.7.4, 10.8.3 |
| Type: | Task | Priority: | Major |
| Reporter: | Brandon Nesterenko | Assignee: | Brandon Nesterenko |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
||||||||||||
| Issue Links: |
|
||||||||||||
| Description |
|
A semi-sync master can sometimes error when it is issued SHUTDOWN WAIT FOR ALL SLAVES as a semi-sync slave is stopping its IO thread. If the slave's repl_semisync_slave::slave_stop() executes as or after the master stops listening for connections, the slave's semi-sync connection can stay active, and follow up with a mysql_close() on that connection, thereby issuing COM_QUIT on an active semi-sync connection. The ACK receiver thread sees this and fails with "[ERROR] Read semi-sync reply magic number error". See the attached image for a visualization of the issue. |
| Comments |
| Comment by Brandon Nesterenko [ 2022-04-22 ] |
|
Fixed as a part of |
| Comment by Andrei Elkin [ 2023-01-17 ] |
|
The bug is actually fixed start from 10.4.25. It's a continuation part of |