assertion failure with exim LMTP (message_guid_isnull())

Luca Ceresoli luca at lucaceresoli.net
Tue Jul 19 11:16:57 EDT 2011


Hi,

I'm trying to set up cyrus-imapd 2.4.10 on an embedded platform (as
somebody around here might remember).
Currently Cyrus-imapd is kind of running: port 143 is open, I can
connect as admin and create mailboxes etc.

So I moved to setting up exim in order to listen for incoming mail and
feed it to Cyrus via LMTP over TCP.
When I send an e-mail to exim it is apparently accepted (250 OK), but
it does not show up in the destination mailbox.
The exim log says:

 > ...
 > 2000-01-01 03:45:42 124FTv-00008m-IF == 00000001 at vip.local
R=cyrus_vdom T=cyrus_ltcp defer (0): LMTP error after DATA: 421 4.3.0
lmtpd: Internal error: assertion failed: mailbox.c: 2144:
!message_guid_isnull(&record->guid)
 > ...

This assertion comes from the cyrus-imapd code. It was introduced by:

   commit e88cfbdbe442cb10c71ae93a64610d505e57f05d
   Author: Bron Gondwana <brong at opera.com>
   Date: Thu Jun 23 15:27:08 2011 +0200

     mailbox: ensure appended GUID is not all zeros

What is the guid, and who should set it?

I couldn't find a lot of info about what the guid in Cyrus, but I
suppose it's something that Cyrus generated internally to identify
messages, right?

So I'm not sure where the cause of the problem is, but since the
assert() is in the Cyrus code I thought I'd ask here first. I also
don't know which details can help understanding the problem, so I'll
stop for now. Please ask for any relevant details.

Given the mentioned commit is quite recent (after 2.4.9), I tried to use
2.4.9 and it worked. While it's good to have a workaround, I would like
to understand what I'm doing wrong with 2.4.10, or if this is a bug in
cyrus-imapd.

Thanks in advance,
Luca


More information about the Info-cyrus mailing list