[Openswan dev] [PATCH] Fix race condition between pluto start and whack
D. Hugh Redelmeier
hugh at mimosa.com
Fri Apr 8 02:23:25 EDT 2011
| From: Mattias Walstrom <lazzer at vmlinux.org>
| Fix race condition between pluto start and whack, which can result in
| pluto becoming a zombie that never returns.
Do you really mean "zombie"? A zombie is a process that has exited
but hasn't been reaped by its parent. If pluto is running as a
daemon, init should reap it.
Are you running pluto with --nofork?
| When sending any whack message during the time pluto starts, whack will
| just hang for a long time. And if pluto should die during this hang, it
| will become a Zombie.
I don't understand this. Why would a pending message cause Pluto to
become a Zombie? This should not affect the ability of a parent
process (init or otherwise) to reap it.
| This patch makes sure that we do not open the ctl
| socket until we actually can receive messages (all pluto initialization
| is done).
The code has a comment explaining why the socket is created where it
is. I no longer am certain, but I think the idea was that once a
startup script had executed "pluto", it was safe to assume that the
socket was created. After your change, this is no longer true.
More information about the Dev