On Mon, 2009-03-30 at 16:42 -0500, David Teigland wrote: > On Thu, Mar 26, 2009 at 02:50:31PM +0100, Fabio M. Di Nitto wrote: > > In our current startup sequence, we do start a daemon, we make sure it > > starts, but we never check if it's actually working properly. > > If there's no groupd_compat setting in cluster.conf, or if it's set to 2, then > groupd does compat "detection" when it starts up, looking for old cluster2 > nodes that require compat mode. This detection phase can sometimes take a > while. Other daemons have to ask groupd about the mode it chose after the > detection phase, and retry for a while if it's still pending. It might be > nice for the init script to wait for this detection phase to complete after > starting groupd. To do this we can run 'group_tool compat' and loop until > "pending" doesn't show up in a grep. We should probably loop for somewhere > around 10 seconds, there's no good predictable number. If groupd is still > pending after that time, the init script should just continue since it's most > likely taking longer than expected. Other daemons are already prepared to > wait for groupd to pick a mode during their startup. >
I committed: c685efb1ca60e907f1a1d36ba371ed8241c1586e that should implement what you have asked for... on a 2 nodes cluster I see: node1: Starting groupd... [ OK ] Waiting groupd protocol negotiation: [ OK ] (there is no waiting time, first node, goes up quickly) node2 (starts a bit after node1) Starting groupd... [ OK ] Waiting groupd protocol negotiation: 0 1 [ OK ] it takes approx 2/3 seconds to negotiate. The output is shown only when running in full verbose mode. Fabio