Skip to content

Commit

Permalink
Merge pull request #17969 from jakesmith/HPCC-30525-dropzone-group-lc
Browse files Browse the repository at this point in the history
HPCC-30525 Fix issues of cased dropzone names mismatching group name

Reviewed-By: Kevin wang <[email protected]>
Reviewed-by: Jake Smith <[email protected]>
Merged-by: Gavin Halliday <[email protected]>
  • Loading branch information
ghalliday authored Nov 2, 2023
2 parents b39abd8 + c4de7ff commit 7dc6d44
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions dali/base/dadfs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10188,25 +10188,27 @@ class CInitGroups
switch (groupType)
{
case grp_thor:
getClusterGroupName(cluster, gname);
if (!streq(cluster.queryProp("@name"), gname.str()))
getClusterGroupName(cluster, gname); // NB: ensures lowercases
if (!strieq(cluster.queryProp("@name"), gname.str()))
realCluster = false;
if (oldEnvCluster)
{
getClusterGroupName(*oldEnvCluster, oldGname);
if (!streq(oldEnvCluster->queryProp("@name"), oldGname.str()))
getClusterGroupName(*oldEnvCluster, oldGname); // NB: ensures lowercases
if (!strieq(oldEnvCluster->queryProp("@name"), oldGname.str()))
oldRealCluster = false;
}
break;
case grp_thorspares:
getClusterSpareGroupName(cluster, gname);
getClusterSpareGroupName(cluster, gname); // ensures lowercase
oldRealCluster = realCluster = false;
break;
case grp_roxie:
gname.append(cluster.queryProp("@name"));
gname.toLowerCase();
break;
case grp_dropzone:
gname.append(cluster.queryProp("@name"));
gname.toLowerCase();
oldRealCluster = realCluster = false;
defDir = cluster.queryProp("@directory");
break;
Expand Down Expand Up @@ -10578,8 +10580,12 @@ class CInitGroups

void ensureStorageGroup(bool force, const char * name, unsigned numDevices, const char * path, StringBuffer & messages)
{
Owned<IPropertyTree> newClusterGroup = createStorageGroup(name, numDevices, path);
ensureConsistentStorageGroup(force, name, newClusterGroup, messages);
//Lower case the group name - see CNamedGroupStore::dolookup which lower cases before resolving.
StringBuffer gname;
gname.append(name).toLowerCase();

Owned<IPropertyTree> newClusterGroup = createStorageGroup(gname, numDevices, path);
ensureConsistentStorageGroup(force, gname, newClusterGroup, messages);
}

void constructStorageGroups(bool force, StringBuffer &messages)
Expand Down Expand Up @@ -10618,7 +10624,7 @@ class CInitGroups
}
else if (plane.hasProp("hostGroup"))
{
throw makeStringExceptionV(-1, "Use 'hosts' rather than 'hostGroup' for inline list of hosts for plane %s", name);
throw makeStringExceptionV(-1, "Use 'hosts' rather than 'hostGroup' for inline list of hosts for plane %s", gname.str());
}
else if (plane.hasProp("hosts"))
{
Expand All @@ -10633,9 +10639,9 @@ class CInitGroups
{
//Locally mounted, or url accessed storage plane - no associated hosts, localhost used as a placeholder
unsigned numDevices = plane.getPropInt("@numDevices", 1);
newClusterGroup.setown(createStorageGroup(name, numDevices, prefix));
newClusterGroup.setown(createStorageGroup(gname, numDevices, prefix));
}
ensureConsistentStorageGroup(force, name, newClusterGroup, messages);
ensureConsistentStorageGroup(force, gname, newClusterGroup, messages);
}
}
}
Expand Down

0 comments on commit 7dc6d44

Please sign in to comment.