[dovecot/core] 86a8cb: imapc: Fix memory leak when closing mailbox with d...

GitHub noreply at github.com
Thu Apr 27 11:00:13 EEST 2017


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: 86a8cb6493475c0d90f093c7872df50c214f37e1
      https://github.com/dovecot/core/commit/86a8cb6493475c0d90f093c7872df50c214f37e1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib-storage/index/imapc/imapc-storage.c

  Log Message:
  -----------
  imapc: Fix memory leak when closing mailbox with delayed changes


  Commit: 3d6b8ea7b57071c80db4145ac6db3b477d39d7a9
      https://github.com/dovecot/core/commit/3d6b8ea7b57071c80db4145ac6db3b477d39d7a9
  Author: Andriy Syrovenko <andriys at gmail.com>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/auth/mech-winbind.c

  Log Message:
  -----------
  auth: Fixed dovecot/auth hanging when child ntlm_auth crashes while processing an authentication request


  Commit: b9735121d7895babd3aa17f4f9f70e9b1f1e279a
      https://github.com/dovecot/core/commit/b9735121d7895babd3aa17f4f9f70e9b1f1e279a
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib/bits.h

  Log Message:
  -----------
  lib: bits - new fractional log-like helper

For stats gathering, where the data can have a wide range of values, you
don't necessarily need the same granularity along the full range of values.
For example, 1ms and 11ms latencies are very different, but 1.001s and
1.011s latencies are not worth distinguishing. Something logarithmic seems
more apt. Simply looking at power-of-2 sized bands (e.g. doing log2(n)),
however, is too granular, so these new helpers let you specify how fine
to (linearly) subdivide each of those bands. 1 fractional bit splits
each power of 2 band into 2 halves. 2 fractional bits splits each power
of 2 band into 4 quarters, and so on. 0 fractional bits is just log2().

Exact identification of percentiles is impossible, but it was anyway, as you
simply cannot store all the data required to calculate them. However, a mere
896 buckets will permit you to have 32 bands per power of 2, 5 fracional bits.
The above example would have buckets such as 2.432s-2.496s, and 55.3s-56.3s.
Assuming smooth distribution lets you calculate percentiles more accurately,
just assume within each bucket is a trapezial distribution. This holds even
if the distribution is multi-modal, which it will be. However, maths required.

Signed-off-by: Phil Carmody <phil at dovecot.fi>


  Commit: 70176c9b97e638fe07d016e59dcbdef893d5cb80
      https://github.com/dovecot/core/commit/70176c9b97e638fe07d016e59dcbdef893d5cb80
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib/bits.c
    M src/lib/bits.h

  Log Message:
  -----------
  lib: bits - GCC (and clang) provide bit-twiddle intrinsics, use them

Signed-off-by: Phil Carmody <phil at dovecot.fi>


  Commit: cafe14c741ca2f64023bb8266d88289367885afe
      https://github.com/dovecot/core/commit/cafe14c741ca2f64023bb8266d88289367885afe
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib/bits.h

  Log Message:
  -----------
  lib: Fixed bits_required64() with 32bit systems.

Broken by 84f697c5e30565823619abaaeb57164c789d4b66.


  Commit: cd955fdc0e2dbd7c282bea66804f277f9bbe2046
      https://github.com/dovecot/core/commit/cd955fdc0e2dbd7c282bea66804f277f9bbe2046
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib/bits.h
    M src/lib/test-bits.c

  Log Message:
  -----------
  lib: Add bits_is_power_of_two()


  Commit: fe4389584011a4b9581072723f5c91668fac23c1
      https://github.com/dovecot/core/commit/fe4389584011a4b9581072723f5c91668fac23c1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib-storage/mail-search-args-imap.c

  Log Message:
  -----------
  lib-storage: mail_search_arg_to_imap() - minor FLAGS writing optimization

Avoid an extra str_delete() by immediately calculating whether the
parenthesis are needed.


  Commit: 644ec41886dbc79771badce01c3e6706cc62aafe
      https://github.com/dovecot/core/commit/644ec41886dbc79771badce01c3e6706cc62aafe
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib-storage/mail-search-args-imap.c

  Log Message:
  -----------
  lib-storage: mail_search_arg_to_imap() - minor keywords writing optimization

Avoid an extra str_delete() by checking whether the parenthesis are needed.


  Commit: 98c5b9fc87b45f919f363a2a803e2931fd3cd9bd
      https://github.com/dovecot/core/commit/98c5b9fc87b45f919f363a2a803e2931fd3cd9bd
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/imap/Makefile.am
    A src/imap/imap-sync-private.h
    M src/imap/imap-sync.c

  Log Message:
  -----------
  imap: Move struct imap_sync_context to imap-sync-private.h


  Commit: 10b70dc2e63c328dfacb578b297298b73964c2e5
      https://github.com/dovecot/core/commit/10b70dc2e63c328dfacb578b297298b73964c2e5
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/imap/imap-client.c
    M src/imap/imap-client.h
    M src/imap/imap-sync-private.h
    M src/imap/imap-sync.c

  Log Message:
  -----------
  imap: Allow plugins to hook into syncing.

Ideally all of the existing pieces in the syncing code would start using
this at some point, so their code could be moved to a more logical location.


  Commit: 16672e94f6895493843ad78c6f5e2d5b5159243b
      https://github.com/dovecot/core/commit/16672e94f6895493843ad78c6f5e2d5b5159243b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib-storage/index/imapc/imapc-sync.c

  Log Message:
  -----------
  imapc: Don't send NOOP on sync if MAILBOX_SYNC_FLAG_FAST is set

Fast syncing should do only the minimal amount of work.


  Commit: 7dde6c642b48999a803c80f29176037ed0d2682a
      https://github.com/dovecot/core/commit/7dde6c642b48999a803c80f29176037ed0d2682a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/lib-storage/index/index-mail.c

  Log Message:
  -----------
  lib-storage: Fix crash in mail_get_parts() with a special plugin

If plugin hooks into mail_get_stream() which causes data->parts to be set,
this code crashed with:

Panic: file index-mail.c: line 1163 (index_mail_parse_body): assertion failed: (data->parser_ctx != NULL)


  Commit: 1164a6537da40da7f15f2b60664def2e9d8b4537
      https://github.com/dovecot/core/commit/1164a6537da40da7f15f2b60664def2e9d8b4537
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-04-27 (Thu, 27 Apr 2017)

  Changed paths:
    M src/plugins/quota/quota-imapc.c

  Log Message:
  -----------
  quota: imapc backend now never enforces the quota itself

It just causes a lot of GETQUOTA/GETQUOTAROOT calls to remove. In theory we
could make this optional, but I doubt anyone would want it.


Compare: https://github.com/dovecot/core/compare/ce59b1bdd19f...1164a6537da4


More information about the dovecot-cvs mailing list