<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
  <meta name="Generator" content="Zarafa WebApp v7.1.5-41923">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>RE: [Mono-dev] NancyFX self hosting (HttpListener) locking up on linux</title>
</head>
<body>
<font face="tahoma" size="2">Hi Esben.</font><div><font face="tahoma" size="2"><br></font></div><div><font face="tahoma" size="2">Certainly a good suggestion. I've tried increasing it:</font></div><div><font face="tahoma" size="2"><br></font></div><div><font face="tahoma" size="2"><div>nitoback@mulder:~$ ulimit -Sn</div><div>200000</div><div><br></div><div><div>nitoback@mulder:~$ ulimit -Hn</div><div>200000</div></div></font></div><div><font face="tahoma" size="2"><br></font></div><div><font face="tahoma" size="2">Doesn't really have any effect. Here's what happens when I start hammering it - regarding connections - The self host is running on port 9591:</font></div><div><font face="tahoma" size="2"><br></font></div><div><font face="tahoma" size="2"><div>root@mulder:~# lsof -n | grep -i 9591 | wc -l</div><div>93</div><div>root@mulder:~# lsof -n | grep -i 9591 | wc -l</div><div>642</div><div>root@mulder:~# lsof -n | grep -i 9591 | wc -l</div><div>573</div><div>root@mulder:~# lsof -n | grep -i 9591 | wc -l</div><div>677</div><div>root@mulder:~# lsof -n | grep -i 9591 | wc -l</div><div>1270</div><div>root@mulder:~# lsof -n | grep -i 9591 | wc -l</div><div>1270</div><div><br></div><div>The connection count goes up to 1270 and at that point it hangs, this is slightly different each time I run this.</div><div><br></div><div>After having stopped the tests and 10 minutes after it:</div><div><br></div><div><div>root@mulder:~# lsof -n | grep -i 9591 | wc -l</div><div>1170</div></div><div><br></div><div>Here is an example of the connections that are in the CLOSE_WAIT state:</div><div><br></div><div><div>mono      2788 2840   nitoback   71u     IPv4              65081      0t0        TCP 127.0.0.1:9591->127.0.0.1:40372 (CLOSE_WAIT)</div><div>mono      2788 2840   nitoback   72u     IPv4              65082      0t0        TCP 127.0.0.1:9591->127.0.0.1:40373 (CLOSE_WAIT)</div></div><div><br></div><div>They seem to be stuck in CLOSE_WAIT which I guess means that there is unread data on the socket. When it gets into this situation its not recoverable, just hangs and keeps the connections in CLOSE_WAIT state.</div></font><blockquote style="border-left: 2px solid #325FBA; padding-left: 5px; margin-left: 5px; margin-right: 0px;">-----Original message-----<br><strong>From:</strong> hyber@hyber.dk <hyber@hyber.dk><br><strong>Sent:</strong> Sunday 4th August 2013 14:39<br><strong>To:</strong> Alfred Hall <ahall@ahall.org><br><strong>Cc:</strong> mono-devel-list@lists.ximian.com<br><strong>Subject:</strong> SV: [Mono-dev] NancyFX self hosting (HttpListener) locking up on linux<br><br><base target="_blank">
<!-- begin sanitized html -->


  
  
  

<div class="bodyclass"><span style="font-family: Arial;">Hi Alfred<br><br>Are you sure its not a ulimit issue? I have had this issue before with the "nofile" limit as each tcp session is a "file" under /proc and when you have 1024 open (or close wait) sessions the OS does not allow you to open more files and the code seems to hang for a bit until a session is completely gone. Eg. Timed out and you can create files again...<br><br><br>--<br>Esben<br>(on mobile)<br><br><br><div id="htc_header" style="">----- Reply message -----<br>Fra: "Alfred Hall" <ahall@ahall.org><br>Til: "Andrés G. Aragoneses" <knocte@gmail.com>, <mono-devel-list@lists.ximian.com>, <mono-devel-list@lists.ximian.com><br>Emne: [Mono-dev] NancyFX self hosting (HttpListener) locking up on linux<br>Dato: søn., aug. 4, 2013 13:17<br><br></div></span><br>
<font face="tahoma" size="2" style="color: rgb(0, 0, 0); font-size: 12px; font-family: tahoma, arial, helvetica, sans-serif;">I meant to say I tried master too:</font><div style="color: rgb(0, 0, 0); font-size: 12px; font-family: tahoma, arial, helvetica, sans-serif;"><font face="tahoma" size="2"><br></font></div><div><font face="tahoma" size="2" style="color: rgb(0, 0, 0); font-size: 12px; font-family: tahoma, arial, helvetica, sans-serif;"><div>root@mulder:~# /opt/ahall-mono/bin/mono -V</div><div>Mono JIT compiler version 3.3.0 (master/2354865 Sun Aug  4 00:42:51 BST 2013)</div><div>Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>TLS:           __thread</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>SIGSEGV:       altstack</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>Notifications: epoll</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>Architecture:  amd64</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>Disabled:      none</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>Misc:          softdebug</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>LLVM:          supported, not enabled.</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>GC:            sgen</div></font><pre wrap="" style="color: rgb(0, 0, 0); font-size: 12px; font-family: tahoma, arial, helvetica, sans-serif; white-space: pre-wrap; word-wrap: break-word;"><br>That should have the fix in from https://github.com/ysw, but setting <span style="font-family: tahoma, arial, helvetica, sans-serif;">MONO_DISABLE_AIO should have worked around that anyway, as its meant to bypass the epoll backend.</span></pre><pre wrap="" style="color: rgb(0, 0, 0); font-size: 12px; white-space: pre-wrap; word-wrap: break-word;">My Nancy service is literally just returning a very simple JSON:</pre><pre wrap="" style="word-wrap: break-word;"><span style="font-size: 12px;">    public class HelloWorldModule : NancyModule
    {
        public HelloWorldModule()
        {
            Get["/"] = parameters => {
                return Response.AsJson(new HomeResponse { Message = "Test" });
            };
        }
    }</span></pre><div style="color: rgb(0, 0, 0); font-size: 12px;"><span style="white-space: pre-wrap;">In JMeter I'm using 100 threads and loop count of 100 and it locks up after like 15 seconds even over the network. Very odd.</span></div><pre wrap="" style="color: rgb(0, 0, 0); font-size: 12px; white-space: pre-wrap; word-wrap: break-word;"><font face="tahoma, arial, helvetica, sans-serif"><br>-----Original message-----<br>> From:&quot;Andrés G. Aragoneses&quot; <</font><a href="mailto:knocte@gmail.com" onclick="parent.webclient.openWindow(this, 'createmail', 'index.php?load=dialog&task=createmail_standard&to=knocte@gmail.com'); return false;" style="font-family: tahoma, arial, helvetica, sans-serif;" target="_blank" title="This external link will open in a new window">knocte@gmail.com</a><font face="tahoma, arial, helvetica, sans-serif">><br>> Sent: Sunday 4th August 2013 10:03<br>> To: </font><a href="mailto:mono-devel-list@lists.ximian.com" onclick="parent.webclient.openWindow(this, 'createmail', 'index.php?load=dialog&task=createmail_standard&to=mono-devel-list@lists.ximian.com'); return false;" style="font-family: tahoma, arial, helvetica, sans-serif;" target="_blank" title="This external link will open in a new window">mono-devel-list@lists.ximian.com</a><font face="tahoma, arial, helvetica, sans-serif"><br>> Subject: Re: [Mono-dev] NancyFX self hosting (HttpListener) locking up on linux<br>> <br>> On 04/08/13 03:07, Alfred Hall wrote:<br>> > Hi there.<br>> ><br>> > I'm running the NancyFX web framework in self hosting mode which is<br>> > using HttpListener which basically means I deploy an executable and run<br>> > it and it will start a webserver on localhost on a TCP port of choice. I<br>> > then use nginx to proxy to it.<br>> ><br>> > I first ran my executable on my macbook pro and bombarded it with jmeter<br>> > and it coped fine and no issues.<br>> > I then deployed on my debian wheezy 64 bit linux box running on top of<br>> > KVM using mono 3.2.0 and performed the same jmeter experiment. It locks<br>> > up fairly quickly and wont take any new requests. I've tried using both<br>> > sgen and boehm but they behave similarly although it seems to lock up<br>> > faster when using sgen. I also tried enabling MONO_DISABLE_AIO but it<br>> > doesn't make any difference.<br>> ><br>> > Anyone had similar issues?<br>> ><br>> > I tried using self hosted ServiceStack which also uses HttpListener and<br>> > had similar issues so I'm finding it unlikely that the bug is in NancyFX<br>> > itself.<br>> ><br>> > I tried installing mono 2.10.8 to check if this is a regression, but<br>> > getting exactly the same results.<br>> ><br>> > Any idea how I can debug this further or what could be going on.<br>> <br>> Hey Alfred.<br>> <br>> Could you try mono master (3.3) instead of 3.2? I mention this because <br>> this pull request [1] has been merged recently, which could help in this <br>> situation (and wouldn't make much difference in Mac since the problem in <br>> this platform is worked-around by avoiding kqueue [2]).<br>> <br>> [1] </font><a href="https://github.com/mono/mono/pull/703" style="font-family: tahoma, arial, helvetica, sans-serif;" target="_blank" title="This external link will open in a new window">https://github.com/mono/mono/pull/703</a><font face="tahoma, arial, helvetica, sans-serif"><br>> <br>> [2] </font><a href="https://github.com/mono/mono/blob/master/configure.in#L1823" style="font-family: tahoma, arial, helvetica, sans-serif;" target="_blank" title="This external link will open in a new window">https://github.com/mono/mono/blob/master/configure.in#L1823</a><font face="tahoma, arial, helvetica, sans-serif"><br>> <br>> _______________________________________________<br>> Mono-devel-list mailing list<br>> </font><a href="mailto:Mono-devel-list@lists.ximian.com" onclick="parent.webclient.openWindow(this, 'createmail', 'index.php?load=dialog&task=createmail_standard&to=Mono-devel-list@lists.ximian.com'); return false;" style="font-family: tahoma, arial, helvetica, sans-serif;" target="_blank" title="This external link will open in a new window">Mono-devel-list@lists.ximian.com</a><font face="tahoma, arial, helvetica, sans-serif"><br>> </font><a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" style="font-family: tahoma, arial, helvetica, sans-serif;" target="_blank" title="This external link will open in a new window">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><font face="tahoma, arial, helvetica, sans-serif"><br>> <br>> </font></pre></div>
</div>

<!-- end sanitized html -->
</blockquote></div>
</body>
</html>