Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Staging:A
dbus-1-x11
increase-backlog.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File increase-backlog.patch of Package dbus-1-x11
commit 12bd6e893c91430fdbdf8a27087d4a792b04eef9 Author: Lennart Poettering <lennart@poettering.net> Date: Wed May 4 18:06:17 2016 +0200 sysdeps: increase listen() backlog of AF_UNIX sockets to SOMAXCONN Previously, the listen() backlog was set to an arbitrary 30. This means that if dbus-daemon is overloaded only 30 more connections may be queued by the kernel, before connect() fails with EAGAIN. (Note that EAGAIN != EINPROGRESS -- the latter is what is returned if a connection is queued and being processed for asynchronous sockets; EAGAIN in this case is really an error, that cannot be recovered from). Most software simply sets SOMAXCONN as backlog for AF_UNIX sockets, to allow queuing of as many connections as the kernel allows. SOMAXCONN is 128 on Linux, which is not particularly high, but at least higher than 30. This patch changes dbus-daemon to do the same. I noticed this when flooding dbus-daemon with a lot of connections, where it pretty quickly ceased to respond, much earlier than it really should. Note that the backlog has nothing to do with the number of concurrent connections allowed, it simply controls how many queued, but not accept()ed connections there may be on the listening socket. https://bugs.freedesktop.org/show_bug.cgi?id=95264 diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index 6b9e50b..ce8cbf7 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -1120,7 +1120,7 @@ _dbus_listen_unix_socket (const char *path, return -1; } - if (listen (listen_fd, 30 /* backlog */) < 0) + if (listen (listen_fd, SOMAXCONN /* backlog */) < 0) { dbus_set_error (error, _dbus_error_from_errno (errno), "Failed to listen on socket \"%s\": %s",
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor