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]

Reply via email to