Repository navigation
Revert "Fix Sentinel connection leak and AbortOnConnectFail=false handling" - #3271
cbbp4pjf4j-png wants to merge 1 commit into
Conversation
…dling (#…" This reverts commit 2c1d4b1.
|
I'm going to need more detail than "reverts". What is the motivation? What problem are you seeing? Without that context, this is unmergeable and I'll have no option other than to close it. With that context, I suspect the real fix is some compromise that solves both problems/scenarios, one of which is currently unstated. |
|
I am genuinely interested in what is happening here, but I can't do anything until I understand that context. Consequently, I couldn't merge this for today's build. Please let me know what you're seeing, so I can consider it for next! |
|
Since there's still no description, I've tried to work out what this revert could be fixing by looking at what #3187 actually changes and measuring the affected paths against a throwaway redis + replica + sentinel. Who is affected. With What I measured (abortConnect=false):
My best guesses at what went wrong for you:
What I'm going to do regardless of this PR: fix the exception type above; subscribe to What I'm not going to do is revert the leak fix and the non-throwing behaviour, because they match how every other connection type honours If none of the above matches what you saw, I need: your connection string with secrets removed, what |
|
The follow-ups I said I'd do regardless of this PR are in #3280: the discovery failure now surfaces as |
…ception, late sentinel init, clear LastException (#3280) Follow-ups to #3187 (AbortOnConnectFail=false for sentinel), prompted by the investigation of #3271: - GetSentinelMasterConnection with a config that has no endpoints of its own and nothing discovered threw AggregateException(InvalidOperationException "No nodes to consider") from the seed connect. It now throws the discovery RedisConnectionException, as it did before #3187. - A sentinel connection whose initial connect soft-failed never ran InitializeSentinel, because only the connect paths called it; such a connection never subscribed to +switch-master and tracked failovers only through the fallback polling. InitializeSentinel is now idempotent and is also reached from a non-first reconfigure that detects a sentinel. - The discovery failure recorded as LastException at connect time stayed there after recovery and was folded into every later "no connection available" message. It is cleared once the managed connection is restored. - Document what abortConnect means for sentinel connections.
Reverts #3187