[2.4 pull request] idle / idled fixes backport to 2.4
Thomas Jarosch
thomas.jarosch at intra2net.com
Fri Sep 25 07:23:58 EDT 2015
The following changes since commit e302cae2f208741c98fa73e6663963c9343ed744:
mailbox: fix lock management over rename (2015-07-20 03:27:51 +1000)
are available in the git repository at:
https://github.com/thomasjfox/cyrus-imapd.git imap-idle-fixes-2.4-backport
for you to fetch changes up to fcf7797003ae4c820c255828be2f89b52ca9953e:
idled: Add missing signals_poll() call (2015-09-25 10:23:42 +0200)
Additional note: The source code differences between 2.4 and 2.5
on the files imap/idle*. are pretty minimal now.
The new code is running on two production level servers with idled enabled.
More testing welcome.
----------------------------------------------------------------
Bron Gondwana (7):
idle: shut down on SIGQUIT
idle: don't lose socket after first use
idle: return 0 if idle not enabled
idled: fix broken message formatting
idle: don't fork if running as a daemon
idle: use NOWAIT if possible
idle: don't access mailboxes.db directly, use allmbox
Greg Banks (23):
idled: better signal handling
idle: whitespace cleanup
idle: rename messages IDLE_FOO -> IDLE_MSG_FOO
idle: remove "freelist" ientry memory management
idle: some const correctness
idle: better function names in idled
idle: rename idle_data_t -> idle_message_t
idle: move message send/recv into a common file
idle: centralise AF_UNIX socket creation
idle: rename notify_sock -> idle_sock
idle: unlink local AF_UNIX socket when done
idle: don't use signals, use AF_UNIX dgrams
idled: use library function shutdown_file()
idle: don't do FD_ISSET(-1,) it's unhelpful
idled: fork after creating socket
[IRIS-1831] Improve logging in idle code.
[IRIS-1831] don't syslog on ENOENT from idle_send
Bug 3648 - lib/signals.c handles multiple signals
lib/signals.c: better signal handling
signals.c doesn't use SA_RESTART for SIGTERM
Whitespace cleanup in signals.c
idle: close SIGTERM/select race
Also use signals_select() in prot_*() functions
Max Matveev (1):
One copy of common signal processing is enough
Thomas Jarosch (3):
Clear sigaction struct before passing it to the kernel
autoconf: Check for pselect()
idled: Add missing signals_poll() call
configure.in | 2 +-
imap/Makefile.in | 14 +-
imap/global.c | 6 +
imap/idle.c | 295 ++++++++++++++++++++++--------------------
imap/idle.h | 36 ++++--
imap/idled.c | 307 +++++++++++++++++++-------------------------
imap/idlemsg.c | 215 +++++++++++++++++++++++++++++++
imap/{idled.h => idlemsg.h} | 45 +++++--
imap/imapd.c | 65 +++++-----
imap/lmtpd.c | 4 +-
imap/nntpd.c | 4 +-
imap/pop3d.c | 4 +-
imap/signals.c | 115 -----------------
imap/signals.h | 54 --------
lib/prot.c | 6 +-
lib/signals.c | 130 ++++++++++++++++---
lib/signals.h | 5 +
17 files changed, 729 insertions(+), 578 deletions(-)
create mode 100644 imap/idlemsg.c
rename imap/{idled.h => idlemsg.h} (71%)
delete mode 100644 imap/signals.c
delete mode 100644 imap/signals.h
More information about the Cyrus-devel
mailing list