Re: [exim] 答复: Exim "failure to transfer data from subproces…

Top Page
Delete this message
Reply to this message
Author: Phil Pennock
Date:  
To: zq
CC: exim-users
Subject: Re: [exim] 答复: Exim "failure to transfer data from subprocess"
On 2008-02-08 at 10:10 +0800, zq wrote:
> Here is the paniclog
> 2008-02-07 17:34:54 1JN39i-0007li-F6 unable to set gid=503 or uid=503
> (euid=502): userforward router (recipient is tzqian@???)
> 2008-02-07 17:34:54 1JN39i-0007li-F6 internal problem in userforward router
> (recipient is tzqian@???): failure to transfer data from subprocess:
> status=0100 readerror='Success'


Look closely at the times there.

Note that 0007li means that this was pid 29866. And 1JN39i is 1202376894
which is 2008-02-07T09:34:54 (so your timezone adds 6 hours); this was
17 hours before I'm writing the reply.

I think that you're seeing an old error message from when things were
misconfigured.

Also, this is for a "userforward" router, which isn't even tried in the
debug traces you posted. So it's from a different configuration, or for
an address handled differently to the samples which you posted.

> And the "$home/.forward" problem is the same as before, it looks like a
> permition problem according to the paniclog shows "2008-02-07 17:34:54
> 1JN39i-0007li-F6 unable to set gid=503 or uid=503 (euid=502): userforward
> router (recipient is tzqian@???)", I'm not sure how to fix it,and I
> have another question about the mainlog , where can I find the archive of
> error code?


The error codes should be the result of strerror(3); 'Success' means
that there wasn't actually an error, which means that something has gone
badly wrong. I suspect that the child process just died, not writing
expected data, so the parent got EOF and then failed. (No SIGPIPE
because Exim ignores SIGPIPE).

So the error details would be in why the _child_ Exim failed to write
the data to the pipe and for that, you need debug logs of an actual
failure.

The "unable to set gid=503 or uid=503 (euid=502)" means that Exim was
running as user 502 but tried to set itself to run as user 503.

Is the Exim binary setuid root?

Have you recently changed the userid of Exim and not also rebuilt Exim?
By default, Exim hard-codes the userid into the binary and you'll need
to rebuild. If you want to be able to use one binary on multiple
systems with different values, take a look at src/EDITME and the
"EXIM_USER=ref:exim" syntax, _instead_ of "EXIM_USER=exim".

Are you using NFS for the home directories, or using Kerberos in some
way?

-Phil