[packaging] Changes to 'cyrus-imapd-2.3'

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Fri Dec 3 18:27:25 CET 2010

New branch 'cyrus-imapd-2.3' available with the following commits:
commit 5054536de028bad0de7c6f38a976d0a23f909021
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 26 00:29:03 2010 +0100

    Start TLS in cyradm when it is a capability.
      When not allowing plaintext, cyradm would need the tlskey option
      to be added to its call solely to consider using TLS. This patch
      makes sure TLS is started when it's a capability.
      Tested scenarios:
      - allowplaintext: 0 + tls_* options set: SUCCESS with TLS
      - allowplaintext: 1 + tls_* options set: SUCCESS with TLS
      - allowplaintext: 0 (no tls_* options set): FAIL with SSL connect error and login disabled
      - allowplaintext: 1 (no tls_* options set): SUCCESS (no TLS)

commit 2f9b2fb76306944ecccca25a6d7d36d9f46802bf
Author: Stefan <steffo76 at gmx.de>
Date:   Mon Oct 25 23:29:36 2010 +0100

    Resolve sync_client crash with 'empty mech_list' before STARTTLS

commit ff0b848eec45c0fb03679f57e6ea61cd25576b12
Author: Richard Bos <ml at radoeka.nl>
Date:   Mon Oct 25 23:12:51 2010 +0100

    Use NULL instead of 0 as documented in API specs for krb5_build_principal

commit 0a616fe1d4f72b8fbd881de27f143116a3e71864
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Oct 20 11:25:18 2010 +0100

    Add bdb version 4.8 to berkdb.m4 (#3139)

commit 3960ca7ea8df50fb2a871a146b82eb70980d8a45
Merge: ebdfed79d80bf5ecfc7f725d5dae44bbcc2b58a6 ae9773beb8067ed5306c6b054cfe5e7edc86f17b
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 19 15:47:39 2010 +0100

    Merge branch 'cyrus-imapd-2.3' of ssh://git.cyrusimap.org/git/cyrus-imapd into cyrus-imapd-2.3

commit ebdfed79d80bf5ecfc7f725d5dae44bbcc2b58a6
Author: Wes Craig <wes at umich.edu>
Date:   Tue Oct 19 15:44:41 2010 +0100

    Prevent sync_client from crashing on an empty mech_list before TLS starts (and the mech_list can be re-negotiated).
    This situation occurs on the following configuration:
    sasl_mech_list: PLAIN
    syncserver_allowplaintext: 0
    where TLS is required before the PLAIN mech can be used.

commit ae9773beb8067ed5306c6b054cfe5e7edc86f17b
Author: Henrique de Moraes Holschuh <hmh at debian.org>
Date:   Mon Oct 18 15:39:09 2010 +1100

    Fixes process (child) handling in Cyrus master
    Origin: vendor, Debian Cyrus IMAPd 2.1.16-7 (2004-08-07), 2.3.16-1
    * Allows Cyrus master to process all pending child messages once per
      loop, which fixes a DoS situation if there is too much message churn
      in a slower box.  If the pending messages never get processed,
      eventually master stops spawning the service or handling connections.
      It seems that the problem this patch fixes has also been reported in
      Cyrus IMAP 2.2.12 by Earl Shannon, and Jules Agee actually tried to
      get the fix from Debian integrated upstream.
      Jules Agee described the problem quite well in a private message:
         "The problem occurs when the child message queue is very backed up.
         A child process dies with several messages in the queue. reap_child
         marks it's state in the child table as dead and decrements the
         number of ready_workers.  Then the janitor process removes that
         child's entry from the child table.  When master finally gets
         around to processing all the messages in the child message queue,
         it has no idea where the message came from because the child's
         entry has already been removed from the ctable.  So it creates a
         new ctable entry, marking the child process state as unknown,
         assuming the message is from a child process that's still alive.
         When master finishes processing the messages from that long-dead
         child, it again (an inaccurately) decrements the count of
         The easiest solution in my opinion is to make sure master stays
         caught up with messages from its children by processing all child
         messages on each loop.  After all, it's the duty of a parent."
      Kenneth Murchison reported that they couldn't reproduce it in CMU.
      However, it is clearly something that depends on pathological loads
      and kernel behaviour to trigger.
      This fix is a trade off: we risk increasing latency to hand off
      connections/spawn new services (because we're in a loop processing
      child messages).  If the messages never stop coming, or come in
      extremely large bursts, master will backlog connections.  If syslog()
      or memory allocations in the message processing codepaths introduce
      large latencies, the cost of processing messages can get too high
      and master will backlog connections.  Note: this *CAN* happen, and
      in fact it did happen to Jules until he reduced the amount of data
      going to syslog in master/master.c:process_msg().
      Reported-analysed-and-tested-by: Jules Agee <julesa at pcf.com>.
    * Fix message handling from expired children (new)
      It is possible that the kernel will delay message delivery a lot more
      than signal delivery in a overload situation.  The message delivery
      delay can get large enough for master to have already expired a dead
      child from its children table when a message arrives.  There is a bug
      in the state machine design: it readded such children to the table as
      being in an unknown state (as described by Jules Agee), which ends up
      causing bad accounting of ready_workers.
      Fix the state machine to assume messages from unknown children are
      from long dead children and add them back to the child table in DEAD
    * Fix connection accounting when child dies before its messages
      have been processed (new)
      When processing messages from dead or long-dead children, explicitly
      ignore AVAILABLE/UNAVAILABLE messages (to document it as a normal
      codepath -- the code would already do it, but through a codepath
      marked as "should not happen").  For CONNECTION/CONNECTION_MULTI
      messages from dead or long-dead children, just do connection accouting
      but don't touch children accounting (as we already accounted for the
      worker's death when we processed its SIGCHLD).

commit 4e3a9ff7ef702f8fce9ff6b7f9953ac0c6849e42
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Fri Oct 15 14:56:55 2010 +0100

    Add the same .gitignore as master uses

commit e33868aecfd2d70052db3768c809b4bf940727c3
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Fri Oct 15 12:21:38 2010 +0100

    Replace distcvs with distgit, and bump version number to anything greater then 2.3.16

commit 94c56c2e4d12505be15aa974acdcdeda9441ec6f
Author: Bron Gondwana <brong at fastmail.fm>
Date:   Fri Feb 12 03:46:53 2010 +0000

    Check for REG_UTF8 explicitly instead

commit b38150fcf59a06f762af3bea26ed1a290048ec9a
Author: Bron Gondwana <brong at fastmail.fm>
Date:   Fri Feb 12 03:41:11 2010 +0000

    Use UTF8 comparison functions if PCRE is enabled

commit e312f006437b69456a1e7ba326e7297f10c3a0eb
Author: Bron Gondwana <brong at fastmail.fm>
Date:   Fri Feb 12 03:40:50 2010 +0000

    Use UTF-8 decoding for searches and notify messages
    Fixes Bug #1721, Bug #1722

commit 7d129acb346e48703caf1d1e39f8e627e51089b6
Author: Bron Gondwana <brong at fastmail.fm>
Date:   Fri Feb 12 03:38:16 2010 +0000

    New charset subsystem
    This time I've changed the behaviour to be compatible (as much
    as possible!) with the original charset handling code.  This
    should be a drop-in replacement.
    Tested with a folder containing a bunch of really ugly buggy
    messages, and it creates a cyrus.cache file which is identical
    other than a record where I believe that the old code is
    incorrect (adding \r\n and some highbit characters to a search
    string due to the decoding process)

commit e0bdfba6119248218988d757e8e30fedcb627c7e
Author: Ken Murchison <murch at andrew.cmu.edu>
Date:   Wed Jan 6 17:31:00 2010 +0000

    fix "< >" around email address

commit 0872d42379fca458a922be5627dd0d0178b4e074
Author: Ken Murchison <murch at andrew.cmu.edu>
Date:   Wed Jan 6 17:29:57 2010 +0000

    need to escape the '\' in IMAP flags

commit e54b6cb9011ff7422ac3cdf8652d422b51e61604
Author: Ken Murchison <murch at andrew.cmu.edu>
Date:   Wed Jan 6 16:47:40 2010 +0000

    update to built a tarball from 2_3-tail branch

More information about the packaging-commits mailing list