]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
If epoll_create() fails with EMFILE, suggest increasing epoll's max_user_instances.
authorTimo Sirainen <tss@iki.fi>
Thu, 2 Apr 2009 18:10:16 +0000 (14:10 -0400)
committerTimo Sirainen <tss@iki.fi>
Thu, 2 Apr 2009 18:10:16 +0000 (14:10 -0400)
--HG--
branch : HEAD

src/lib/ioloop-epoll.c

index b82881679140e5c9405607288e8d7104b55be959..adda4a1c97aadecc969e25b431942a5cbf292388 100644 (file)
@@ -35,8 +35,14 @@ void io_loop_handler_init(struct ioloop *ioloop, unsigned int initial_fd_count)
        i_array_init(&ctx->fd_index, initial_fd_count);
 
        ctx->epfd = epoll_create(initial_fd_count);
-       if (ctx->epfd < 0)
-               i_fatal("epoll_create(): %m");
+       if (ctx->epfd < 0) {
+               if (errno != EMFILE)
+                       i_fatal("epoll_create(): %m");
+               else {
+                       i_fatal("epoll_create(): %m (you may need to increase "
+                               "/proc/sys/fs/epoll/max_user_instances)");
+               }
+       }
        fd_close_on_exec(ctx->epfd, TRUE);
 }