在 peer_msg_handler.go 的方法 proposeRaftCommand() 中,首先会进行两项检测,检测失败 cb(CallBack) 就会 Done() 调用返回包含错误信息的responce;当检测无误,且成功调用peer.propose()时,是否应该在该方法 proposeRaftCommand() 结尾调用 Done() 返回包含正确信息的response?
我提出这个问题是因为:
当我调用 Done() 返回一个自制的responce,客户端写入数据的方法 mustput() 可以运行,但读取数据的方法 Scan() 的结果为空,此处既可能是因为不应该在此处调用 Done(),也可能是其他部分实现错误导致未能成功写入;
当我不调用 Done()时,客户端读写在10s内都等不到response而超时。
我目前没法判断是哪个部分有问题。
希望看到的老师同学可以不吝赐教,非常感谢!