Hello I updated to 5.5 i386 and built from stable source OPENBSD_5_5. pkg_delete cyrus-imapd and rebuild from ports.
cyrus-imapd lmtpd crash and sendmail can not deliver to cyrusv2. — Jun 15 00:17:14 saturn master[7397]: about to exec /usr/local/libexec/cyrus-imap d/lmtpd Jun 15 00:17:14 saturn lmtpunix[7397]: executed Jun 15 00:17:14 saturn lmtpunix[7397]: skiplist: checkpointed /var/imap/deliver. db (22 records, 3380 bytes) in 0 seconds Jun 15 00:17:14 saturn lmtpunix[7397]: skiplist: checkpointed /var/imap/statusca che.db (0 records, 144 bytes) in 0 seconds Jun 15 00:17:14 saturn lmtpunix[7397]: accepted connection Jun 15 00:17:14 saturn lmtpunix[7397]: lmtp connection preauth'd as postman Jun 15 00:17:15 saturn master[9420]: process 7397 exited, signaled to death by 11 Jun 15 00:17:15 saturn master[9420]: service lmtpunix pid 7397 in BUSY state: terminated abnormally — I found where lmtpd crash at. imap/mailbox.c line 1963 — snprintf(buf, 4096, "%u " MODSEQ_FMT " %lu (%u) %lu %s", record->uid, record->modseq, record->last_updated, flagcrc, record->internaldate, message_guid_encode(&record->guid)); — and MODSEQ_FMT defined at lib/util.h — #ifdef HAVE_LONG_LONG_INT typedef unsigned long long int bit64; typedef unsigned long long int modseq_t; #define MODSEQ_FMT "%llu" #define atomodseq_t(s) strtoull(s, NULL, 10) #else typedef unsigned long int modseq_t; #define MODSEQ_FMT "%lu" #define atomodseq_t(s) strtoul(s, NULL, 10) #endif — OpenBSD has long long int, and MODSEQ_FMT is defined “%llu”. I tried to modify source mailbox.c — snprintf(buf, 4096, "%u %llu %lu (%u) %lu %s”, … this code crash — — snprintf(buf, 4096, "%u %lu %lu (%u) %lu %s”, … this code work correct!!! — Then, I added following patch to ports patch-lib_util_h — *** lib/util.h.orig Sun Jun 15 00:23:58 2014 --- lib/util.h Sun Jun 15 00:18:43 2014 *************** *** 68,74 **** #ifdef HAVE_LONG_LONG_INT typedef unsigned long long int bit64; typedef unsigned long long int modseq_t; ! #define MODSEQ_FMT "%llu" #define atomodseq_t(s) strtoull(s, NULL, 10) #else typedef unsigned long int modseq_t; --- 68,74 ---- #ifdef HAVE_LONG_LONG_INT typedef unsigned long long int bit64; typedef unsigned long long int modseq_t; ! #define MODSEQ_FMT "%lu" #define atomodseq_t(s) strtoull(s, NULL, 10) #else typedef unsigned long int modseq_t; — and rebuild ports. Now, sendmail deliver to cyrusv2 correctly. Is my solution right ? --- Takaaki Kobayashi takaaki.kobaya...@nifty.com