DF-4714 / run.log
== initial state ==
D d1 State: up Device /dev/md0s0 Avail: 5/8 MB (74%)
D d2 State: up Device /dev/md1s0 Avail: 3/8 MB (49%)
V rv State: up Plexes: 1 Size: 4096 kB
P rv.p0 R5 State: up Subdisks: 3 Size: 4096 kB
S rv.p0.s0 State: up PO: 0 B Size: 2048 kB
S rv.p0.s1 State: up PO: 16 kB Size: 2048 kB
S rv.p0.s2 State: up PO: 32 kB Size: 2048 kB
SANITY: 32KB roundtrip OK
===== [1] DF-4714 scenario A: parity sd DOWN + data sd REBORN, 16KB single write
S rv.p0.s0 State: down PO: 0 B Size: 2048 kB
S rv.p0.s1 State: reborn PO: 16 kB Size: 2048 kB
S rv.p0.s2 State: up PO: 32 kB Size: 2048 kB
DF-4714-A: write OK (16KB accepted with parity sd DOWN + data sd REBORN)
DF-4714-A RESULT: *** SILENT DATA LOSS (readback 75 != bb) ***
trigger_a rc=1
-- physical evidence: parity (d1) region for this stripe:
ce ce ce ce ce ce ce ce
-- s1 (d2) data region (should still be old zeros - never written):
75 75 75 75 75 75 75 75
===== [2] DF-4715: two DOWN data sds, 32KB single write -> refusal path
-- pre-write states (s0 must be UP):
S rv.p0.s0 State: up PO: 0 B Size: 2048 kB
S rv.p0.s1 State: down PO: 16 kB Size: 2048 kB
S rv.p0.s2 State: down PO: 32 kB Size: 2048 kB
0 bytes transferred in 0.000331 secs (0 bytes/sec)
write rc=0 (EIO expected)
-- post-write states (buggy: s0 WRONGLY stale; fixed: s0 stays up):
S rv.p0.s0 State: stale PO: 0 B Size: 2048 kB
S rv.p0.s1 State: obsolete PO: 16 kB Size: 2048 kB
S rv.p0.s2 State: obsolete PO: 32 kB Size: 2048 kB
===== [3] control: all sds up, 32KB roundtrip
control FAILED
===== [4] DF-4714 scenario B: BOTH data sds REBORN, 32KB single write
S rv.p0.s0 State: up PO: 0 B Size: 2048 kB
S rv.p0.s1 State: reborn PO: 16 kB Size: 2048 kB
S rv.p0.s2 State: reborn PO: 32 kB Size: 2048 kB
-- firing trigger (32KB, blocks on s1+s2) - expect panic on buggy kernel:
open: Input/output error
trigger rc=2
END-BASELINE
BASELINE_DONE