-----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]

Reply via email to