11/17/2007
Data Test Program (dt)
41
False Data Corruption
nBeware:  False data corruptions will occur doing random I/O with unique data.
uUnique data means different pattern data in each block.
nWhy?  Random I/O oftentimes overwrites previously written block data.
uResolving this requires maintaining a bitmap of blocks written to avoid overwrites.
nWorkaround: Don’t use pattern files larger than the device block size (512, 1K, etc).
n
nExample:
nshaix11# dt of=/var/tmp/dt.data min=b max=256k pf=pattern_all limit=100m iotype=random dlimit=32 stats=brief
nEnd of Write pass 0/1, 204800 blocks, 100.000 Mbytes, 895 records, errors 0/1, elapsed 00m04.05s
n
ndt: Error number 1 occurred on Thu May 17 10:10:03 2007
ndt: Elapsed time since beginning of pass: 00m00.00s
ndt: Elapsed time since beginning of test: 00m04.05s
ndt: Data compare error at byte 0 in record number 4
ndt: Relative block number where the error occurred is 142297, position 72856064
ndt: Data expected = 0xa1, data found = 0x9d, byte count = 2048
ndt: The correct data starts at address 0x20006c00 (marked by asterisk '*')
ndt: Dumping Pattern Buffer (base = 0x20006000, offset = 3072, limit = 32 bytes):
n
n0x20006bf0  f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
n0x20006c00 *a1 38 61 a2 1e 0f a4 bd 0a 3d 6d f0 ac c3 ac b4
n
ndt: The incorrect data starts at address 0x2000c000 (marked by asterisk '*')
ndt: Dumping Data Buffer (base = 0x2000c000, offset = 0, limit = 32 bytes):
n
n0x2000c000 *9d 9d 86 d2 aa 82 67 b7 d3 a6 13 cd 41 6c 7d f4
n0x2000c010  36 c7 ba 04 73 9d 86 16 a5 e4 57 a6 02 ed da 71
nEnd of Read pass 1/1, 10 blocks, 0.005 Mbytes, 4 records, errors 1/1, elapsed 00m00.00s
n/var/tmp/dt.data Totals: 204810 blocks, 100.005 Mbytes, errors 1/1, passes 1/1, elapsed 00m04.05s
nshaix11#