[MDEV-33184] Replicated REPAIR TABLE writes an error in the log when normal REPAIR does not Created: 2024-01-04 Updated: 2024-01-04 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Affects Version/s: | 10.4, 10.5, 10.6, 10.11, 11.0, 11.1, 11.2, 11.3 |
| Fix Version/s: | 10.4, 10.5, 10.6, 10.11, 11.0, 11.1, 11.2, 11.3 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Andrei Elkin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The test case above imitates a situation when rows ended up in wrong partitions in the table on the slave. It is something that can happen due to a previous malfunctioning of some kind, or can legally occur in 11.4+ if a table was previously altered with WITHOUT VALIDATION clause. Such table is easily fixed by REPAIR TABLE. When it is executed directly on the server with the corrupt table, it writes its output in a form of "warnings" (they are not real warnings produced by the SQL statement, but the message type in the result set):
Nothing shows up in the log. However, when REPAIR is replicated and executed by the slave thread, as in the test case above, it instead writes ERROR messages in the error log:
It can be argued that it does need to write something since there are no interactive messages, but in any case it shouldn't be an error, since a) in the corresponding statement result it's just a warning, and b) REPAIR succeeds and no action is expected from the user. |