Timeouts: Improve Backlog handling and errors for users + GC rooting fixes for outstanding scenarios by NickCraver · Pull Request #2408 · StackExchange/StackExchange.Redis

added 3 commits

March 6, 2023 14:25
This'll make it easier for us to see if a user is setting abortConnect=false or not when advising them.
This is to better inform users when timeouts are happening in the backlog buffer. However, it's also exposed a race in the test suite where alone on in a small batch tests run fine. When we run everything together, then `DisconnectAndNoReconnectThrowsConnectionExceptionAsync` will hang indefinitely. But of course not debugging, we have some sort of fun race here.

Note the new handling inside ProcessBacklogAsync which I observed trying to figure this out - we have 1 test that's in a disposal race with backlogged items and we need to make sure everything in there gets punted out to avoid async hangs forever. But there's still another cause of this somewhere.

This was referenced

Mar 28, 2023

@mgravell @NickCraver

…Token (#2413)

Co-authored-by: Nick Craver <nrcraver@gmail.com>

@NickCraver NickCraver changed the title Timeouts: Improve Backlog handling and errors for users Timeouts: Improve Backlog handling and errors for users + GC rooting fixes for outstanding scenarios

Mar 29, 2023

@NickCraver

@NickCraver

@NickCraver NickCraver linked an issue

Mar 29, 2023

that may be closed by this pull request

@NickCraver

@NickCraver

mgravell

@NickCraver

mgravell

@NickCraver NickCraver deleted the craver/timeout-error-improvements branch

March 30, 2023 18:03