fix(microservice): prevent error logs during redis client shutdown #15166
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
Issue Number: N/A
When calling
close()
onClientRedis
, theisManuallyClosed
flag is set after awaiting thequit()
calls on the Redis clients. If Redis emits the'end'
event during or afterquit()
, event handlers may seeisManuallyClosed
asfalse
and incorrectly log errors or attempt reconnection logic. This creates a race condition and can result in misleading error logs during a normal shutdown.What is the new behavior?
The
isManuallyClosed
flag is now set totrue
before callingquit()
on the Redis clients. This ensures that any event handlers triggered during shutdown will see the correct state and will not log errors or attempt reconnection when the shutdown is intentional.Additional tests have been added to verify this behavior and prevent regressions.
Does this PR introduce a breaking change?
Other information