kern/150501: ZFS vdev failure vdev.bad_label on amd64

William FRANCK william.franck at oceasys.net
Sun Sep 12 13:10:02 UTC 2010


>Number:         150501
>Category:       kern
>Synopsis:       ZFS vdev failure vdev.bad_label on amd64
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Sep 12 13:10:02 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     William FRANCK
>Release:        CURRENT 9.0 cvs 2010-09-12
>Organization:
>Environment:
FreeBSD serveur 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Sun Sep 12 11:34:34 CEST 2010     root at serveur:/usr/obj/usr/src/sys/K9NSLI-AMD64  amd64

>Description:
ZFS unusable just after a zpool scrub command.

Symptoms :
zpool scrub command hangs.

no way to halt the system, still a PID running
no way to kill -9 zpool

Environment : AMD64 MSI K6N SLI motherboard.
 
# atacontrol list
==========
ATA channel 0:
    Master:  ad0 <ST340016A/3.10> ATA/ATAPI revision 5
    Slave:   ad1 <ST3120022A/3.06> ATA/ATAPI revision 6
ATA channel 2:
    Master:  ad4 <ST3750330AS/SD1A> SATA revision 1.x
ATA channel 4:
    Master:  ad8 <ST3750330AS/SD1A> SATA revision 1.x

# cat /boot/loader.conf
===========
zfs_load="YES"   		# ZFS
zpool_cache_type="/boot/zfs/zpool.cache"
vfs.zfs.zil_disable="1"  # !! avoid conflict between  ZFS and NFS risk of data consistency ??
vfs.zfs.prefetch_disable="1"  #Prefetch is disabled by default if less than 4GB of RAM is present;
### specific amd64 with 2MB of RAM ###
vm.kmem_size="1024M"
vm.kmem_size_max="1024M"
vfs.zfs.arc_max="100M"


After creating the ZFS Pool :
# zpool status
pool: tank
 state: ONLINE
 scrub: none requested
config:
	NAME           STATE     READ WRITE CKSUM
	tank           ONLINE       0     0     0
	  label/sata4  ONLINE       0     0     0
	  label/sata8  ONLINE       0     0     0
errors: No known data errors

>How-To-Repeat:
with 2 same SATA disks : ad4 , ad8
with or without geom labeling,
with or without AHCI enabled (bios setting)
do the following : 

# dd if=/dev/zero of=/dev/ad4 bs=1m count=1
# dd if=/dev/zero of=/dev/ad8 bs=1m count=1
optional : 
# glabel label sata4 /dev/ad4
# glabel label sata8 /dev/ad8

# zpool create tank [mirror | raidz]? [ label/sata4 | ad4]  [ label/sata8 | ad8]  
# zpool status
result is correct.

# zpool scrub tank
No  output.
# zpool scrub tank
... hangs ...
Output on console : 
ZFS: vdev failure, zpool=tank type=vdev.bad_label

>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list