CIMD2 - DLR reports are delayed under high load
If there is high load on a cimd2 connection (throttling set to 10 in my case as well), DLR reports are returned by the connection, but the HTTP requests are not made until sending out the messages to SMSC has finished.Looks like io_thread() in smsc_cimd2.c has two while loops (https://redmine.kannel.org/projects/kannel/repository/entry/trunk/gw/smsc/smsc_cimd2.c):
- one for receiving messages (line 2196)
- one for sending messages (line 2207)
If there is a large queue for sending messages, it first needs to process all those, before it can get to the receiving messages queue again.
This may result in a big delay for DLR under high load (large outgoing_queue).