[dovecot/core] 505561: imap: If mailbox is inconsistent after syncing, do...

GitHub noreply at github.com
Tue Oct 4 21:00:11 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 505561860cdfee4eac51469fd27a59983ef72e8e
      https://github.com/dovecot/core/commit/505561860cdfee4eac51469fd27a59983ef72e8e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

  Changed paths:
    M src/imap/imap-sync.c

  Log Message:
  -----------
  imap: If mailbox is inconsistent after syncing, don't try to sync message counts.

This fixes (e.g. after doveadm force-resync):
Panic: Message count decreased


  Commit: 2d33fd7fc78aae43175330c66636332de615c69f
      https://github.com/dovecot/core/commit/2d33fd7fc78aae43175330c66636332de615c69f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

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

  Log Message:
  -----------
  lib-storage: Make sure mailbox_sync*() fails if view is inconsistent afterwards.


  Commit: 407d64647d77771080eb75f800162014927f10c6
      https://github.com/dovecot/core/commit/407d64647d77771080eb75f800162014927f10c6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

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

  Log Message:
  -----------
  lib-index: Fixed potential assert-crash when view syncing sees a reset marker.

It should never try to use main index map at that point, because
view_sync_have_expunges() looks changes only before the reset marker.
Fixes:

Error: Index .../dovecot.index lost messages without expunging (36 -> 27)


  Commit: 83cd96ee87e8fb88b2467a1c51604961a5db3d71
      https://github.com/dovecot/core/commit/83cd96ee87e8fb88b2467a1c51604961a5db3d71
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

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

  Log Message:
  -----------
  lib-index: When finding a view is reset, don't attempt any further syncing.

This could cause various errors to be logged, such as:
Error: Append with UID 7103, but next_uid = 7242


  Commit: 96d1b0c8126121fdceff98144c932433e3fdeb92
      https://github.com/dovecot/core/commit/96d1b0c8126121fdceff98144c932433e3fdeb92
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

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

  Log Message:
  -----------
  lib-index: If view syncing sees index is reset, always mark the view as inconsistent.

Not only when the mailbox has messages, because that could still mess up
assumptions about UIDs. A somewhat better check could have been to do this
only when next_uid>1 (= there have been messages at some point in this
mailbox), but it's safer to just always mark the view as inconsistent.


Compare: https://github.com/dovecot/core/compare/458d877d84f6...96d1b0c81261


More information about the dovecot-cvs mailing list