Is this a regression?
Yes
Description
Pika 主从同步过程涉及到两个状态码,分别根据这两个状态码触发不同的主从复制逻辑,状态码流转如下图:

这里存在两个问题:
- PikaServer repl_state_ 的 PIKA_REPL_ERROR 状态,只能通过 slaveof 命令将其变为其他状态(PIKA_REPL_NO_CONNECT),如果 MetaSync 请求异常,导致状态成为 PIKA_REPL_ERROR 后,会影响主从同步的后续状态。
- SyncSlaveSlot repl_state_ 的 kError 状态,只能通过 dbslaveof 命令将其变成其他状态(kTryConnect或kTryDBSync),如果TrySync和DBSync请求异常,则无法后续处理流程。
当出现上述两个状态码后,只能由人通过日志或info Replication命令查看发现异常状态,然后通过重新执行 slaveof 或 dbslaveof 命令修复上述问题。
Please provide a link to a minimal reproduction of the bug
No response
Screenshots or videos
No response
Please provide the version you discovered this bug in (check about page for version information)
No response
Anything else?
No response
Is this a regression?
Yes
Description
Pika 主从同步过程涉及到两个状态码,分别根据这两个状态码触发不同的主从复制逻辑,状态码流转如下图:
这里存在两个问题:
当出现上述两个状态码后,只能由人通过日志或info Replication命令查看发现异常状态,然后通过重新执行 slaveof 或 dbslaveof 命令修复上述问题。
Please provide a link to a minimal reproduction of the bug
No response
Screenshots or videos
No response
Please provide the version you discovered this bug in (check about page for version information)
No response
Anything else?
No response