Eventually worked out that if a message is delivered by LMTP to several
recipients, then the first recipient gets a correct ENVELOPE, but all the following recipients get an lcase()ed version. The reason is that append_fromstage() in 2.3 reuses the "struct body" calculated for the first recipient. Unfortunately there are some lcase() calls in the middle of message_write_cache() which overwrite fields in that structure.

The incorrect cyrus.cache entries are replicated as is by sync_client "UPLOAD PARSED", so master and replica are typically both incorrect.

I'm running a mailstore with fastmail.fm patch for  uuidmode: md5.

Should I worry?  It seems to me I should.

I don't think so. This only affects cache records. Our uuidmode patch only calculates the md5 for the message body. The "make_md5" David mentioned is a completely separate script he runs and maintains to calculate the md5's of messages and stores the values separately to the existing cyrus structures.

At least I believe that's the case, I'm sure David will comment.

Rob

Reply via email to