Description of problem:
The hash code of generate_cluster_id in cnxman.c is not completely satisfying
because I have several cases where for a different cluster_name, the generated
cluster_id is identical, and therefore, the cman fails to start .
Version-Release number of selected component (if applicable):
All versions (function generate_cluster_id has not been changed from Update 2
to Update 4)
Set for example a cluster_name iocell13 for a HA pair cluster name, and iocell21
for a second one ... cluster_id will be 26773 for both.
Try simulation : if you have more than about 20 HA cluster pairs on the same
network, you have a high probability to get several identical cluster_id.
For example, I made a programm with the generate_cluster_id function and a check
on all generated cluster ids with a prefix as 1st parameter and the number of HA
pair, the result is :
(1st column is cluster_name, 2nd is cluster_id)
CS4[bas4v3] checkclusterid iocell 30
SORRY / Some cluster ids are identical
and whatever prefix you put for the cluster_name, you always got
several identical cluster_id.
Steps to Reproduce:
After discussion on the ML RH CS4, the good solution would be to
add a cluster_id field in cluster.conf so that we could force the
cluster_id at configuration, and if field does not appear, actual
generate_cluster_id function would be applied as usual.
Created attachment 143636 [details]
Barely tested patch
Here's a quick patch.
<cman cluster_id="12345"/> to your cluster.conf file.
Checked in for RHEL4:
Checking in cman-kernel/src/cnxman-socket.h;
/cvs/cluster/cluster/cman-kernel/src/Attic/cnxman-socket.h,v <-- cnxman-socket.h
new revision: 22.214.171.124; previous revision: 126.96.36.199
Checking in cman-kernel/src/cnxman.c;
/cvs/cluster/cluster/cman-kernel/src/Attic/cnxman.c,v <-- cnxman.c
new revision: 188.8.131.52; previous revision: 184.108.40.206
Checking in cman/cman_tool/cman_tool.h;
/cvs/cluster/cluster/cman/cman_tool/cman_tool.h,v <-- cman_tool.h
new revision: 220.127.116.11; previous revision: 18.104.22.168
Checking in cman/cman_tool/join.c;
/cvs/cluster/cluster/cman/cman_tool/join.c,v <-- join.c
new revision: 22.214.171.124; previous revision: 126.96.36.199
Checking in cman/cman_tool/join_ccs.c;
/cvs/cluster/cluster/cman/cman_tool/join_ccs.c,v <-- join_ccs.c
new revision: 188.8.131.52; previous revision: 184.108.40.206
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.