Hi Ray,
On Thu, 8 Mar 2001, Ray Miller wrote:
>
> I've been investigating a problem with "Format error in spool file"
[snip]
>
> LOG: 0 MAIN
> <= ray.miller@??? U=ray P=local S=585
> [ray@bench:~]$ Exim version 3.12 debug level 1 uid=8 gid=8
> probably Berkeley DB version 1.8x (native mode)
> delivering message 14b0BO-0003fp-00
> Format error in spool file 14b0BO-0003fp-00-H
> LOG: 0 MAIN
> Format error in spool file 14b0BO-0003fp-00-H: size=939
>
This error is occuring in deliver_message() (src/deliver.c). The code
presumes that the message is too big (hence printing the size), but this
is obviously not the case.
if (stat(big_buffer, &statbuf) == 0)
{
int size = statbuf.st_size; /* Because might be a long */
log_write(0, LOG_MAIN, "Format error in spool file %s: size=%d",
spoolname, size);
}
st_size should be tested. (What size is too long?)
The original error comes from spool_read_header() which sets errno to
ERRNO_SPOOLFORMAT. There are lots of places in spool_read_header that this
error is set. My feeling is, however, that it is the To: header.
It would probably be more helpful if the error handling was more specific
in this part of the code - but this is often too time consuming for the
resulting benefit.
Hope this helps
Gavin Sherry
Alcove Systems Engineering.