ECONNRESET on a reliable socket and now?


Alexander Aring


Nuts and Bolts

Session Type




title: ECONNRESET on a reliable socket and now?


If your application answer is "reconnect and let it run as nothing happened". Additionally your application holds a per peer state. Moreover your application is lacking support to re-synchronize this state on a reconnect. This talk might be interesting for you!

The reason is that you "might" leave the world of your reliable connection and your peer state doesn't reflect the actual view anymore. This kind of problem was discovered in the Linux in-kernel Distributed Lock Manager (DLM) protocol. To solve this issue an application layer change was required, but wouldn't it be nice to have something more painless? This talk will show the method how DLM has solved this issue by introducing a transparent encapsulation header. Furthermore several possible approaches for a more generic solution will be shown whereby no application layer changes would be necessary anymore. Finally we take a look into other Linux in-kernel application layer protocols which might take advantage of such a solution.