[Mono-dev] NancyFX self hosting (HttpListener) locking up on linux

Yuriy Solodkyy yuriy at couldbedone.com
Sun Aug 4 21:32:11 UTC 2013


Hi,

two notes:

1)

>> That should have the fix in from https://github.com/ysw, but setting MONO_DISABLE_AIO
should have worked around that anyway, as its meant to bypass the epoll
backend.
The problem we attempted to fix with async sockets is not only with epoll
backend.  i could reproduce it with plain poll backend as well.  Moreover
the patch we submitted only addresses it for epoll/kqueue and leaves poll
backend unpatched.

2)  From what I understand it is very unlikely it is related to the problem
described here.  The problem we fixed can only be observed if you have
parallel read and write operations on the same socket which is unlikely to
happen in RPC style protocols like HTTP, unless you do request pipelining
from the client.  However, if it is the same problem,  MONO_DISABLE_AIO won't
help as poll backend is not better than epoll/kqueue in this case.

-yuriy


On Sun, Aug 4, 2013 at 2:17 PM, Alfred Hall <ahall at ahall.org> wrote:

> **
> I meant to say I tried master too:
>
> root at mulder:~# /opt/ahall-mono/bin/mono -V
> Mono JIT compiler version 3.3.0 (master/2354865 Sun Aug  4 00:42:51 BST
> 2013)
> Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors.
> www.mono-project.com
> TLS:           __thread
>  SIGSEGV:       altstack
> Notifications: epoll
> Architecture:  amd64
>  Disabled:      none
> Misc:          softdebug
> LLVM:          supported, not enabled.
>  GC:            sgen
>
>
> That should have the fix in from https://github.com/ysw, but setting MONO_DISABLE_AIO should have worked around that anyway, as its meant to bypass the epoll backend.
>
> My Nancy service is literally just returning a very simple JSON:
>
>     public class HelloWorldModule : NancyModule
>     {
>         public HelloWorldModule()
>         {
>             Get["/"] = parameters => {
>                 return Response.AsJson(new HomeResponse { Message = "Test" });
>             };
>         }
>     }
>
> 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.
>
>
> -----Original message-----
> > From:"Andrés G. Aragoneses" <knocte at gmail.com>
>
> > Sent: Sunday 4th August 2013 10:03
> > To: mono-devel-list at lists.ximian.com
>
> > Subject: Re: [Mono-dev] NancyFX self hosting (HttpListener) locking up on linux
> >
> > On 04/08/13 03:07, Alfred Hall wrote:
> > > Hi there.
> > >
> > > I'm running the NancyFX web framework in self hosting mode which is
>
> > > using HttpListener which basically means I deploy an executable and run
> > > it and it will start a webserver on localhost on a TCP port of choice. I
> > > then use nginx to proxy to it.
> > >
>
> > > I first ran my executable on my macbook pro and bombarded it with jmeter
> > > and it coped fine and no issues.
> > > I then deployed on my debian wheezy 64 bit linux box running on top of
> > > KVM using mono 3.2.0 and performed the same jmeter experiment. It locks
>
> > > up fairly quickly and wont take any new requests. I've tried using both
> > > sgen and boehm but they behave similarly although it seems to lock up
> > > faster when using sgen. I also tried enabling MONO_DISABLE_AIO but it
>
> > > doesn't make any difference.
> > >
> > > Anyone had similar issues?
> > >
> > > I tried using self hosted ServiceStack which also uses HttpListener and
> > > had similar issues so I'm finding it unlikely that the bug is in NancyFX
>
> > > itself.
> > >
> > > I tried installing mono 2.10.8 to check if this is a regression, but
> > > getting exactly the same results.
> > >
> > > Any idea how I can debug this further or what could be going on.
>
> >
> > Hey Alfred.
> >
> > Could you try mono master (3.3) instead of 3.2? I mention this because
> > this pull request [1] has been merged recently, which could help in this
> > situation (and wouldn't make much difference in Mac since the problem in
>
> > this platform is worked-around by avoiding kqueue [2]).
> >
> > [1] https://github.com/mono/mono/pull/703
>
> >
> > [2] https://github.com/mono/mono/blob/master/configure.in#L1823
>
> >
> > _______________________________________________
> > Mono-devel-list mailing list
> > Mono-devel-list at lists.ximian.com
>
> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
> >
> >
>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>


-- 
Yuriy Solodkyy
(y.solodkyy at gmail.com)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20130805/70a9e6dd/attachment-0001.html>


More information about the Mono-devel-list mailing list