Trigger handle_resp_timeout for in-flight messages on socket close.
archseer opened this issue · 5 comments
Back again, sorry :)
The scenario: SMSC/ESME sends a message to the other side. Seconds later, the connection gets severed and the socket closes. The :response_limit
timeout is not reached yet, but the socket close terminates the connection process, and we lose the unacknowledged messages that were in flight.
Solution: Not sure what would be best here, maybe trigger handle_resp_timeout
for all messages?
Exploring a potential hack/fix: https://github.com/archSeer/smppex/commit/581553da2e445d7a818bcfce89648a6c7cbe45d9
Hello!
In our setups keeping track of "lost" PDUs is historically done externally, but now I think this is a good idea to track them in ESME/MC.
I'll try to introduce such a tracking shortly.
We're now also tracking them externally, but just timing them all out right before/after handle_stop
would mean we can avoid DB checks and make our code faster (what worker got what messages, when to retry the send)