[Bug 218634] vdev_geom only associates one vdev per consumer
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Apr 13 15:33:33 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=218634
Bug ID: 218634
Summary: vdev_geom only associates one vdev per consumer
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: freebsd-bugs at FreeBSD.org
Reporter: asomers at FreeBSD.org
vdev_geom.c uses the g_consumer's private field to point to a vdev_t. That
way, a GEOM event can cause a change to a ZFS vdev. For example, when you
remove a disk, the vdev's status will change to REMOVED. However, vdev_geom
will sometimes attach multiple vdevs to the same GEOM consumer. If this
happens, then geom events will only be propagated to one of the vdevs.
Steps to reproduce:
# Create two pools with a shared spare
$ sudo zpool create -f foo da0 spare da1
$ sudo zpool create -f bar da2 spare da1
# Physically remove da1
$ zpool status
pool: bar
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
bar ONLINE 0 0 0
da2 ONLINE 0 0 0
spares
13402883250515786666 REMOVED was /dev/da1
errors: No known data errors
pool: foo
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
foo ONLINE 0 0 0
da0 ONLINE 0 0 0
spares
da1 AVAIL
Both spares should be listed as REMOVED. Instead, only one is.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list