Skip to content

Remote clone error COM_ACK should be sent to InnoDB too

Herman Lee edited this page Feb 16, 2023 · 1 revision

In the case of multithreaded clone, the waits for the donor threads for the current clone stage to complete are implemented fully in InnoDB, even though that, and error handling, should be plugin-level features. With two storage engines participating in the clone this allows the situation where the other storage engine client reports an error with COM_ACK to one donor thread, while some other threads are in InnoDB clone state change waits. Those waits can abort if InnoDB clone gets an error from the client, but they know nothing about other SE errors, and will be aborted only by timeouts.

As a minimal fix that does not involve pulling the whole error handling and state change waiting logic to the plugin layer, make the clone client always send an error-containing COM_ACK to InnoDB too, whenever it sends one to another storage engine.

Clone this wiki locally