dma(8): Fix race condition in multi-recipient delivery
Daniel Roethlisberger
daniel at roe.ch
Thu Jul 9 16:41:12 PDT 2009
Simon 'corecode' Schuber <corecode at fs.ei.tum.de> 2009-07-09:
> Daniel Roethlisberger wrote:
> >When delivering mail to multiple recipients, dma(8) will fork for
> >each recipient and attempt parallel delivery. Separate delivery
> >processes for multiple recipients of the same message all use the
> >same FILE* on the same file descriptor. If a process is loosing
> >the CPU during the delivery process, another delivery process for
> >the same message will wreak havoc on the file descriptor. The
> >symptom is dma(8) logging a failed delivery and bouncing the
> >message for some or all of the recipients:
> >
> >Jul 3 20:57:21 marvin dma[32640]: 15c.284010d0: remote delivery
> >failed:corrupted queue file
>
> Thanks for your submission! I've taken a different approach, could you
> please test whether it works for you? (Untested patch).
>
> thanks,
> simon
This patch doesn't work for me: dma delivers fine to the first
recipient, but fails delivery for all other recipients, logging
an illegal seek to syslog:
Jul 10 01:15:52 marvin dma[45137]: e7.28401130: remote delivery
deferred: cannot seek: Illegal seek
--
Daniel Roethlisberger
http://daniel.roe.ch/
More information about the Submit
mailing list