Red Hat Bugzilla – Bug 221629
groupd can create duplicate global ids
Last modified: 2009-04-16 18:49:50 EDT
Description of problem:
groupd creates uint32 global id's for each group. It doesn't
use them itself, but provides them to each registered app to use
if it wants. (The dlm and gfs each use the global id in messages
to distinguish between different lockspaces/fs's.) groupd's
method of creating these gid's (local counter | local nodeid)
can result in duplicate gid's in the cluster given a somewhat
uncommon sequence of events.
This has been sitting on my todo list for a long time, have finally
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. mount fsX on nodeA
2. mount fsX on nodeB
3. umount fsX on nodeA
4. stop cluster stuff on nodeA
5. start cluster stuff on nodeA
6. mount fsY on nodeA
7. mount fsY on nodeB
dlm messages will get mixed up between the X and Y lockspaces causing
dlm recovery to be stuck
Fix checked into HEAD and RHEL5 branches.
Requesting blocker status for this defect. Closes a hole discovered during dlm
recovery unit testing. Fix is available and impact is minimal. We are
rebuilding these packages in the next week, so can pick up this fix as well.
checked into RHEL50 branch.
Checking in app.c;
/cvs/cluster/cluster/group/daemon/app.c,v <-- app.c
new revision: 18.104.22.168; previous revision: 22.214.171.124
Checking in cpg.c;
/cvs/cluster/cluster/group/daemon/cpg.c,v <-- cpg.c
new revision: 126.96.36.199; previous revision: 188.8.131.52
Checking in gd_internal.h;
/cvs/cluster/cluster/group/daemon/gd_internal.h,v <-- gd_internal.h
new revision: 184.108.40.206; previous revision: 220.127.116.11
A package has been built which should help the problem described in
this bug report. This report is therefore being closed with a resolution
of CURRENTRELEASE. You may reopen this bug report if the solution does
not work for you.