nathanlo-hrt opened a new issue, #2992: URL: https://github.com/apache/kvrocks/issues/2992
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/kvrocks/issues) and found no similar issues. ### Version repros on most unstable trunks ### Minimal reproduce step Enable ``` rocksdb.write_options.no_slowdown no ``` in the kvrocks config, and open a server. Send it lots of write load, until a simple `SET` fails with `Low priority write stall`. Then send ``` MULTI SET a b EXEC ``` ### What did you expect to see? ``` *1 -EXEC Low priority write stall ``` ### What did you see instead? ``` *1 +OK -EXEC Low priority write stall ``` ### Anything Else? Fundamentally, this happens because `Connection::ExecuteCommands` eagerly responds `+OK` to successful mutation commands before the WriteBatch is committed: my current workaround is to defer calling `Connection::Reply` on these replies until after the transaction is successfully committed. If the commit fails, I arbitrarily change one of the responses to an error. However, this is hacky and doesn't correctly attribute the failures to the commands that attempted a write. ### Are you willing to submit a PR? - [ ] I'm willing to submit a PR! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
