<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 24, 2020 at 9:28 AM Loïc Hoguin <<a href="mailto:essen@ninenines.eu">essen@ninenines.eu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Ranch 2.0 onward fully supports upgrades and comes with an appup you can <br>
use directly: <a href="https://github.com/ninenines/ranch/blob/master/src/ranch.appup" rel="noreferrer" target="_blank">https://github.com/ninenines/ranch/blob/master/src/ranch.appup</a><br>
<br>
We've recently added a test suite: <br>
<a href="https://github.com/ninenines/ranch/blob/master/test/upgrade_SUITE.erl" rel="noreferrer" target="_blank">https://github.com/ninenines/ranch/blob/master/test/upgrade_SUITE.erl</a><br>
<br>
The workaround described is more or less what Ranch 2.0 does during the <br>
upgrade: stop all the acceptor processes, perform the upgrade, resume <br>
the acceptor processes. The listening socket(s) stays open, so no new <br>
connections should be rejected as long as the backlog is large enough, <br>
and existing connections stay alive as well.<br>
<br></blockquote><div><br></div><div>Good to hear, hadn't seen that one go through. That can cause a bit of a pause and still may be a bit surprising in the shell, but that at least makes things production safe for relup, which is definitely an improvement. <br></div></div></div>