[LU-12334] Print error message when "lfs mirror verify" finds different checksums Created: 24/May/19 Updated: 24/Nov/20 Resolved: 24/Nov/20 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.12.1 |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Li Xi | Assignee: | Li Xi |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Rank (Obsolete): | 9223372036854775807 |
| Description |
|
When two replica has different data, 'lfs mirror verify' will exit with errno 22, but won't print any error message: [root@server17-el7-vm2 ~]# lfs mirror verify /mnt/global/mirror [root@server17-el7-vm2 ~]# echo $? 22 [root@server17-el7-vm2 ~]# lfs mirror verify /mnt/global/mirror -v CRC-32 checksum value for chunk [0, 0xffffffffffffffff): Mirror 1: 0xcb49e137 Mirror 2: 0x96c2baec This is confusing, since people would expect the file doesn't have problem. |
| Comments |
| Comment by Li Xi [ 24/May/19 ] |
|
This has been fixed in " /* compare CRC-32 checksum values */
for (i = 1; i < chunk->mirror_count; i++) {
if (crc_array[i] != crc_array[0]) {
rc = -EINVAL;
if (!verbose)
goto error;
fprintf(stderr,
"%s: chunk "DEXT" has different checksum value on mirror %u and mirror %u.\n",
progname, PEXT(&chunk->chunk),
chunk->mirror_id[0],
chunk->mirror_id[i]);
}
}
|