[dovecot/core] 750d79: lib-storage: Add error reporting to mail_set_attac...

GitHub noreply at github.com
Mon Apr 30 16:00:24 EEST 2018


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: 750d79a0c6b7d33b163d55adbb4a5cc6c01e83a5
      https://github.com/dovecot/core/commit/750d79a0c6b7d33b163d55adbb4a5cc6c01e83a5
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

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

  Log Message:
  -----------
  lib-storage: Add error reporting to mail_set_attachment_keywords


  Commit: d678114e51872bd057db087a531986522ab36103
      https://github.com/dovecot/core/commit/d678114e51872bd057db087a531986522ab36103
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

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

  Log Message:
  -----------
  lib-storage: Parse mail parts in mail_set_attachment_keywords if not present


  Commit: cd79dfd72b189faa10b3bcf645e360e4ee4d5a97
      https://github.com/dovecot/core/commit/cd79dfd72b189faa10b3bcf645e360e4ee4d5a97
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M doc/man/Makefile.am
    A doc/man/doveadm-rebuild.1.in
    M src/doveadm/Makefile.am
    A src/doveadm/doveadm-mail-rebuild.c
    M src/doveadm/doveadm-mail.c
    M src/doveadm/doveadm-mail.h

  Log Message:
  -----------
  doveadm: Add rebuild attachments command

Goes thru given mails and resets the attachment indicator.


  Commit: 1540fdd8340ef463ffe7bea86808e32d79cdea97
      https://github.com/dovecot/core/commit/1540fdd8340ef463ffe7bea86808e32d79cdea97
  Author: Martti Rannanjärvi <martti.rannanjarvi at dovecot.fi>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M .gitignore

  Log Message:
  -----------
  .gitignore: Ignore doc/man/doveadm-rebuild.1


  Commit: 0aaf09c7e2653110a026982e73f50c56869dbeed
      https://github.com/dovecot/core/commit/0aaf09c7e2653110a026982e73f50c56869dbeed
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M src/lib-index/mail-index-private.h
    M src/lib-index/mail-index-sync-ext.c
    M src/lib-index/mail-index.c

  Log Message:
  -----------
  lib-index: Remove extension record sync handlers

This is no longer used by anything, and it makes the fix in the following
commit much easier.

This was originally added in 6a19e109ee8c5a6f688da83a86a7f6abeb71abdd to
allow dovecot.index.cache updating to hook into updating cache offsets to
link cache records together. This was reimplemented in a different way in
131b073bdc3650083b00616dc778dd3017c2bbb5


  Commit: 3a31823cdb17aaf1d6704930f8f1392e12756198
      https://github.com/dovecot/core/commit/3a31823cdb17aaf1d6704930f8f1392e12756198
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

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

  Log Message:
  -----------
  lib-index: mail_index_sync_map() - Don't try to-resync extension updates

This was done to call extension record sync handlers, but the previous
commit removes them. Fixes a problem where obsolete cache offsets were
used in some situations:

 - Some cache updates are from external transactions and some are from
non-external transactions. This is because cache offset updates are being
added by whatever the parent index transaction is.

 - When mail_index_sync_map() is mapping MAIL_INDEX_SYNC_HANDLER_FILE, it
has already synced the map. But it's calling mail_index_sync_record()
for non-external transactions to call expunge handlers and extension
update handlers. It's calling the regular mail_index_sync_record() to do
this work.

 - But mail_index_sync_record() is actually still updating the map. So now
mail_index_sync_record() is called for all non-external cache updates,
but not for external cache updates! And since these are somewhat
randomly either external or non-external, the end result is that the
cache offset may be obsolete.


Compare: https://github.com/dovecot/core/compare/60af6cf128d5...3a31823cdb17


More information about the dovecot-cvs mailing list