Hi all!

On Sun, 2020-02-16 at 08:43 +0100, Bo Lorentsen wrote:
[...]
> Sorry to write in this forum, but I have no idea as the where else to 
> ask :-)
> 
> I have been using libev for a while in a project at work (currently 
> 4.25), with success for quite a while, and I have now expanded the usage 
> in our service to also include the accepting of new connection (used 
> blocking accept before).

So I infer that you use now non-blocking sockets (both for
accept() and read())

> I have a callback that gets called on every accept (where I loop on 
> EAGAIN to empty the backlog), and for each new socket I make an protocol 
> structure (class really). I read from the socket, and sometime it gives 
> me EAGAIN and sometimes i get data, all this is working as it should, 
> but !!!
> 
> I did like to try our the server by using apache benchmark, and this 
> worked really nice in the beginning (both localhost, and real lan), but 
> when i go up to about 20k connections, and concurrency of 500 i gets a 
> few sockets that I can't read from, at all. recv returns -1 and EAGAIN, 
> but it never gets any data.

-1 + EAGAIN neans that there is currently nothing to read()
or accept() ATM. So far perfectly normal.
Do select()/poll() reprot before that there should be
somethign to read()/accept()?

> I order to check for any missing select errors (just a wild guess) I 

select() also returns -1 (and sets errno) on errors ...

> also setup a reread timer when recv returns -1 (and EAGAIN) in order to 
> try read again, even on missing read event, but data still never arrives.
> 
> Are there something I am not aware of, or have others seen something 
> like this ? I really appreciate any comments, I have tried google and 
> found nothing useful on this specific subject.

I do not see any real bug up here anywhere.
Are you sure that each (logical) connection (in your
program) has a different file descriptor?

MfG,
        Bernd
-- 
Bernd Petrovitsch                       Email : be...@tuxoid.at
                     LUGA : http://www.luga.at



_______________________________________________
libev mailing list
libev@lists.schmorp.de
http://lists.schmorp.de/mailman/listinfo/libev

Reply via email to