On Wed, 23 Aug 2000, Marc MERLIN wrote:
> #0 0x2abea41b in vfprintf () from /lib/libc.so.6
> #1 0x2abf1d2d in fprintf () from /lib/libc.so.6
> #2 0x8080039 in log_write ()
> #3 0x808b3b0 in rewrite_one ()
> #4 0x808b572 in rewrite_address ()
> #5 0x8097957 in verify_address ()
> #6 0x8091135 in smtp_setup_msg ()
> #7 0x80654da in handle_smtp_call ()
> #8 0x8066935 in daemon_go ()
> #9 0x80747d7 in main ()
> #10 0x2abc6a42 in __libc_start_main () from /lib/libc.so.6
>
> There you go :-)
I believe this crash is caused by the setting of log_rewrites in your
configuration. It is trying to log the rewrite, realizing that this
isn't a real message, but an address testing situation (EXPN), so not
writing the log, but trying to write to stderr instead. Problem is that
the daemon, without debugging, has closed file descriptor 2. My
hypothesis is that vfprintf on your host isn't robust against this.
It explains why you never got the problem with debugging turned on.
I will think of a way round this - I suspect that log_rewrites should be
forced OFF when doing address testing, but there is the general problem
of log calls in this situation. In the meantime, your workaround, if you
need it, is to turn it off in your configuration file.
As I am going to be away for most of next week, there won't be a proper
fix for a while, but I don't judge this as hugely urgent.
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.