[dovecot/core] f49b53: imap: Don't do autoexpunging when IMAP client is h...

GitHub noreply at github.com
Thu Jul 13 01:00:14 EEST 2017


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: f49b532f2556085d25b1c546cd6826aab6a1f8c8
      https://github.com/dovecot/core/commit/f49b532f2556085d25b1c546cd6826aab6a1f8c8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  imap: Don't do autoexpunging when IMAP client is hibernated


  Commit: f88cdc29e01b9d86c2f21640b2b3ee4f75ef91b9
      https://github.com/dovecot/core/commit/f88cdc29e01b9d86c2f21640b2b3ee4f75ef91b9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  lib-storage: mailbox_sync_init() - open mailbox immediately if it's not open yet

This simplifies the work for plugins that want to hook into
mailbox.sync_init() so they no longer have to handle the "mailbox isn't
opened" case.


  Commit: 40d0717afb789ff37d06205bddaa2c707bc5f787
      https://github.com/dovecot/core/commit/40d0717afb789ff37d06205bddaa2c707bc5f787
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/index/cydir/cydir-sync.c
    M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c
    M src/lib-storage/index/dbox-multi/mdbox-sync.c
    M src/lib-storage/index/dbox-single/sdbox-sync.c
    M src/lib-storage/index/imapc/imapc-sync.c
    M src/lib-storage/index/maildir/maildir-sync.c
    M src/lib-storage/index/mbox/mbox-sync.c
    M src/lib-storage/index/pop3c/pop3c-sync.c
    M src/lib-storage/index/raw/raw-sync.c

  Log Message:
  -----------
  lib-storage: Storage backend sync_init()s no longer need to check if mailbox is open

The previous change guarantees it.


  Commit: 55006e65f4f2c3e40bbec550da7c2e1a79d26808
      https://github.com/dovecot/core/commit/55006e65f4f2c3e40bbec550da7c2e1a79d26808
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/list/mailbox-list-index-status.c
    M src/lib-storage/list/mailbox-list-index-storage.h

  Log Message:
  -----------
  lib-storage: Try to avoid opening mailbox list index on mailbox access

Perform the STATUS (and other relevant) updates only if syncing or
transaction commits changed anything. This could be optimized further to
check even more strongly whether the seen changes could cause changes to
the list index, but it's probably not worth the effort.


  Commit: 06b5107a5336073335e75d5af85b4575a029cfc9
      https://github.com/dovecot/core/commit/06b5107a5336073335e75d5af85b4575a029cfc9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/mailbox-list-private.h
    M src/lib-storage/mailbox-list.c
    M src/lib-storage/mailbox-list.h

  Log Message:
  -----------
  lib-storage: Add mailbox_list_last_error_push/pop()

These are similar to mail_storage_last_error_push/pop()


  Commit: 263ffaea0777304fdffe04a04beaee54b8694bc8
      https://github.com/dovecot/core/commit/263ffaea0777304fdffe04a04beaee54b8694bc8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  lib-storage: Set mailbox list index to be refreshed after changes, not before

Mailbox deletion and rename set the refresh-flag before the change was done.
This was unnecessary if the change didn't happen. Also there was a race
condition that another process could have done the refresh before the
change was even done.


  Commit: c6c602e7b07c6a254b7db473a263c9c28fc6c297
      https://github.com/dovecot/core/commit/c6c602e7b07c6a254b7db473a263c9c28fc6c297
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  lib-storage: Refresh mailbox list index if mailbox's existence differs from index


  Commit: e67a75f99bb0e92f712f255f44251b4722f480f3
      https://github.com/dovecot/core/commit/e67a75f99bb0e92f712f255f44251b4722f480f3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/list/mailbox-list-index-sync.c
    M src/lib-storage/list/mailbox-list-index-sync.h
    M src/lib-storage/list/mailbox-list-index.c

  Log Message:
  -----------
  lib-storage: Avoid index refresh with mailbox_list_index_very_dirty_syncs=yes


  Commit: 15ac63553061823738f3edb822d8657cd5855da7
      https://github.com/dovecot/core/commit/15ac63553061823738f3edb822d8657cd5855da7
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/list/mailbox-list-index-status.c

  Log Message:
  -----------
  lib-storage: Track INBOX UIDVALIDITY and GUID in mailbox list index

This allows existence checks and GUID lookups for INBOX to be done from the
index.


  Commit: 7273d9768b176cbc9d08cbb9cf1ffb6311572d04
      https://github.com/dovecot/core/commit/7273d9768b176cbc9d08cbb9cf1ffb6311572d04
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/list/mailbox-list-index-status.c

  Log Message:
  -----------
  lib-storage: Don't use mailbox list index if it has refresh_flag set

For example if INBOX is deleted, looking up its GUID shouldn't be returned
from the list index since it contains the old GUID.


  Commit: 994e82a7f9a85dcf0a374724930b38611185a463
      https://github.com/dovecot/core/commit/994e82a7f9a85dcf0a374724930b38611185a463
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/list/mailbox-list-index-status.c

  Log Message:
  -----------
  lib-storage: Fix mailbox_update() to always update mailbox list index.

It previously was updating it only if the list index for the mailbox was
already fully up-to-date. But that doesn't really matter, because
mailbox_update() is supposed to be changing the values regardless.

This fixes mailbox_update() to always work with LAYOUT=index. It also
fixes mailbox_update() for INBOX to update UIDVALIDITY/GUID.


  Commit: 6e92a6fa58c6aec9ececef3221a2333f40594aa8
      https://github.com/dovecot/core/commit/6e92a6fa58c6aec9ececef3221a2333f40594aa8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  lib-index: Use nfs_safe_stat() to avoid having to handle stat() ESTALE error

Slightly simplifies the code.


  Commit: 943fc4d71a9965fa752760876d35c24bef220828
      https://github.com/dovecot/core/commit/943fc4d71a9965fa752760876d35c24bef220828
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/doveadm/doveadm-dump-index.c

  Log Message:
  -----------
  doveadm dump: Include "last temp file scan" in index header dump


  Commit: c49d18350d62b6222958ec0cf5d3baa1b13b3813
      https://github.com/dovecot/core/commit/c49d18350d62b6222958ec0cf5d3baa1b13b3813
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  lib-index: Check .log.2 rotation only when syncing

Instead of also whenever appending transactions to .log file. This
shouldn't change the behavior much, and it's needed for the following
change to work correctly.


  Commit: ddd0a78547c9e82324730aa696904a78f16a7d3e
      https://github.com/dovecot/core/commit/ddd0a78547c9e82324730aa696904a78f16a7d3e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/doveadm/doveadm-dump-index.c
    M src/lib-index/mail-index-map-hdr.c
    M src/lib-index/mail-index-private.h
    M src/lib-index/mail-index-sync.c
    M src/lib-index/mail-index-write.c
    M src/lib-index/mail-index.h
    M src/lib-index/mail-transaction-log.c

  Log Message:
  -----------
  lib-index: Track .log.2 rotation time in index header

This avoids unnecessarily stat()ing the file. Also it's a bit better
since it's tracking the actual rotation time, not the mtime of what the
.log file happened to have at the time of rotation.

The initial rotation timestamp is written only to the dovecot.index header
without going through dovecot.index.log. This works, because the
dovecot.index is written practically always after a log rotation. For the
rare cases when it doesn't happen, the dovecot.index.log.2 just gets
deleted later after the next log rotation.


  Commit: 9f3f346d3d0a8eaf2511bb652b8a74aecd276c2d
      https://github.com/dovecot/core/commit/9f3f346d3d0a8eaf2511bb652b8a74aecd276c2d
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  lib-index: Fix compiler warning with 32bit time_t


  Commit: d662a5ab26a6734ea0c070c1c0f76f94a868cdb8
      https://github.com/dovecot/core/commit/d662a5ab26a6734ea0c070c1c0f76f94a868cdb8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c
    M src/lib-storage/index/index-storage.c
    M src/lib-storage/index/index-storage.h

  Log Message:
  -----------
  sdbox: Create missing mail directory on resync if index directory exists

This problem should be visible only with ITERINDEX enabled.


  Commit: 4060dbc68d57cf2b8fbbed0e169988c66a3a3c1a
      https://github.com/dovecot/core/commit/4060dbc68d57cf2b8fbbed0e169988c66a3a3c1a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

  Changed paths:
    M src/lib-storage/mail-storage.c
    M src/lib-storage/mailbox-list.h

  Log Message:
  -----------
  lib-storage: Improve MAILBOX_LIST_PROP_AUTOCREATE_DIRS related comments


  Commit: 91ee70ed04d33fecd7fc94621f236013d520d7b3
      https://github.com/dovecot/core/commit/91ee70ed04d33fecd7fc94621f236013d520d7b3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-13 (Thu, 13 Jul 2017)

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

  Log Message:
  -----------
  lib-storage: mailbox_create_missing_dir() - Handle mailbox delete race condition

Make sure the directory isn't created if the mail root directory no longer
exists. This might happen during mailbox deletion when another process is
opening the mailbox at the same time.


Compare: https://github.com/dovecot/core/compare/9ba5a9d52127...91ee70ed04d3


More information about the dovecot-cvs mailing list