We’ve just released NServiceBus.AmazonSQS 5.0.1 and 4.4.1.
- #519 Transport fails to reschedule and deliver unrestricted delayed messages under heavy load
How to know if you’re affected
You may be affected if you have enabled unrestricted delayed delivery and you are expecting several hundred or more timeouts to expire at the same time.
Should you upgrade immediately
We recommend you upgrade as part of your next maintenance window.
If there are a large number of delayed messages, the AmazonSQS transport may fail to dispatch or reschedule them due to request throttling by the SQS broker. The underlying issue is caused by the unrestricted native delayed delivery behavior in the message pump. When a message is delayed, the following happens:
The message is sent to the local
-delay.fifoqueue with a custom header that specifies the delay length.
If the delay length is shorter than or equal to 15 minutes (900 seconds), the message is moved to the main input queue.
If the delay is longer, the message is rescheduled until the timeout expires, and is then moved to main input queue.
If there are a large number of delayed messages, as described in this discussion, the message pump may be throttled and start to fail to reschedule timeouts and deliver expired timeouts.
Where to get it
You can install the new versions from NuGet.
The team in Particular