You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Testing on async_flash branch, this is a strange one.
I have a test client calling KEYS repeatedly, and other clients (group A) not calling the KEYS command. In order to trigger the bug, group A clients are periodically disconnected and reconnected to the server. When the bug happens, the client calling the KEYS will not get a reply and just hangs waiting.
I have added additional logs to the keysCommand() method in db.cpp, it appears that the code completes the method (ie enters and exits) and did not get blocked anywhere. I am currently narrowing this down as to why there is no reply to the client...
Just logging an issue first and will report more when I have tracked it down.
The text was updated successfully, but these errors were encountered:
After further stress testing, it appears the KEYS command is very unstable. There are layers of locks on the async code path and I have encountered either crashes and freezes. Another freeze case here:
On my local, I have disabled the async code in keysCommand, ie always complete the command in sync mode. So far, it is stable, so there is definitely something fishy going on in the async code flow. Reviewing the code, this is the only place where it creates a fake client and writes the replies from the fake client to the real client. I believe this approach is messing up the low level code (in networking.cpp) for locking and sending replies to the client.
Testing on async_flash branch, this is a strange one.
I have a test client calling KEYS repeatedly, and other clients (group A) not calling the KEYS command. In order to trigger the bug, group A clients are periodically disconnected and reconnected to the server. When the bug happens, the client calling the KEYS will not get a reply and just hangs waiting.
I have added additional logs to the keysCommand() method in db.cpp, it appears that the code completes the method (ie enters and exits) and did not get blocked anywhere. I am currently narrowing this down as to why there is no reply to the client...
Just logging an issue first and will report more when I have tracked it down.
The text was updated successfully, but these errors were encountered: