Bug #115861 | Issues with strcmp when binlog suffix number exceeds six digits | ||
---|---|---|---|
Submitted: | 19 Aug 2024 13:02 | Modified: | 13 May 2:01 |
Reporter: | Wuhao Cao (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
Version: | 5.7, 8.0 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | Binlog suffix number, Contribution, Data Inconsistency, Replication delay |
[19 Aug 2024 13:02]
Wuhao Cao
[21 Aug 2024 12:51]
MySQL Verification Team
Thank you for the report
[19 Sep 2024 3:38]
Wuhao Cao
Fix the bug with comparing binlog suffix numbers of different lengths (*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: fix_binlog_compare.patch (application/octet-stream, text), 710 bytes.
[29 Apr 8:15]
Jon Stephens
Documented fix as follows in the MySQL 8.0.43, 8.4.6, and 9.4.0 changelogs: During semisync replication, when the binary log suffix exceeded six digits (.999999) so that the next log file became, for example, mysql-bin.1000000, the replication protocol changed from semisynchronous to asynchronous. Closed.
[10 May 13:33]
Wuhao Cao
Hi Jon, I’m a bit puzzled about why we didn’t go with the patch mentioned earlier and instead opted to switch semi-sync replication to async. Is there a concern about potential risks or other reasons behind this decision? Thanks for shedding some light on this!
[12 May 14:12]
Jon Stephens
你好, I think you have misunderstood. This merely describes the bad behaviour that was corrected. Our standard changelog entry format is: 1. State the problem that was fixed. 2. (OPTIONAL:) If necessary, describe the nature of the fix and/or any side effects the fix may have. In this case, we have only (1). 多谢你明白了! jon.
[12 May 15:12]
Jean-François Gagné
> I think you have misunderstood. wuhao cao is in good company, because I also misunderstood at the 1st reading, and I have to confess that I was unhappy. I set that aside for later to think about how to react, and then understood better that this was a statement of "the problem that was fixed". > the replication protocol changed from semisynchronous to asynchronous For non-native English speaker, it is very easy to confuse "changed" by "changes" in above. I would suggest to pay a little more attention to the changelog entry format for such confusion to be less easy to make. A simple improvement would be to add "incorrectly" (or other disambiguation adverb like those in [1]) to the changelog entry. [1]: https://www.merriam-webster.com/thesaurus/incorrectly The improved changelog entry would read as follow. "During semisync replication, when the binary log suffix exceeded six digits (.999999) so that the next log file became, for example, mysql-bin.1000000, the replication protocol incorrectly changed from semisynchronous to asynchronous."
[13 May 2:01]
Wuhao Cao
Thank you all for your kind replies.
[13 May 14:10]
Jon Stephens
Updated changelog entry: During semisync replication, when the length of the binary log suffix exceeded six digits (.999999), so that the next log file became--for example--mysql-bin.1000000, the replication protocol unexpectedly changed from semisynchronous to asynchronous. Our thanks to Wuhao Cao for the contribution. Status unchanged.