DragonFly submit List (threaded) for 2009-07
DragonFly BSD
DragonFly submit List (threaded) for 2009-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: dma(8): Fix race condition in multi-recipient delivery


From: Daniel Roethlisberger <daniel@xxxxxx>
Date: Fri, 10 Jul 2009 01:38:01 +0200
Mail-followup-to: Daniel Roethlisberger <daniel@roe.ch>, Simon 'corecode' Schubert <corecode@fs.ei.tum.de>, submit@dragonflybsd.org

Simon 'corecode' Schuber <corecode@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/



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]