Bug#776139: mailbox annotations loss when moving mailbox

GALAMBOS Daniel dancsa at dancsa.hu
Sat Jan 24 11:58:36 UTC 2015


Package: cyrus-imapd-2.4

Cyrus imapd loses annotations like expiration data, if the given mailbox
moved to another partition.
Moving and renaming mailbox uses the same command, if no moving just
renaming happens, the annotations are kept.

Transcription from cyradm is attached.   Annotations are stored by cyrus
in a server-global database, when renaming happens, it needed to rename
the keys of it.
In imap/imapd.c:5708 the renaming function called unconditionally
regardless of the name changed or not, but probably renaming to the same
name should not delete it.

The annotate.c and the relevant part of imapd.c haven't changed between
2.4.16-4+deb7u2 and 2.4.17+caldav~beta10-16, so probably jessie also
affected

--
Daniel Galambos / Dancsa
-------------- next part --------------
localhost> info user.asd
{user.asd}:
  duplicatedeliver: false
  lastpop:  
  lastupdate: 24-Jan-2015 01:22:05 +0100
  partition: b
  pop3newuidl: true
  sharedseen: false
  size: 0
localhost> mboxcfg user.asd expire 10
localhost> info user.asd
{user.asd}:
  duplicatedeliver: false
  expire: 10
  lastpop:  
  lastupdate: 24-Jan-2015 01:22:05 +0100                                                                                                                                                        
  partition: b                                                                                                                                                                                  
  pop3newuidl: true                                                                                                                                                                             
  sharedseen: false
  size: 0
localhost> 
localhost> renm user.asd user.asd a
localhost> info user.asd
{user.asd}:
  duplicatedeliver: false
  lastpop:  
  lastupdate: 24-Jan-2015 12:02:08 +0100
  partition: a
  pop3newuidl: true
  sharedseen: false
  size: 0
# The same happens when the expiration set on a submailbox.
# Expected behavior: expire field should be present with the same value

localhost> mboxcfg user.asd.a expire 10
localhost> renm user.asd.a user.asd.b
localhost> info user.asd.b
{user.asd.b}:
  duplicatedeliver: false
  expire: 10
  lastpop:  
  lastupdate: 24-Jan-2015 12:04:46 +0100
  partition: c
  pop3newuidl: true
  sharedseen: false
  size: 0


More information about the Pkg-Cyrus-imapd-Debian-devel mailing list