Project

General

Profile

Actions

Bug #8166

closed

zpool scrub thinks it repaired offline device

Added by Matthew Ahrens about 6 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
2017-05-05
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:
External Bug:

Description

If we do a scrub while a leaf device is offline (via "zpool offline"),
we will inadvertently clear the DTL (dirty time log) of the offline
device, even though it is still damaged. When the device comes back
online, we will incompletely resilver it, thinking that the scrub
repaired blocks written before the scrub was started. The incomplete
resilver can lead to data loss if there is a subsequent failure of a
different leaf device.

The fix is to never clear the DTL of offline devices. Note that if a
device is onlined while a scrub is in progress, the scrub will be
restarted.

The problem can be worked around by running "zpool scrub" after
"zpool online".

See also https://github.com/zfsonlinux/zfs/issues/5806

Actions #1

Updated by Electric Monk about 6 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 2d2f193a21231a58c583466dc23ba71f1a25f424

commit  2d2f193a21231a58c583466dc23ba71f1a25f424
Author: Matthew Ahrens <mahrens@delphix.com>
Date:   2017-05-22T21:01:15.000Z

    8166 zpool scrub thinks it repaired offline device
    Reviewed by: George Wilson george.wilson@delphix.com
    Reviewed by: Brad Lewis <brad.lewis@delphix.com>
    Approved by: Richard Lowe <richlowe@richlowe.net>

Actions

Also available in: Atom PDF