<div dir="ltr">Hi Paulo!<div><br></div><div>Yes, the bug is quite simple but annoying. First, how lhttpc works:</div><div>  * before each request the client makes call to lhttpc_manager to check if there is a free socket for an endpoint: <a href="https://github.com/esl/lhttpc/blob/master/src/lhttpc_manager.erl#L199">https://github.com/esl/lhttpc/blob/master/src/lhttpc_manager.erl#L199</a></div>

<div>  * lhttpc_manager holds all sockets which aren't in use</div><div>  * it handles 'closed' messages from sockets: <a href="https://github.com/esl/lhttpc/blob/master/src/lhttpc_manager.erl#L340">https://github.com/esl/lhttpc/blob/master/src/lhttpc_manager.erl#L340</a></div>

<div>  * the function remove_sockets calls 'close' on socket one more time: <a href="https://github.com/esl/lhttpc/blob/master/src/lhttpc_manager.erl#L419">https://github.com/esl/lhttpc/blob/master/src/lhttpc_manager.erl#L419</a></div>

<div>  * actual call to corresponding handling module is at <a href="https://github.com/esl/lhttpc/blob/master/src/lhttpc_sock.erl#L176">https://github.com/esl/lhttpc/blob/master/src/lhttpc_sock.erl#L176</a></div><div><br>

</div><div>The problem is in ssl:close — it may block for many seconds, causing lhttpc_manager not to serve client requests and thus preventing all new requests from running. Some requests will fail with 'timeout' which seems like bad service on the other side.</div>

<div><br></div><div>Currently we use such simple hack to workaround the problem:</div><div>  * replace ssl:close(Socket) on lhttpc_sock.erl#L176 with proc_lib:spawn_link(ssl, close, [Socket])</div><div>This may lead to other problems (no control of spawned processes) and does not solve the problem completely (there are some minor blockings on setopt), but works as quick fix.</div>

<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 11, 2014 at 10:20 PM, Paulo F. Oliveira <span dir="ltr"><<a href="mailto:paulo.ferraz.oliveira@gmail.com" target="_blank">paulo.ferraz.oliveira@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, Danil.<div><br></div><div>Do you have more information on "<span style="font-family:arial,sans-serif;font-size:13px">I've found a bug in original lhttpc causing manager (and thus all new requests) to block but I don't know where to report it." that you can share? I've been using lhttpc lately and may profit from a resolution to your problem, seeing that I too seem get to a situation where new requests are "blocked" but haven't had time to run after that "bug".</span></div>


<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Thanks.</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>


</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Cheers.</span></div><span class="HOEnZb"><font color="#888888"><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div>

<span style="font-family:arial,sans-serif;font-size:13px">- Paulo F. Oliveira</span></div>
</font></span></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On 10 June 2014 21:40, Danil Zagoskin <span dir="ltr"><<a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a>></span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<div dir="ltr">Hi!<div><br></div><div>The project <a href="https://github.com/esl/lhttpc" target="_blank">https://github.com/esl/lhttpc</a> seems to be abandoned (many open issues including 17.0 compatibility, almost no activity since January 2013).</div>




<div><br></div><div>There are some forks: some do simple fixes and some (rymir, jbothma) do heavy refactoring.</div><div><br></div><div>Is any of forks the new default?</div><div><br></div><div>Is <a href="https://github.com/ferd/dlhttpc" target="_blank">https://github.com/ferd/dlhttpc</a> production-ready drop-in replacement?</div>




<div><br></div><div><br></div><div>I've found a bug in original lhttpc causing manager (and thus all new requests) to block but I don't know where to report it.<span><font color="#888888"><br><div>
<br clear="all"><div><br></div>-- <br><div dir="ltr">

<div><font face="'courier new', monospace">Danil Zagoskin | <a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a></font></div></div></div></font></span></div></div>
<br></div></div><div class="">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></div></blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div><font face="'courier new', monospace">Danil Zagoskin | <a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a></font></div></div>
</div>