July 28, 201015 yr The 4.5.6 version of unRAID introduced a new error message that looks like: Jul 26 00:25:46 saturn kernel: md: parity incorrect: 1477474488 Jul 26 00:30:21 saturn kernel: md: parity incorrect: 1510045800 Jul 26 00:30:25 saturn kernel: md: parity incorrect: 1510600792 How is the number (such as 1477474488) interpreted? It is a byte counter, or number of a disk block or number of a raid stripe? I'm wondering if this could be used to figure out where on the disks the problem might be, or based on this size perhaps I can eliminate some of my smaller disks from consideration. I am also wondering if there is a way to run the parity check command by hand, but to tell it to just check a range of blocks as I have been observing a number of parity errors (and subsequent corrections) at similar addresses: Jul 19 00:50:35 saturn kernel: md: parity incorrect: 1485297976 Jul 19 00:57:47 saturn kernel: md: parity incorrect: 1536676720 Jul 19 01:12:25 saturn kernel: md: parity incorrect: 1636175680 --- Jul 21 00:30:09 saturn kernel: md: parity incorrect: 1485297976 Jul 21 00:52:02 saturn kernel: md: parity incorrect: 1636175680 --- Jul 23 00:34:04 saturn kernel: md: parity incorrect: 1472497824 Jul 23 00:39:36 saturn kernel: md: parity incorrect: 1512072552 --- Jul 24 00:12:09 saturn kernel: md: parity incorrect: 1472497824 Jul 24 00:17:42 saturn kernel: md: parity incorrect: 1512072552 --- Jul 25 00:56:25 saturn kernel: md: parity incorrect: 1477474488 Jul 25 01:00:59 saturn kernel: md: parity incorrect: 1510045800 Jul 25 01:01:04 saturn kernel: md: parity incorrect: 1510600792 --- Jul 26 00:25:46 saturn kernel: md: parity incorrect: 1477474488 Jul 26 00:30:21 saturn kernel: md: parity incorrect: 1510045800 Jul 26 00:30:25 saturn kernel: md: parity incorrect: 1510600792 Regards, Stephen
July 28, 201015 yr It's the sector. /* called on a sync error */ void md_sync_error(mddev_t *mddev, sector_t sector) { mdp_super_t *sb = &mddev->sb; sb->sync_errs++; if (sb->sync_errs <= 20) printk("md: parity incorrect: %llu\n", sector); }
July 28, 201015 yr Author It's the sector. /* called on a sync error */ void md_sync_error(mddev_t *mddev, sector_t sector) { mdp_super_t *sb = &mddev->sb; sb->sync_errs++; if (sb->sync_errs <= 20) printk("md: parity incorrect: %llu\n", sector); } And a sector is 512 bytes? In which case this issue is happening at about the 756MByte point. Thanks, Stephen
Archived
This topic is now archived and is closed to further replies.