[dovecot/core] e12a82: lib-storage: If mail_index_header.first_recent_uid...

GitHub noreply at github.com
Tue Jul 18 13:30:09 EEST 2017


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

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

  Log Message:
  -----------
  lib-storage: If mail_index_header.first_recent_uid shrinks, reset \Recent flags

This should never happen.


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

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

  Log Message:
  -----------
  lib-storage: Don't allow removing \Recent flags with mail_update_flags()

Reverts an ancient commit 7deb24e7453249d09741641bff0f269f68165033. I don't
know why it was added in the first place. Normally \Recent flags are
removed during sync with MAIL_INDEX_SYNC_FLAG_DROP_RECENT. This should be
enough, especially since it's not even possible to remove a single \Recent
flag - only update the first_recent_uid.

The code was also wrong: It was dropping \Recent flags even when
modify_type/flags combination didn't ask for it. Even if this was fixed,
there would still be race conditions with multiple processes since this
update is done without locking.

Fixes:
Error: Recent flags state corrupted for mailbox


Compare: https://github.com/dovecot/core/compare/caf029d36a82...e1c762cb4c9c


More information about the dovecot-cvs mailing list