Project

General

Profile

Bug #3102

vdev_uberblock_load() and vdev_validate() may read the wrong label

Added by Christopher Siden almost 8 years ago. Updated over 7 years ago.

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

90%

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

Description

While running 'ztest' we occasionally hit failures that look like this:

Executing zdb -bccsv -U /tank/fs/ztest/zpool.cache ztest
zdb: can't open 'ztest': No such device or address
ztest: '/net/illumos/data/gwilson/dlpx-reguid/proto/root_i386/usr/sbin/i86/zdb
-bccsv -U /tank/fs/ztest/zpool.cache ztest' exit code 1

This happens when we find the best uberblock is on label 0 (updated in txg - 2) but the config associated with label 0 was updated in txg - 1. So the config is newer than the uberblock which should make it invalid but instead we end up using it, causing strange failure conditions.

History

#1

Updated by Eric Schrock over 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