[Bugs] [Bug 1300875] Client self-heals block the FOP that triggered the heals

bugzilla at redhat.com bugzilla at redhat.com
Wed Jun 1 13:15:05 UTC 2016


https://bugzilla.redhat.com/show_bug.cgi?id=1300875

nchilaka <nchilaka at redhat.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ON_QA                       |VERIFIED



--- Comment #13 from nchilaka <nchilaka at redhat.com> ---
QATP and Results:(all cases are working as expected) hence moving to verified
test version:3.7.9-6  (tested on fuse mount)
================
    QATP:

    TC#1:   steps reported in bug  ==>PASS

    1.Create a 1x2 replica, fuse mount and create a file.

    2.Disable self-heal daemon

    2.Kill a brick, `dd` a few gigs into the file.

    3.Bring the brick back up, do a hexdump of file from the mount.

    4.Hexdump will stall spewing out data until the data heal completes (as
seen from the mount log)

 Comment by Ravi " Correction here: File reads (i.e. hexdump of       file)
should spew out data immediately, without waiting for the       heal to happen.
(This wasn't the case prior to the fix)."

    TC#2:   scenario#2 ==>PASS

    1.Create a 1x2 replica, fuse mount and create a file.

    2.Disable self-heal daemon

    3.Kill a brick,copy  some 10 music files

    4.Bring the brick back up, and now play the music files

    5.the music files must be playing without any interruption and heal must
take place in the background




    Expected result: only 10 must be getting healed, however all the files must
be accessible and no IO must hang


    TC#3:  testing the functionality of background-self-heal-count=2,
heal-wait-queue-leng=3   =>PASS

    1.Create a 1x2 replica, fuse mount and create a file.

    2.Disable self-heal daemon

    3. set  background-self-heal-count=2 proceed with below tests

    4. Now create some 10 dummy files

    5. Now bring down one brick and create atleast 200 5GB files

    6. Now bring back the brick online

    7. Now open all  files from same mount point (different terminals) and keep
accessing them (how do i do that) => Comment by Ravi "You could try  `hexdump
file&` "

    8. Now check the backend bricks

    Expected result: only 2 file must be getting healed at a time  however all
the files must be accessible and no IO must hang

 Comment by Ravi " The  files queued in the wait queue will be       again
picked up for  background heal when currently undergoing       heals complete ,
so all  files may eventually be healed if they       were accessed."
Comment by Ravi "I think a simpler way would be to set the       limits to a
smaller value and verify. For example, bg selfheal       count=2,
wait-queue-length=1. Then try with 5 big files that need       healing. Only 3
should be healed."

Comment by Ravi " It would also be good to add a negative test       case where
setting the bg selfheal count and waitqueue length to       zero does not
trigger data self-heals when files are accessed."

    TC#4: back-ground self heal-count is per client and not per volume =>pass

    1.Create a 1x2 replica, fuse mount and create a file.

    2.Disable self-heal daemon

    3. set  background-self-heal-count=2 proceed with below tests

    4. Now create some 10 dummy files

    5. Now bring down one brick and create atleast 10 10GB files say f{1..10}

    6. Now bring back the brick online

    7. Now have atleast 5 different clients and from each client open a
different file using hexdump or octal dump(od)

    8. Now check the backend bricks

    Expected result: all the 5 files must be getting healed with no hangs in
the octal dump as the background-self-heal-count is per client and not per
volume however all the files must be accessible and no IO must hang

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=p3XdJSxRii&a=cc_unsubscribe


More information about the Bugs mailing list