[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scheduler: unlink... No such file or directory
On Wed, Aug 09, 2000 at 10:49:57PM +0400, Eugene Crosser wrote:
> While evaluating new x86 rackmount boxes I installed Zmailer on one
> (running Solars7 x86) and piped full mail feed there. There are
> still things that I reported before but diagniostics is somewhat
> different:
>
> scheduler: unlink(../queue/F/wV DDST)[sch-unctl-2]: No such file or directory
> scheduler: unlink(../queue/V/X?DDST)[sch-unctl-2]: No such file or directory
These are - shall we say - absolute nonsense.
At scheduler/update.c: unctlfile() function:
if (cfp->dirind > 0)
sprintf(path, "../%s/%s/%s",
QUEUEDIR, cfpdirname(cfp->dirind), cfp->mid);
else
sprintf(path, "../%s/%s",
QUEUEDIR, cfp->mid);
eunlink(path,"sch-unctl-2");
With lib/esyslib.c: eunlink() reporting the 'tag' value in
sensible way (that is, a valid tag) I am inclined to consider
that the esyslib.c and update.c were both compiled before
linkage. Therefore the eunlink() was corrent binary and
produced correct result, but the 'path' content is there bogus.
Bogus 'path' means that cfp->mid pointed string is bogus.
Also, the eunlink() is called only if 'no_unlink' is
zero, which means at one place at scheduler/scheduler.c,
and one place at scheduler/update.c: unctlfile(). Just which...
At update.c the unctlfile() is called twice from update.c: deletemsg()
(highly unlikely), and once from vtxupdate(), which means updates from
any and all message statuses.
All paths that I seem to be able to pick do feel to be ok.
As if the message file has corrupted without a valid "MID" value.
On the other hand, a NULL pointer referral of cfp->mid should cause
a crash when printing that 'path' content...
> Eugene
--
/Matti Aarnio <mea@nic.funet.fi>