[Linux-cluster] CMAN cluster event notification broken?

Mikhail A Zelikov mzelikov at cs.uml.edu
Thu Aug 24 15:49:58 UTC 2006


I have a 2-node cluster, and I wrote a simple program that registers for
cluster events using:
cman_start_notification and cman_start_recv_data.  If a node dies (manual
reboot/shutdown) then I receive CMAN_REASON_PORTCLOSED event and then NO
CMAN_REASON_STATECHANGE (as I woudl expect). I receive
CMAN_REASON_STATECHANGE once the node is booted again. If I do not
register for data then I do not receive CMAN_REASON_PORTCLOSED as
expected.
Is the notification mechanism broken?
  Mike
P.S.
It also looks like that the conditions in while loop in cman_dispatch
might be incorrect if the intention was to continue forever as long as
there no errors.

	while ( flags & CMAN_DISPATCH_ALL &&
		(len < 0 && errno == EAGAIN) );

Should it be:

	while ( flags & CMAN_DISPATCH_ALL &&
		!(len < 0 && errno == EAGAIN) );




More information about the Linux-cluster mailing list