Cyrus process model...

Lawrence Greenfield leg+ at andrew.cmu.edu
Wed Feb 26 18:11:57 EST 2003


   From: "Rob Mueller" <robm at fastmail.fm>
   Date: Thu, 27 Feb 2003 08:22:09 +1100
[...]
   In the case of cyrus, I think you can quite happily stick with the
   multi-process model, I wasn't advocating moving to a threaded model. The
   discussion started due to an issue with killing child processes. Apparently
   there are currently race conditions in 'master' that means that a killed
   child may not be correctly recognised by the 'master' process as a dead
   child. I commented that I thought a master/forked child idiom had been used
   in unix for 30 years, and shouldn't there be cookbook solutions for most of
   these issues? Which started me looking for libraries that might have already
   done this...

Sigh. It is _not_ a race condition in master. Master is working just
fine.

The services do not always deal correctly with receiving signals.

The process accounting patch for master (which works around the
services not always doing the right thing) introduces race conditions,
which is one of the reasons why it hasn't been applied.

Being able to deal with "kill -9" processes is definitely _not_ a
design goal, since kill -9 can leave the mail spool in an arbitrary
corrupted state.

Larry





More information about the Info-cyrus mailing list