Details
-
Bug
-
Resolution: Fixed
-
Major
-
Lustre 2.8.0
-
lustre-2.8.0_8.chaos
-
3
-
9223372036854775807
Description
lfs changelog <mdtname>
parses the index of mdtname incorrectly, causing it to fetch the wrong changelog entries if the index contains letters [A-F] (e.g. lquake-MDT000A).
The error appears to be here:
diff --git a/lustre/utils/liblustreapi.c b/lustre/utils/liblustreapi.c
index 9301383..38e2085 100644
--- a/lustre/utils/liblustreapi.c
+++ b/lustre/utils/liblustreapi.c
@@ -3985,7 +3985,7 @@ int root_ioctl(const char *mdtname, int opc, void *data, int *mdtidxp,
return -EINVAL;
ptr = fsname + strlen(fsname) - 8;
*ptr = '\0';
- index = strtol(ptr + 4, NULL, 10);
+ index = strtol(ptr + 4, NULL, 16);
rc = get_root_path(WANT_FD | want_error, fsname, &fd, NULL, -1);
}
if (rc < 0) {
It looks like this error is present in Lustre 2.9 as well. Master exposes changelogs using the MDT name itself, not just the index, and may not have this issue.