Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-10911 FLR2: Read only erasure coding
  3. LU-20709

FLR-EC: recovery read at a non-zero offset intermittently returns wrong data (sanity-ec 53a)

XMLWordPrintable

    • Icon: Technical task Technical task
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • None
    • 3
    • 9223372036854775807

      The currently excepted sanity-ec test_53a ("test EC recovery with non-zero read offsets") writes 12 MiB to a 3+1 file with six 1 MiB data stripes (two raid sets), takes one safe data OST out with a persistent OBD_FAIL_OST_BRW_READ_BULK fault, and reads from offsets 1M, 3M, 5M, 6M, 7M and 10M to the end of the file, comparing each read with a reference taken before the fault. The recovery read intermittently returns a checksum which differs from the reference: measured at 2 failures in 10 runs on the 62757 patch, and still 1 in 10 with the proactive dead-OST detection that fixed the other offset tests, so it is not the LU-12668 reconstruction bug those tests hit.

      The failing offsets are not fixed across runs, which points at the recovery read for a range that starts inside a raid set (crw_pos != 0, with lov_io_set_range rounding the inner range down to the raid-set start) rather than at the reconstruction itself. The test stays excepted in sanity-ec.sh until the cause is found; this ticket tracks it separately from LU-12668.

      Expected: reads at any offset of a degraded EC file return the same bytes as the healthy file.

            wc-triage WC Triage
            mvef Marc Vef
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: