feat(exchange): treat various ssl and tcp errors as AMQPConnectionException
#571
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.
This tries to fix symfony/symfony/issues/48241
The specific issue is that e.g. the AWS Load Balancer closes idle connections after a certain time. Long running tasks will then run into the issue of a lost connection.
symfony/symfony/pull/54167 already provides an adequate solution by simply trying to reconnect. However, the fix specifically catches
AMQPConnectionException
, while the actual exception thrown is the less specificAMQPException
.This can also be seen in the original issue:
My first instinct was to catch the less specific Exception instead, which would solve the issue.
symfony/amqp-messenger@6.4...wikando:amqp-messenger:6.4-retry
But I think there is a fair argument to be made, that this indeed is an Exception relating to the connection. That's where this PR is coming from.
I tried coming up with a test, but I'm at a loss how to recreate this specific scenario (connection closed by server). Feedback is obviously welcome.
I really hope that helps. Thanks a bunch!