Vitaly Magerya

Results 14 comments of Vitaly Magerya

@hcarty, sorry, I forgot to mention it: I did install both `libev` and `conf-libev` in both setups prior to installing `cohttp`.

@j0sh, in the first setup, I don't think so; `ulimit -n` is already at 232659. In the second setup, probably so; `ulimit -n` was 1024, raising it does help. This...

@j0sh, it's the same error, it just takes a higher number of simultaneous connections to get it. (`ulimit -n unlimited` doesn't work on my system; I can only raise it...

@seliopou, I think FreeBSD port actually forces the `kqueue` backend... at least it tries to (i.e. [this patch](https://svnweb.freebsd.org/ports/head/devel/libev/files/patch-ev.c?revision=413628&view=markup)), if it succeeds or not -- that I'm not sure. In any...

@seliopou, so, which code is responsible for checking the number of fds passed into `select`? I mean, the problem remains, a web server should not die. BTW, I've just tried...

I've added backtrace to the FreeBSD failure, and it turns out that the exception originates [over here](//github.com/ocsigen/lwt/blob/2.5.2/src/unix/lwt_engine.ml#L371), inside Lwt's "select" engine. In other words, `libev`-based engine is not used at...

Also, I think it will be useful to document the fact that Lwt's "select" engine is: - enabled by default on every non-Linux system; - not equipped to serve public-facing...

[Lwt's docs](https://ocsigen.org/lwt/2.5.2/manual/) do mention that "Unix.select supports only 1024 [file descriptors] at most", so it is sort of covered, but then they also say that "libev is used by default...

Here's the async server: ``` OCaml open Core.Std open Async.Std open Cohttp_async let handler ~body:_ _ _ = Server.respond_with_string "Hello world" let () = ignore (Cohttp_async.Server.create (Tcp.on_port 8000) handler); never_returns...

Under Linux (Fedora 23, amd64), with OCaml 4.02.2, `async 113.00.00`, `conduit 0.9.0`, and `cohttp 0.19.3`, the server dies with a similar error message, but only if I kill `wrk` before...