You can't sync a mailbox without GUID for messages. You need to upgrade the mailboxes before you can use them for replication. The GUID is used for replication - if we allowed zero GUIDs, then every message would deduplicate to the same message! On Tue, Aug 2, 2016, at 07:56, Kenneth Marshall via Info-cyrus wrote: > Hi Cyrus Developers, > > Thank you for your patch to address the folder move problem between > un-reconstructed mailboxes after the 2.3.16 -> 2.5.9 upgrade. I am > not sure, but it looks like there may be another overly aggressive > check. I keep getting these fatal errors from sync_client: > > Aug 1 16:24:16 cyrus1a imap/sync_client[14886]: SYNCERROR: guid mismatch user.robot 1696 (56412de8678bfb53f6cdb5fe4502031af5484056 0000000000000000000000000000000000000000) > Aug 1 16:24:16 cyrus1a imap/sync_client[14886]: SYNCERROR: guid mismatch user.robot 1697 (1b0024218a4419973b83ae3e84ac7133a4ab7d40 0000000000000000000000000000000000000000) > Aug 1 16:24:16 cyrus1a imap/sync_client[14886]: SYNCERROR: guid mismatch user.robot 1698 (f17084425d83bccb28a4dfa195846c7ef88c7567 0000000000000000000000000000000000000000) > Aug 1 16:24:16 cyrus1a imap/sync_client[14886]: SYNCERROR: guid mismatch user.robot 1699 (7a751e41e1d3a58e541298ab724be4c29d96e49d 0000000000000000000000000000000000000000) > Aug 1 16:24:16 cyrus1a imap/sync_client[14886]: SYNCERROR: guid mismatch user.robot 1700 (724a013d0ae97d27a1da33832487df1719681659 0000000000000000000000000000000000000000) > Aug 1 16:24:16 cyrus1a imap/sync_client[14886]: Fatal error: Internal error: assertion failed: imap/mailbox.c: 2850: !message_guid_isnull(&record->guid) > > And then the sync_client has to be run manually and if lucky, it will > process the full log successfully. I was looking in imap/mailbox.c > and it looks like the assert at line 2850 may need a similar override > for non-upgraded folders: > > -----------imap/mailbox.c--------------- > /* append a single message to a mailbox - also updates everything > * automatically. These two functions are the ONLY way to modify > * the contents or tracking fields of a message */ > EXPORTED int mailbox_append_index_record(struct mailbox *mailbox, > struct index_record *record) > { > indexbuffer_t ibuf; > unsigned char *buf = ibuf.buf; > size_t offset; > int r; > int n; > struct utimbuf settime; > uint32_t recno; > > assert(mailbox_index_islocked(mailbox, 1)); > > /* Append MUST be a higher UID than any we've yet seen */ > assert(record->uid > mailbox->i.last_uid) > > /* Append MUST have a message with data */ > assert(record->size); > > =====> /* GUID must not be null */ > =====> assert(!message_guid_isnull(&record->guid)); > > /* belt AND suspenders - check the previous record too */ > if (mailbox->i.num_records) { > struct index_record prev; > > -----------imap/mailbox.c--------------- > > What do you think? > > Regards, > Ken > ---- > Cyrus Home Page: http://www.cyrusimap.org/ > List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/ > To Unsubscribe: > https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus -- Bron Gondwana brong@xxxxxxxxxxx ---- Cyrus Home Page: http://www.cyrusimap.org/ List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/ To Unsubscribe: https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus