[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