[Messenger][Amqp] Fix wrong routing key when use failure queue #52083
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.
I would like to use another amqp queue for dead letter after retries failed. I expected the message to be sent to the failure transport queue. It wasn't.
My initial configuration:
I found the issue #37985 that already mentioned the problem. A workaround using queue name as routing key for failure queue is already proposed. It is not obvious...
binding_keys: [failed, my_queue_name]
After some debug, I found the routing key is not correctly set in case of failure transport. Exchange configuration is good but routing key uses previous routing key set by retry mechanism. And retry mechanism use queue name.
Routing key comes from
RedeliveryStamp
and usesasync
queue name as routing key. It is not what I expected. But I understand it is required by the retry mechanism to push delayed message to the original queue.Finally I propose a little modification to take into account the
SentToFailureTransportStamp
and force to publish with the failure routing key by default.I think this fix could be pushed to 5.4 but I didn't test it.