I finally found some time to look into this and find a solution. In brief, it
looks like the ndbm library on solaris 8 is not working with duplicate message
store, and complains every time a duplicate message is received. From what I
was reading in the documentation and archives, that probably won't surprise
people.
I thought I had compiled in Berkeley's DB software, but this turned out to not
be the case. Grabbing the latest version (3.2.9 at the moment), I recompiled
sasl (using version 1.5.24, since it must be better than 1.5.20 :-) ) with no
problems. However, imap 1.6.24 doesn't recognise the library.
The reason this happens is that DB 3 has a compatability header db_185.h. The
configure script tests for this, but then tests for dbopen in the library.
This function turns out to be an alias for __db185_open, so the test fails and
the database libraries are never used. I therefore changed the configure.in
to include an additional test if db_185.h is found. It now all compiles and
is working happily at the moment.
After patching the file, I needed to rerun autoconf and configure as follows:
env CPPFLAGS=-I/usr/local/BerkeleyDB.3.2/include
LDFLAGS=-L/usr/local/BerkeleyDB.3.2/lib ./configure
And then it all worked fine.
Stephen
The patch for the file is:
*** configure.in.dist Wed May 17 00:50:40 2000
--- configure.in Thu Mar 22 14:32:23 2001
***************
*** 615,621 ****
use_db=1],
AC_CHECK_LIB(db,dbopen,[AC_DEFINE(HAVE_LIBDB)
LIBS=" -ldb ${LIBS}"
! use_db=1]))
if test -z "use_db"; then
AC_CHECK_LIB(ndbm, dbm_open)
--- 615,626 ----
use_db=1],
AC_CHECK_LIB(db,dbopen,[AC_DEFINE(HAVE_LIBDB)
LIBS=" -ldb ${LIBS}"
! use_db=1],
! if test "$ac_cv_header_db_185_h" = yes; then
! AC_CHECK_LIB(db,__db185_open,[AC_DEFINE(HAVE_LIBDB)
! LIBS=" -ldb ${LIBS}"
! use_db=1])
! fi))
if test -z "use_db"; then
AC_CHECK_LIB(ndbm, dbm_open)
quoth Stephen Fischer:
| I'm getting occasional mail items that are not able to be delivered, with an
| error being returned from deliver to sendmail.
|
| Software: solaris 8, imap 1.6.24, sendmail 8.10.1, sasl 1.5.20
|
| Currently, there are two messages that are sitting there unable to be
| delivered and sendmail is retrying every 15 minutes.
|
| To me it looks like some database is corrupted and needs to be rebuilt. Both
| messages are addressed to this list, which has my address on it
| ([EMAIL PROTECTED]), which then gets redirected via a sieve script to
| archive.info-cyrus. I've tried 'reconstruct' on both my mailbox and on
| archive.info-cyrus (and in fact have totally removed and recreated
| archive.info-cyrus), but I'm still getting these problems.
|
| I've traced the message to the error message returned from dbm_store in
| deliver.c, but before I delve further I thought that other people may have
| a solution.
|
| Thanks,
| Stephen
|
|
|
| From /var/adm/imapd.log:
|
| Dec 14 11:01:01 gryphon deliver[2079]: [ID 685068 local6.debug] lmtp connection
|preauth'd as postman
| Dec 14 11:01:01 gryphon deliver[2079]: [ID 538540 local6.info] dupelim: eliminated
|duplicate message to archive.info-cyrus id <002d01c0650e$8993db90$0100a8c1@jeremy>
| Dec 14 11:01:01 gryphon last message repeated 1 time
| Dec 14 11:01:01 gryphon deliver[2080]: [ID 685068 local6.debug] lmtp connection
|preauth'd as postman
| Dec 14 11:01:01 gryphon deliver[2080]: [ID 538540 local6.info] dupelim: eliminated
|duplicate message to archive.info-cyrus id
|<[EMAIL PROTECTED]>
| Dec 14 11:01:01 gryphon last message repeated 1 time Dec 14 11:01:01 gryphon
|deliver[2080]: [ID 210031 local6.error] markdelivered: dbm_store: Bad file number
|
|
| From /var/adm/messages:
|
| Dec 14 11:01:01 gryphon sendmail[2078]: [ID 801593 mail.crit] eBDGhZx01862:
|SYSERR(root): mailer cyrus died with signal 10
| Dec 14 11:01:01 gryphon sendmail[2078]: [ID 801593 mail.crit] eBDGhZx01862:
|SYSERR(root): endmailer cyrus: wait: No child processes
| Dec 14 11:01:01 gryphon deliver[2080]: [ID 210031 local6.error] markdelivered:
|dbm_store: Bad file number
| Dec 14 11:01:01 gryphon sendmail[2078]: [ID 801593 mail.crit] eBDDnIx01804:
|SYSERR(root): mailer cyrus died with signal 10
| Dec 14 11:01:01 gryphon sendmail[2078]: [ID 801593 mail.crit] eBDDnIx01804:
|SYSERR(root): endmailer cyrus: wait: No child processes
|
|
| When trying to deliver it manually:
|
| # /usr/lib/sendmail -q -v -oRsfi
|
| Running /var/spool/mqueue/eBDGhZx01862 (sequence 1 of 2)
| <[EMAIL PROTECTED]>... Connecting to cyrus...
| 220 gryphon LMTP ready
| >>> LHLO gryphon.comms.unsw.edu.au
| 250-gryphon
| 250-8BITMIME
| 250-ENHANCEDSTATUSCODES
| 250-AUTH PLAIN EXTERNAL
| 250 PIPELINING
| >>> MAIL From:<[EMAIL PROTECTED]>
| 250 2.1.0 ok
| >>> RCPT To:<sfi>
| 250 2.1.5 ok
| >>> DATA
| 354 go ahead
| >>> .
| >>> QUIT
| <[EMAIL PROTECTED]>... Deferred: Connection reset by cyrus
|
| Running /var/spool/mqueue/eBDDnIx01804 (sequence 2 of 2)
| <[EMAIL PROTECTED]>... Connecting to cyrus...
| 220 gryphon LMTP ready
| >>> LHLO gryphon.comms.unsw.edu.au
| 250-gryphon
| 250-8BITMIME
| 250-ENHANCEDSTATUSCODES
| 250-AUTH PLAIN EXTERNAL
| 250 PIPELINING
| >>> MAIL From:<[EMAIL PROTECTED]>
| 250 2.1.0 ok
| >>> RCPT To:<sfi>
| 250 2.1.5 ok
| >>> DATA
| 354 go ahead
| >>> .
| >>> QUIT
| <[EMAIL PROTECTED]>... Deferred: Connection reset by cyrus
| Closing connection to cyrus
|