Bug #89582 | Node may not switch to ONLINE under consistent load | ||
---|---|---|---|
Submitted: | 8 Feb 2018 5:04 | Modified: | 19 Dec 2018 12:16 |
Reporter: | Zhenghu Wen (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Group Replication | Severity: | S2 (Serious) |
Version: | 8.0.4 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | recovery |
[8 Feb 2018 5:04]
Zhenghu Wen
[8 Feb 2018 6:46]
Zhenghu Wen
after i patch this file, node swith to online predictability
Attachment: 89582.patch (application/octet-stream, text), 838 bytes.
[8 Feb 2018 6:48]
Zhenghu Wen
add oca (*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: 89582.patch (application/octet-stream, text), 838 bytes.
[8 Feb 2018 6:48]
Zhenghu Wen
add oca (*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: 89582.patch (application/octet-stream, text), 838 bytes.
[19 Dec 2018 12:16]
David Moss
Posted by developer: Thank you for your feedback, this has been fixed in upcoming versions and the following was added to the 8.0.14 changelog: When a member joined a group that had a constant peak load, the member might not be able to move from the RECOVERING to the ONLINE state. The cause was that: the member was waiting in a loop for the complete queue of transactions that arrived during recovery to be applied, while new transactions were still arriving. even when the complete queue had been applied, the member was also checking that the applier was paused, which is unlikely to happen in a continuous peak workload. Now, when the recovery completion policy is waiting for transactions to be applied, the member first waits until one of the following conditions is fulfilled: the transactions to apply fit within the flow control configuration. In other words, the transactions to be applied can be applied during the next flow control iteration; no transactions are being queued or applied, in the case of an empty recovery queue. Then, the member waits for the currently queued transactions in the group_replication_applier channel to be applied, before the member state changes to ONLINE.