[Ocfs2-devel] ocfs2_controld.cman
Joel Becker
Joel.Becker at oracle.com
Wed Apr 8 15:22:37 PDT 2009
On Wed, Apr 08, 2009 at 04:33:17PM -0500, David Teigland wrote:
> If I start ocfs2_controld.cman in parallel on a few nodes, only one of them
> starts up, the others exit with one of these errors:
>
> call_section_read at 370: Reading from section "daemon_protocol" on checkpoint "ocfs2:controld" (try 1)
> call_section_read at 387: Checkpoint "ocfs2:controld" does not have a section named "daemon_protocol"
>
> call_section_read at 370: Reading from section "daemon_protocol" on checkpoint "ocfs2:controld" (try 1)
> call_section_read at 397: Unable to read section "daemon_protocol" from checkpoint "ocfs2:controld": Object does not exist
>
> It does work ok if I remove those two checks.
These checks are required - otherwise you end up with unsync'd
daemons, which is crap.
I've changed the daemon to wait indefinitely, and that's
something lmb was testing. See the controld-fixes branch of
ocfs2-tools.git. That should fix these problems.
> Another thing I noticed while looking in the code is that it assumes a single
> node will become the first member of a cpg on its own when a bunch of nodes
> join at once: daemon_joined(daemon_group.cg_member_count == 1);
>
> This isn't a correct assumption. It's possible that two or more nodes joining
> at once will become initial members together. (I realize that it's a very
> convenient assumption to make after using it in previous pre-cpg programs, and
> it may take a fair amount of work to do without.)
Well, this is going to be fun. I have to figure out which
daemon is the "first", and now it's just racy. I could swear that
someone told me cpg would guarantee i see the joins in order, not at the
same time.
Joel
--
"Three o'clock is always too late or too early for anything you
want to do."
- Jean-Paul Sartre
Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127
More information about the Ocfs2-devel
mailing list