Project

General

Profile

Bug #3952

ztest: ztest_reguid test and ztest_fault_inject don't place nice together

Added by Christopher Siden over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
2013-08-02
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

Analysis by George Wilson:

I have seen cases where the deadman timer will fire and when looking at the
pool I see that the guids don't match on all devices. I suspect that a guid
change occurred just as ztest_fault_inject() changed the vdev to either a
closed state or not writeable. This would have caused us to skip over writing
the label for that device. When the device later is reopened it will fail to
join the pool because the guid does not match.

To address this we prevent ztest_fault_inject from manipulating the leaf vdev's
state whenever we're going to change the guid. This will ensure that all labels
get updated when the guid change runs. We also prevent spa_guid_change() and
vdev_offline() from racing with each other.

History

#1

Updated by Christopher Siden over 5 years ago

  • Status changed from In Progress to Closed
commit 2c1e2b4
Author: George Wilson <george.wilson@delphix.com>
Date:   Wed Aug 7 11:24:34 2013

    3949 ztest fault injection should avoid resilvering devices
    3950 ztest: deadman fires when we're doing a scan
    3951 ztest hang when running dedup test
    3952 ztest: ztest_reguid test and ztest_fault_inject don't place nice together
    Reviewed by: Matthew Ahrens <mahrens@delphix.com>
    Reviewed by: Adam Leventhal <ahl@delphix.com>
    Approved by: Richard Lowe <richlowe@richlowe.net>

Also available in: Atom PDF