[Messenger] Respect isRetryable
decision of the retry strategy for re-delivery
#49063
+26
−4
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.
Documentation for retry strategy for the Messenger component declares that message will not be retried to be re-delivered more than the value of
max_retries
configuration for the retry strategy.However, after merging #36557 actual implementation gives priority to the existence of the
RecoverableExceptionInterface
, effectively opening a way for a message to be re-delivered indefinitely.Additionally, in the case of using
multiplier
with a value of more than 1 this unlimited re-delivery causes unlimited growth of thedelay
value for theDelayStamp
. Its type is defined asint
, so on 32-bit platforms after some timedelay
value may exceedPHP_INT_MAX
which will lead to theTypeError
.The proposed change enforces respect for the
max_retries
setting value for the decision of re-delivery.