Re: pluto not responding -- possibly not re-entrant (updown)

"John S. Denker" <[email protected]> Wed, 12 Mar 2003 15:52:01 -0500
Newsgroups gmane.network.freeswan.devel
Message-ID <[email protected]>
On 03/12/2003 03:11 PM, D. Hugh Redelmeier wrote:

 > Pluto is what structured as a transaction system.  Essentially like an
 > even-driven program.  It receives an event, processes it completely
 > (atomically), and then goes back to wait for the next event.  That is
 > a transaction.
 >
 > The updown script is run within a transaction.  No whack command
 > issued by the updown can complete until the updown script has returned
 > control to its caller.

This needs to be documented.  It all makes perfect
sense in retrospect, but it came as a rude surprise
to me.

Also, as mentioned in my previous note, one could
imagine detecting attempted re-entrancy (perhaps
based on pgid) and producing an error message
rather than a hang.

> It is possible for the updown script to fork off a subprocess that 
> lives past the end of the main script. Such a subprocess could 
> reasonably include a whack command.

Yes, I have long since added a well-commented "&"
to my _downup script.  Works fine.  I didn't even
need to restart pluto;  I just needed to kill about
a dozen child processes to untangle the deadly
embrace that resulted from the previous lack of "&".