postfix-users

Re: Postfix local problem

Subject: Re: Postfix local problem
From: Victor Duchovni <Victor.Duchovni AT MorganStanley DOT com>
To: postfix-users AT postfix DOT org
Date: Wed, 1 Aug 2007 17:06:46 -0400
On Wed, Aug 01, 2007 at 05:14:25PM -0300, Gustavo Lima wrote:

> Hi All,
> 
> I have a Debian 4.0 system running Postfix 2.3.8, installed by apt-get.
> It's protected by a mail gateway that filters virus and SPAM. It also
> looks for it's 3300 users on an Openldap 2.3.30 installed on the same box.

Are home directories using NFS? Is nsswitch using LDAP for account (passwd)
lookups?

> home_mailbox = Maildir/

    With NFS, (and especially automounters), you could be running into
    STALE NFS file handles...

    With LDAP you could be running into issues doing the passwd lookups.

> Aug 1 15:41:13 10.x.x.x postfix/local[23897]: deliver_switch[2]: local
> lino recip lino AT company.com DOT br exten deliver lino AT company.com DOT 
> br exp_from
> Aug 1 15:41:13 10.x.x.x postfix/local[23897]: deliver_alias[3]: local
> lino recip lino AT company.com DOT br exten deliver lino AT company.com DOT 
> br exp_from
> Aug 1 15:41:13 10.x.x.x postfix/local[23897]: deliver_alias:
> hash:/etc/aliases(0,lock|no_regsub|no_proxy|no_unauth|fold_fix): lino
> not found
> Aug 1 15:41:13 10.x.x.x postfix/local[23897]: deliver_dotforward[3]:
> local lino recip lino AT company.com DOT br exten deliver lino AT company.com 
> DOT br
> exp_from
> Aug 1 15:41:13 10.x.x.x postfix/local[23897]: deliver_mailbox[3]: local
> lino recip lino AT company.com DOT br exten deliver lino AT company.com DOT 
> br exp_from
> Aug 1 15:41:13 10.x.x.x postfix/local[23897]: been_here: mailbox lino: 0

This makes it as far as deliver_mailbox(), and should (given the home_mailbox
setting) after:

    if ((mbox_pwd = mypwnam(state.msg_attr.user)) == 0)
        return (NO);

proceed to deliver_maildir()

    ...
    } else if (*var_home_mailbox && LAST_CHAR(var_home_mailbox) == '/') {
        path = concatenate(usr_attr.home, "/", var_home_mailbox, (char *) 0);
        status = deliver_maildir(state, usr_attr, path);
        myfree(path);
    }

But the code aborts before getting that far, without logging a reason, so
this abort() is in code called from mypwnam(), the only way to do that
is a failure in getpwnam(), which is a non-Postfix issue...

> Aug 1 15:41:13 10.x.x.x postfix/qmgr[22028]: warning: premature
> end-of-input on private/local socket while reading input attribute name
> Aug 1 15:41:13 10.x.x.x postfix/qmgr[22028]: warning: private/local
> socket: malformed response
> Aug 1 15:41:13 10.x.x.x postfix/qmgr[22028]: warning: transport local
> failure -- see a previous warning/fatal/panic logfile record for the
> problem description
> Aug 1 15:41:13 10.x.x.x postfix/master[22026]: warning: process
> /usr/lib/postfix/local pid 23897 killed by signal 6
> Aug 1 15:41:13 10.x.x.x postfix/master[22026]: warning:
> /usr/lib/postfix/local: bad command startup -- throttling
> Aug 1 15:41:13 10.x.x.x postfix/qmgr[22028]: 3F2F61000A4:
> to=<lino AT company.com DOT br>, relay=none, delay=0.34, delays=0.27/0.07/0/0,
> dsn=4.3.0, status=deferred (unknown mail transport error)

Find out why getpwnam() aborts the local delivery agent...

-- 
        Viktor.

Disclaimer: off-list followups get on-list replies or get ignored.
Please do not ignore the "Reply-To" header.

To unsubscribe from the postfix-users list, visit
http://www.postfix.org/lists.html or click the link below:
<mailto:majordomo AT postfix DOT org?body=unsubscribe%20postfix-users>

If my response solves your problem, the best way to thank me is to not
send an "it worked, thanks" follow-up. If you must respond, please put
"It worked, thanks" in the "Subject" so I can delete these quickly.

<Prev in Thread] Current Thread [Next in Thread>