Project

General

Profile

Bug #3090

vdev_reopen() during reguid causes vdev to be treated as corrupt

Added by Christopher Siden about 7 years ago. Updated about 7 years ago.

Status:
Resolved
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
2012-08-17
Due date:
% Done:

90%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

There is a period between the time spa_change_guid() is called and when the
labels with the new guid are synced to disk in which spa_version() and the guid in the vdev labels don't match. If vdev_reopen() is called during this time, it will call vdev_validate() which will mark the vdev as corrupt due to the vdev discrepancy.

This is pretty much guaranteed to happen if you run ztest for more than 30 minutes, which is really annoying.

History

#1

Updated by Eric Schrock about 7 years ago

  • Status changed from In Progress to Resolved

changeset: 13777:b1e53580146d
user: George Wilson <>
date: Wed Aug 22 08:03:38 2012 -0700
description:
3090 vdev_reopen() during reguid causes vdev to be treated as corrupt
3102 vdev_uberblock_load() and vdev_validate() may read the wrong label
Reviewed by: Matthew Ahrens <>
Reviewed by: Christopher Siden <>
Reviewed by: Garrett D'Amore <>
Approved by: Eric Schrock <>

Also available in: Atom PDF