Cyrus.index problem

ZABLOCKI, T (T) zablocki at alcatel-lucent.com
Thu Dec 18 09:45:51 EST 2008


Guys,

What I found in index.c:

static int index_storeflag(struct mailbox *mailbox,
                                unsigned msgno, void *rock)

That check is made on particular mailbox:

/* Check the modseq against unchangedsince */
if (MODSEQ(msgno) > storeargs->unchangedsince) return 0;

It blocks update of flags.

But why is that check here unconditional, I may do not have mod sequences enabled on my mailbox. Shouldn't it be:

        if (mailbox->options & OPT_IMAP_CONDSTORE) {
                if (MODSEQ(msgno) > storeargs->unchangedsince) return 0;
        }
??


* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID AUTH=ANONYMOUS SASL-IR] ms14 Cyrus IMAP4 v2.3.7 server ready
1 login 17431341000 1234
1 OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID LOGINDISABLED ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE IDLE URLAUTH] User logged in
2 select inbox
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen New QMboxSize QMsgCount SenderOffComplex Voice TUISkipped SenderOnComplex Accessed Expired AnyPathSeen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted New QMboxSize QMsgCount SenderOffComplex Voice TUISkipped SenderOnComplex Accessed Expired AnyPathSeen \*)]
* 4 EXISTS
* 4 RECENT
* OK [UNSEEN 1]
* OK [UIDVALIDITY 1185655835]
* OK [UIDNEXT 664]
* OK [NOMODSEQ] Sorry, modsequences have not been enabled on this mailbox

I found some mailboxes which doesn't have modsequences but it has MODSEQ>unchangedsince and that check block update of any flag in that mailbox.
Do you have an idea why I am having such sitiuation?

BTW: I use cyrus 2.3.7 but this check is unconditional also in 2.3.13.


Regards,
Tomasz


More information about the Cyrus-devel mailing list