-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Excellent news, thanks! Is there a ticket I can follow for updates?
On 9/1/2014 3:31 AM, Gilles Chehade wrote: > Just got back from vacations ;-) > > So, regarding: > > delivery: TempFail for 4ff505c9976626c9: > from=<[email protected]>, to=<[email protected]>, user=nolan, > method=lmtp, delay=4s, stat=Error ("smtpd: No input received: No > such file or directory") > > Nevermind the No such file or directory, that part is bogus as I > just realized. You're hitting this because the LMTP client has read > data from the LMTP server but the data didn't come as a full line. > > This seems to be a bug in the read loop logic of the delivery_lmtp > backend, I have a fix but I'll check with the author first. > > The TempFail you observe is a direct result of this error. > > > > On Thu, Aug 21, 2014 at 11:57:42AM -0500, Nolan Darilek wrote: >> Hey, never got a response to this. Just wondering if anyone had >> any thoughts? I'd like to migrate to an OpenSMTPD/DBMail setup >> but I literally don't know what my next step in debugging this >> should be. >> >> Thanks. >> >> On 7/10/2014 12:16 PM, Nolan Darilek wrote: >>> Hello, >>> >>> I'm trying to build a setup where OpenSMTPD authenticates >>> against and delivers to DBMail, with all components running in >>> Docker containers. It seems I'm almost there. OpenSMTPD queries >>> the DBMail database for domains/users/email addresses, accepts >>> mail for delivery, but returns temporary failures alternating >>> between "no such file or directory" and "resource temporarily >>> unavailable." I'm trying to deliver mail to dbmail-lmtp. >>> >>> I ran smtpd with -T all. The file is huge, but I'll include >>> what I think is the relevant section. Is there somewhere else I >>> might look to determine just what file or resource isn't being >>> found? Since the file is so huge I don't know if I should be >>> checking a different section. >>> >>> I'll also include my configs. I'm not sure if I want to deliver >>> or relay to dbmail-lmtp. I'm also not sure if I should be using >>> lmtp://lmtp:24 or lmtp:24 as the destination. >>> >>> Another thing I'm uncertain of is whether OpenSMTPD does >>> lookups against /etc/hosts. My Docker setup links the LMTP >>> container with OpenSMTPD's, and writes a host entry for "lmtp" >>> to /etc/hosts. I can ping lmtp from the container and can >>> telnet to port 24, but if OpenSMTPD does its lookups in a way >>> that disregards /etc/hosts then I'll need a different lookup >>> solution. I don't think this is the case, as I got the same >>> results with a hard-coded IP, but I included it for >>> completeness' sake. >>> >>> I'll happily provide additional information if asked, I don't >>> know quite what is relevant. >>> >>> Thanks. >>> >>> --- smtpd.conf --- >>> >>> table domains sqlite:/usr/local/etc/sqlite.conf # table >>> sqlaliases sqlite:/usr/local/etc/sqlite.conf table users >>> sqlite:/usr/local/etc/sqlite.conf >>> >>> pki thewordnerd.info certificate "/etc/ssl/certs/mail.crt" pki >>> thewordnerd.info key "/etc/ssl/private/mail.key" >>> >>> listen on "0.0.0.0" secure pki thewordnerd.info auth-optional >>> >>> accept from any for domain <domains> userbase <users> deliver >>> to lmtp "lmtp:24" accept for any relay >>> >>> --- sqlite.conf --- >>> >>> dbpath /var/lib/dbmail/dbmail.db # query_alias select alias >>> from alias where user=?; query_domain select distinct >>> substr(alias, instr(alias, '@')+1) as domain from >>> dbmail_aliases where domain = ?; query_userinfo select 1000 as >>> uid, 1000, '/home' where uid != ?; query_credentials select >>> userid, passwd from dbmail_users where userid = ?; >>> >>> --- Trace --- >>> >>> smtp-in: Accepted message 4ff505c9 on session >>> 4ae127e6fcb95a56: from=<[email protected]>, >>> to=<[email protected]>, size=5, ndest=1, proto=ESMTP smtp: >>> 0x144d4a0: STATE_BODY -> STATE_HELO smtp: 0x144d4a0: IO_LOWAT >>> <io:0x144d4e8 fd=4 to=300000 fl=W ib=0 ob=0> imsg: mfa <- smtp: >>> IMSG_MFA_EVENT_COMMIT (len=9) filter: new query QT_EVENT >>> HOOK_COMMIT filter: draining query >>> 1930dbb42ff6d329[QT_EVENT,HOOK_COMMIT] filter: freeing query >>> 1930dbb42ff6d329 imsg: queue <- scheduler: IMSG_MDA_DELIVER >>> (len=9) mproc: queue -> control : 58 IMSG_STAT_INCREMENT mproc: >>> queue -> mda: allocating 128 mproc: queue -> mda: realloc 128 >>> -> 512 mproc: queue -> mda : 381 IMSG_MDA_DELIVER imsg: mda <- >>> queue: IMSG_MDA_DELIVER (len=381) mproc: mda -> lka: allocating >>> 128 mproc: mda -> lka : 23 IMSG_LKA_USERINFO mproc: mda -> >>> control : 43 IMSG_STAT_INCREMENT mproc: mda -> control : 47 >>> IMSG_STAT_INCREMENT mproc: mda -> control : 46 >>> IMSG_STAT_INCREMENT imsg: lka <- mda: IMSG_LKA_USERINFO >>> (len=23) lookup: lookup "nolan" as USERINFO in table proc:users >>> -> "nolan:1000:1000:/home" mproc: lka -> mda: allocating 128 >>> mproc: lka -> mda: realloc 128 -> 2048 mproc: lka -> mda : 1087 >>> IMSG_LKA_USERINFO imsg: mda <- lka: IMSG_LKA_USERINFO >>> (len=1087) mproc: mda -> control : 46 IMSG_STAT_DECREMENT >>> mproc: mda -> control : 46 IMSG_STAT_INCREMENT mproc: mda -> >>> queue: allocating 128 mproc: mda -> queue : 14 >>> IMSG_QUEUE_MESSAGE_FD imsg: queue <- mda: IMSG_QUEUE_MESSAGE_FD >>> (len=14) queue-backend: queue_message_fd_r(4ff505c9) -> 4 >>> mproc: queue -> mda : 9 IMSG_QUEUE_MESSAGE_FD imsg: mda <- >>> queue: IMSG_QUEUE_MESSAGE_FD (len=9, fd=4) mproc: mda -> >>> parent: allocating 128 mproc: mda -> parent: realloc 128 -> >>> 4096 mproc: mda -> parent : 3166 IMSG_PARENT_FORK_MDA imsg: >>> parent <- mda: IMSG_PARENT_FORK_MDA (len=3166) mproc: parent -> >>> mda: allocating 128 mproc: parent -> mda : 9 >>> IMSG_PARENT_FORK_MDA imsg: mda <- parent: IMSG_PARENT_FORK_MDA >>> (len=9, fd=5) mda: 0x13f98c0: IO_LOWAT <io:0x13f98d8 fd=5 to=-1 >>> fl=W ib=0 ob=0> mda: 0x13f98c0: IO_LOWAT <io:0x13f98d8 fd=5 >>> to=-1 fl=W ib=0 ob=0> imsg: control <- scheduler: >>> IMSG_STAT_DECREMENT (len=60) ramstat: decrement: >>> scheduler.ramqueue.update ramstat: scheduler.ramqueue.update >>> (0x13e9711): 1 -> 0 imsg: control <- scheduler: >>> IMSG_STAT_DECREMENT (len=62) ramstat: decrement: >>> scheduler.envelope.incoming ramstat: >>> scheduler.envelope.incoming (0x13e9711): 1 -> 0 imsg: control >>> <- scheduler: IMSG_STAT_INCREMENT (len=53) ramstat: increment: >>> scheduler.envelope ramstat: scheduler.envelope (0x13f8e91): 0 >>> -> 1 imsg: control <- scheduler: IMSG_STAT_INCREMENT (len=62) >>> ramstat: increment: scheduler.envelope.inflight ramstat: >>> scheduler.envelope.inflight (0x13f8c11): 0 -> 1 imsg: control >>> <- queue: IMSG_STAT_INCREMENT (len=58) ramstat: increment: >>> queue.evpcache.load.hit ramstat: queue.evpcache.load.hit >>> (0x13f8c11): 0 -> 1 imsg: control <- mda: IMSG_STAT_INCREMENT >>> (len=43) ramstat: increment: mda.user ramstat: mda.user >>> (0x13f8e91): 0 -> 1 imsg: control <- mda: IMSG_STAT_INCREMENT >>> (len=47) ramstat: increment: mda.envelope ramstat: mda.envelope >>> (0x13f8e91): 0 -> 1 imsg: control <- mda: IMSG_STAT_INCREMENT >>> (len=46) ramstat: increment: mda.pending ramstat: mda.pending >>> (0x13f8e91): 0 -> 1 imsg: control <- mda: IMSG_STAT_DECREMENT >>> (len=46) ramstat: decrement: mda.pending ramstat: mda.pending >>> (0x13f8e91): 1 -> 0 imsg: control <- mda: IMSG_STAT_INCREMENT >>> (len=46) ramstat: increment: mda.running ramstat: mda.running >>> (0x13f8e91): 0 -> 1 mproc: scheduler -> control : 59 >>> IMSG_STAT_SET mproc: scheduler -> control : 57 IMSG_STAT_SET >>> mproc: mta -> control : 53 IMSG_STAT_SET mproc: mta -> control >>> : 49 IMSG_STAT_SET mproc: mta -> control : 52 IMSG_STAT_SET >>> mproc: mta -> control : 51 IMSG_STAT_SET mproc: parent -> >>> control : 56 IMSG_STAT_SET mproc: parent -> control : 52 >>> IMSG_STAT_SET mproc: parent -> control : 52 IMSG_STAT_SET >>> mproc: parent -> control : 52 IMSG_STAT_SET mproc: parent -> >>> control : 52 IMSG_STAT_SET mproc: parent -> control : 54 >>> IMSG_STAT_SET mproc: parent -> control : 53 IMSG_STAT_SET >>> ramstat: set: buffer.scheduler.control ramstat: >>> buffer.scheduler.control: n/a -> n/a ramstat: set: >>> buffer.scheduler.queue ramstat: buffer.scheduler.queue: n/a -> >>> n/a ramstat: set: buffer.mta.control ramstat: >>> buffer.mta.control: n/a -> n/a ramstat: set: buffer.mta.lka >>> ramstat: buffer.mta.lka: n/a -> n/a ramstat: set: >>> buffer.mta.parent ramstat: buffer.mta.parent: n/a -> n/a >>> ramstat: set: buffer.mta.queue ramstat: buffer.mta.queue: n/a >>> -> n/a ramstat: set: buffer.parent.control ramstat: >>> buffer.parent.control: n/a -> n/a ramstat: set: >>> buffer.parent.lka ramstat: buffer.parent.lka: n/a -> n/a >>> ramstat: set: buffer.parent.mda ramstat: buffer.parent.mda: n/a >>> -> n/a ramstat: set: buffer.parent.mfa ramstat: >>> buffer.parent.mfa: n/a -> n/a ramstat: set: buffer.parent.mda >>> ramstat: buffer.parent.mda: n/a -> n/a ramstat: set: >>> buffer.parent.queue ramstat: buffer.parent.queue: n/a -> n/a >>> mproc: lka -> control : 53 IMSG_STAT_SET mproc: lka -> control >>> : 49 IMSG_STAT_SET mproc: lka -> control : 49 IMSG_STAT_SET >>> mproc: lka -> control : 52 IMSG_STAT_SET mproc: lka -> control >>> : 51 IMSG_STAT_SET mproc: lka -> control : 50 IMSG_STAT_SET >>> ramstat: set: buffer.parent.smtp ramstat: buffer.parent.smtp: >>> n/a -> n/a ramstat: set: buffer.lka.control ramstat: >>> buffer.lka.control: n/a -> n/a ramstat: set: buffer.lka.mda >>> ramstat: buffer.lka.mda: n/a -> n/a ramstat: set: >>> buffer.lka.mda ramstat: buffer.lka.mda: n/a -> n/a ramstat: >>> set: buffer.lka.parent ramstat: buffer.lka.parent: n/a -> n/a >>> ramstat: set: buffer.lka.queue ramstat: buffer.lka.queue: n/a >>> -> n/a ramstat: set: buffer.lka.smtp ramstat: buffer.lka.smtp: >>> n/a -> n/a mproc: mda -> control : 53 IMSG_STAT_SET mproc: mda >>> -> control : 49 IMSG_STAT_SET mproc: mda -> control : 52 >>> IMSG_STAT_SET mproc: mda -> control : 51 IMSG_STAT_SET ramstat: >>> set: buffer.mda.control ramstat: buffer.mda.control: n/a -> >>> n/a ramstat: set: buffer.mda.lka ramstat: buffer.mda.lka: n/a >>> -> n/a ramstat: set: buffer.mda.parent ramstat: >>> buffer.mda.parent: n/a -> n/a ramstat: set: buffer.mda.queue >>> ramstat: buffer.mda.queue: n/a -> n/a mproc: smtp -> control : >>> 54 IMSG_STAT_SET mproc: smtp -> control : 50 IMSG_STAT_SET >>> mproc: smtp -> control : 50 IMSG_STAT_SET mproc: smtp -> >>> control : 53 IMSG_STAT_SET mproc: smtp -> control : 52 >>> IMSG_STAT_SET ramstat: set: buffer.smtp.control ramstat: >>> buffer.smtp.control: n/a -> n/a ramstat: set: buffer.smtp.lka >>> ramstat: buffer.smtp.lka: n/a -> n/a ramstat: set: >>> buffer.smtp.mfa ramstat: buffer.smtp.mfa: n/a -> n/a ramstat: >>> set: buffer.smtp.parent ramstat: buffer.smtp.parent: n/a -> >>> n/a ramstat: set: buffer.smtp.queue ramstat: buffer.smtp.queue: >>> n/a -> n/a mproc: mfa -> control : 53 IMSG_STAT_SET mproc: mfa >>> -> control : 52 IMSG_STAT_SET mproc: mfa -> control : 50 >>> IMSG_STAT_SET ramstat: set: buffer.mfa.control ramstat: >>> buffer.mfa.control: n/a -> n/a ramstat: set: buffer.mfa.parent >>> ramstat: buffer.mfa.parent: n/a -> n/a ramstat: set: >>> buffer.mfa.smtp ramstat: buffer.mfa.smtp: n/a -> n/a mproc: >>> queue -> control : 55 IMSG_STAT_SET mproc: queue -> control : >>> 51 IMSG_STAT_SET mproc: queue -> control : 51 IMSG_STAT_SET >>> mproc: queue -> control : 51 IMSG_STAT_SET mproc: queue -> >>> control : 54 IMSG_STAT_SET mproc: queue -> control : 57 >>> IMSG_STAT_SET mproc: queue -> control : 52 IMSG_STAT_SET >>> ramstat: set: buffer.queue.control ramstat: >>> buffer.queue.control: n/a -> n/a ramstat: set: >>> buffer.queue.lka ramstat: buffer.queue.lka: n/a -> n/a ramstat: >>> set: buffer.queue.mda ramstat: buffer.queue.mda: n/a -> n/a >>> ramstat: set: buffer.queue.mda ramstat: buffer.queue.mda: n/a >>> -> n/a ramstat: set: buffer.queue.parent ramstat: >>> buffer.queue.parent: n/a -> n/a ramstat: set: >>> buffer.queue.scheduler ramstat: buffer.queue.scheduler: n/a -> >>> n/a ramstat: set: buffer.queue.smtp ramstat: buffer.queue.smtp: >>> n/a -> n/a mproc: parent -> mda : 28 IMSG_MDA_DONE imsg: mda <- >>> parent: IMSG_MDA_DONE (len=28, fd=4) mproc: mda -> queue : 69 >>> IMSG_DELIVERY_TEMPFAIL delivery: TempFail for 4ff505c9976626c9: >>> from=<[email protected]>, to=<[email protected]>, >>> user=nolan, method=lmtp, delay=4s, stat=Error ("smtpd: No input >>> received: No such file or directory") >>> >>> >> >> >> -- You received this mail because you are subscribed to >> [email protected] To unsubscribe, send a mail to: >> [email protected] >> > -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJUBzZEAAoJEAIF+g7+rYRXitwP/3+UMEfYcH2yKAieOcpafPp5 28P0aPDs4MSu6L+Wt5DUq5cYd8eyOobC3MmyFtox7Uca6E6eyMTOWB0+QP9Qq3jt xrRHdJ+dLdH8kbC0iBH3qv47dV6BZKiY1NyzCCuQFLvPPfPMZEhrTMM3Hc2IbuJu rno6SxzUx4rbX7g3wpoo0mtEAkJV1x/ONA0BHxO18ECZuc6D/qRTvOzPJqV3AXtj TjsEUHkO7IfdcGuSpjxdxgq0eA8IMhSmgVfQf8snfXxIH5IbvZUU8BLcIfwYhXGE pXO/Xs5HK4QHNL4oXZxKN2eUWGnUcypdTEMe5pvtoZAE6YD4NLY913MoA4K5Zc8D QjTJjCE0OufIAFinBVm6Vdeh2iFA0FhDauHWZkaJ6SUza/QAQIoOh14IeLEhaUnP vektJ1XU+9gOPyWIKYIBu72OL5HkZoIHLKEsTUxzPBJsVoeSYo3GVM8KfmNlSKqr tRegYq+BqMRg2ZiwSC338vaJGenJFZhbPx6cZ6zr3M5jDE0ckTF5GQlF15qgZF45 ljkQM0/uaWUJFFvowmVX0ZEsoSE7LfbIyEYF0Kc7ggKmVmLYowuWAeAqTnKOUgUF YFWPQvmkyHxjp+shegUz+hU+dqd51+oOZEN71UzCJz/fYuLcH72sZ6WIMc5gqoi/ an8i0LnwOpPhtO8C++60 =BW9Q -----END PGP SIGNATURE----- -- You received this mail because you are subscribed to [email protected] To unsubscribe, send a mail to: [email protected]
