Closed boazsade closed 1 year ago
Once this is resolved, please update the list of supported tests in ioredis
This is triggered by "transaction.cc:420] Check failed: 0u == txid_ (0 vs. 1)" To reproduce this the only requirement is to do:
Thanks Boaz. Can you open a branch Bug457 that adds this test to dragonfly_test?
On Mon, Nov 7, 2022, 10:09 Boaz Sade @.***> wrote:
This is triggered by "transaction.cc:420] Check failed: 0u == txid_ (0 vs. 1)" To reproduce this the only requirement is to do:
- MULTI
- EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
- EXEC This would trigger the crash. When in release mode, and there are more commands in the transaction it would not crash but hung
— Reply to this email directly, view it on GitHub https://github.com/dragonflydb/dragonfly/issues/457#issuecomment-1305227838, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA4BFCEVAN5ULW72QQI5CN3WHC2KPANCNFSM6AAAAAARVEDIBA . You are receiving this because you are subscribed to this thread.Message ID: @.***>
yes
The issue is triggered by running transaction within transaction. This happens because we have:
The fix for this would require supporting this type of flow - starting a context of transaction and then running a script that requires its own context.
For now I will try to issue a workaround that would fail this operation (would not allow for running script inside "multi"). so the result would not be either a crash or that the context is hung and the the application cannot even shutdown as it is now. I will also add a test to verify for now that we are getting an error and not other issue, and once this is fixed, we would see that this test would fail
Fixed
Describe the bug When running pipeline test from ioredis, we are getting stuck. This is a result of a pipeline test that execute the commands: set, eval and get. The end result is that we are not returning to the client and DF cannot be shutdown as it is stuck on a command that never completed.
To Reproduce Steps to reproduce the behavior: 1.multi
Expected behavior This should return a result for the client:
And we should be able to shutdown DF after that.
Environment (please complete the following information):
Reproducible Code Snippet
Additional context This code would work: