Scrub corruption cases
From btrfs Wiki
Revision as of 02:13, 24 February 2017 by Lakshmipathi (Talk | contribs)
Name | Description | Expected Result | Comments (if any) |
---|---|---|---|
D0-corruption | 1. Create 128kb file.(f1.txt) 2. Corrupt D0 Stripe. 3. Run Scrub |
D0 should have original un-corrupted content. Parity value should be valid. |
RAID5 with 3 drives |
D1-corruption | 1. Create 128kb file.(f1.txt) 2. Corrupt D1 Stripe. 3. Run Scrub |
D1 should have original un-corrupted content. Parity value should be valid. |
|
P-corruption | 1. Create 128kb file.(f1.txt) 2. Corrupt Parity Stripe. 3. Run Scrub |
P should have original un-corrupted content. | |
D0-D1-corruption | 1. Create 128kb file. (f1.txt) 2. Corrupt both D0 and D1 3. Run Scrub |
Scrub expected to fail and should not recover f1.txt. | should Scrub display/log the filename f1.txt as unrecovered along with failed offset? |
D0-D1-corruption2 | 1. Create 128kb file. (f1.txt) and another file with size 128kb (f2.txt) 2. Corrupt both D0 and D1 from f1.txt 3. Corrupt only D0 from f2.txt 4. Run Scrub |
Scrub expected not to recover f1.txt. It should recover f2.txt with valid parity. | |
D1-D3-Corruption | 1. Create 256kb file.(f1.txt) 2. Corrupt D1,D3 Stripe. 3. Run Scrub |
D1,D3 should have original un-corrupted content. Parity value should be valid. | |
256kb-P-Corruption | 1. Create 256kb file.(f1.txt) 2. Corrupt P1 Stripe. 3. Run Scrub |
Parity(P1,P2) value should be valid. | |
256kb-P2-Corruption | 1. Create 256kb file.(f1.txt) 2. Corrupt both P1,P2 Stripe. 3. Run Scrub |
Parity(P1,P2) value should be valid. | |
D0-D1-256kb-Corruption | 1. Create 256kb file.(f1.txt) 2. Corrupt D0,D1 Stripe. 3. Run Scrub |
Scrub expected to fail and should not recover f1.txt. Parity (P1,P2) should be valid | |
D0-D1-256kb-Corruption2 | 1. Create 256kb file.(f1.txt) 2. Corrupt D0,D1,P1 Stripe. 3. Run Scrub |
Scrub expected to fail and should not recover f1.txt. Parity (P2) should be valid | |
Odd-data-stripe-corruption | 1. Create 512kb file.(f1.txt) 2. Corrupt odd data stripe. (D1,D3,D5..) 3. Run Scrub |
Odd data-stripe should have original un-corrupted content. Parity values should be valid. | |
Even-data-stripe-corruption | 1. Create 512kb file.(f1.txt) 2. Corrupt even data stripe. (D2,D4,D6..) 3. Run Scrub |
Even data-stripe should have original un-corrupted content. Parity values should be valid. | |
Repeat-odd-even-corruption. | Re-run above odd-even corruption cases with different filesize: 1m,2mb,10mb,50mb |
All corrupted blocks should have original un-corrupted content. Their coresponding Parity values should be valid. | |
Device-corruption. | 1. Create 100 - 1mb files.(f1..f100.txt) 2. Corrupt all files D0 block. 3. Now replace 1st drive with new drive. 4. Start replace to migrate data from 1st drive. And remove old-corrupted-drive 5. Run Scrub |
Scrub should fix all D0 blocks in the new drive and parity values are valid. | valid testcase? |
Repeat-drive-corruption | Re-run above device corruption for drive-2 and 3. | ||
Append-data | 1. Create large file 1GB.(f1.txt) 2. Corrupt all odd-data stripe blocks. 3. Run Scrub 4. While Scrubbing process running, open the file in write mode and append 500MB data to it. |
||