[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 "LU-10258 lfs: lfs mirror copy command", but the fix is not in 2.12.2.

		/* 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]);
			}
		}
Generated at Sat Feb 10 02:51:39 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.