ffd8dc932516bc55bf01d91355540daab365e5e9 |
|
04-Jul-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
master: Add master socket's io listener later.
Most importantly this fixes startup failure with kqueue:
Panic: kevent(EV_ADD, READ, 56) failed: Bad file descriptor
kqueue doesn't survive a fork(), so this change delays its creation until
after fork(). |
5d4c793b4e3dbc07f08daa4465594b1857f80725 |
|
23-Sep-2013 |
Timo Sirainen <tss@iki.fi> |
master: Added reuse_port setting to inet_listeners, which enables SO_REUSEPORT if available.
After forking a new service process, a new listener socket is created for
each such inet_listener. Linux v3.9+ added SO_REUSEPORT feature, which
should distribute clients more uniformly to the processes. I'm not sure if
this makes any difference in BSDs.
At least in Linux v3.9 there was still a bug that if the number of listening
processes changed, some TCP handshakes might not finish. I don't see if this
has already been fixed, so this is probably safe to use only for services
whose process count doesn't change (e.g. process_min_avail is set high
enough). |