--On Thursday, September 01, 2011 2:03 PM -0400 Victor Duchovni <victor.ducho...@morganstanley.com> wrote:

So the question is what is it that is causing postdrop to loop while
trying to create the queue file?

    /*
     * Create a file with a temporary name that does not collide. The
process      * ID alone is not sufficiently unique: maildrops can be
shared via the      * network. Not that I recommend using a network-based
queue, or having      * multiple hosts write to the same queue, but we
should try to avoid      * losing mail if we can.
     *
     * If someone is racing against us, try to win.
     */
    for (;;) {
        GETTIMEOFDAY(tp);
        vstring_sprintf(temp_path, "%s/%d.%d", queue_name,
                        (int) tp->tv_usec, pid);
        if ((fd = open(STR(temp_path), O_RDWR | O_CREAT | O_EXCL, mode))
>= 0)             break;
        if (errno == EEXIST || errno == EISDIR)
            continue;
        msg_warn("%s: create file %s: %m", myname, STR(temp_path));
        sleep(10);
    }

Are the "create file" warnings found in the system log?

Yes:

Mar 22 19:24:52 domain postfix/postdrop[3624]: warning: mail_queue_enter: create file maildrop/976917.3624: No such file or directory

for example.

However, what is odd about this is we have postfix explicitly use a queue directory that is always present (/opt/zimbra/data/postfix/spool/), so it shouldn't be encountering any errors creating a file. :/

I was also wrong about the shutdown order -- We shutdown postfix first, and then the other services.

--Quanah

--

Quanah Gibson-Mount
Sr. Member of Technical Staff
Zimbra, Inc
A Division of VMware, Inc.
--------------------
Zimbra ::  the leader in open source messaging and collaboration

Reply via email to