Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vdev_open: clear async fault flag after reopen #16258

Closed
wants to merge 2 commits into from

Commits on Jul 11, 2024

  1. zts: test single-disk pool resumes properly after disk pull

    A single disk pool should suspend when its disk fails and hold the IO.
    When the disk is returned, the pool should return and the IO be
    reissued, leaving everything in good shape.
    
    Sponsored-by: Klara, Inc.
    Sponsored-by: Wasabi Technology, Inc.
    Signed-off-by: Rob Norris <[email protected]>
    robn committed Jul 11, 2024
    Configuration menu
    Copy the full SHA
    762d7b5 View commit details
    Browse the repository at this point in the history
  2. vdev_open: clear async fault flag after reopen

    After c3f2f1a, vdev_fault_wanted is set on a vdev after a probe fails.
    An end-of-txg async task is charged with actually faulting the vdev.
    
    In a single-disk pool, the probe failure will degrade the last disk, and
    then suspend the pool. However, vdev_fault_wanted is not cleared. After
    the pool returns, the transaction finishes and the async task runs and
    faults the vdev, which suspends the pool again.
    
    The fix is simple: when reopening a vdev, clear the async fault flag. If
    the vdev is still failed, the startup probe will quickly notice and
    degrade/suspend it again. If not, all is well!
    
    Sponsored-by: Klara, Inc.
    Sponsored-by: Wasabi Technology, Inc.
    Co-authored-by: Don Brady <[email protected]>
    Signed-off-by: Rob Norris <[email protected]>
    robn and don-brady committed Jul 11, 2024
    Configuration menu
    Copy the full SHA
    f5b16ed View commit details
    Browse the repository at this point in the history