The problem fixed after I rebuild exim.Now I know that I must rebuild exim
after I add a new user. I have received the forward email now.
Here is the mainlog
2008-02-08 11:10:47 1JNJdW-0000Pf-VH <= tangzhenqian@??? H=ug-out-1314.
google.com [66.249.92.173] P=esmtp S=1873
id=004e01c86a00$7c37b8f0$696a000a@Techtangzhenqian
2008-02-08 11:10:47 1JNJdW-0000Pf-VH => tzqian <tzqian@???>
R=localuser T=local_delivery
2008-02-08 11:10:49 1JNJdW-0000Pf-VH => gelenbertang@???
<tzqian@???> R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com
[209.85.199.114]
2008-02-08 11:10:49 1JNJdW-0000Pf-VH Completed
Thank you very much.
Regards,
Gelenbertang
-----邮件原件-----
发件人: Phil Pennock [
mailto:exim-users@spodhuis.org]
发送时间: 2008年2月8日 10:51
收件人: zq
抄送: exim-users@???
主题: 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