Project

General

Profile

Bug #12297

zpool status assertion failure

Added by Hans Rosenfeld 6 months ago. Updated about 1 month ago.

Status:
New
Priority:
Normal
Category:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Bite-size
Tags:
Gerrit CR:

Description

In one of my systems, a pool named "export" has some issues, among them a missing log device. I was able to import it with -m, but that didn't stick around until the next boot. So the system still knows about the pool but can't import it at boot.

Whats worse, running "zpool status" on this system shows this assertion failure:

# zpool status
  pool: export
 state: UNAVAIL
Assertion failed: reason == ZPOOL STATUS_OK, file zpool_main.c, line 5872, function status_callback
Abort (core dumped)

This is what the zpool config nvlist looks like:

version=0000000000001388
name='export'
state=0000000000000000
txg=00000000015d1012
pool_guid=3b33733a1a2b9190
errata=0000000000000000
hostid=0000000000c8c084
hostname='mezcal'
com.delphix:has_per_vdev_zaps(unknown)
vdev_children=0000000000000002
vdev_tree
    type='root'
    id=0000000000000000
    guid=3b33733a1a2b9190
    vdev_stats=0000000007b51a99.0000000000000004.0000000000000004.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000001.0000000000000000.0000000000000000.0000000000000000.0000000000000000
    children[0]
        type='mirror'
        id=0000000000000000
        guid=ae59660f76466035
        whole_disk=0000000000000000
        metaslab_array=0000000000000021
        metaslab_shift=0000000000000020
        ashift=000000000000000c
        asize=000000746e580000
        is_log=0000000000000000
        create_txg=0000000000000004
        com.delphix:vdev_zap_top=000000000000005f
        vdev_stats=0000000007b51e70.0000000000000007.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000007400000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000001.0000000000000000.0000000000000000.0000000000000000.0000000000000000
        children[0]
            type='disk'
            id=0000000000000000
            guid=5967dd64f118bade
            path='/dev/dsk/c4t1d0s0'
            devid='id1,sd@SATA_____HITACHI_HTS72755______J3700080H0WXTE/a'
            phys_path='/pci@0,0/pci17aa,21cf@1f,2/disk@1,0:a'
            whole_disk=0000000000000000
            create_txg=0000000000000004
            com.delphix:vdev_zap_leaf=0000000000000060
            vdev_stats=0000000007b51d45.0000000000000007.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000007400480000.0000000000000000.0000000000000001.0000000000000007.0000000000000003.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000076000.0000000000006000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000001.0000000000000000.0000000000000000.0000000000000000.0000000000000000
        children[1]
            type='disk'
            id=0000000000000001
            guid=1fa7199819082a87
            path='/dev/dsk/c4t0d0s0'
            devid='id1,sd@SATA_____ST2000LM003_HN-M______S321J9DG803142/a'
            phys_path='/pci@0,0/pci17aa,21cf@1f,2/disk@0,0:a'
            whole_disk=0000000000000000
            create_txg=0000000000000004
            com.delphix:vdev_zap_leaf=0000000000000063
            vdev_stats=0000000007b519ae.0000000000000004.0000000000000006.0000000000000000.0000000000000000.0000000000000000.0000007400480000.0000000000000000.0000000000000001.000000000000000b.0000000000000003.0000000000000000.0000000000000000.0000000000000000.0000000000000000.00000000000e6000.0000000000006000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000001.0000000000000000.0000000000000000.0000000000000000.0000000000000000
    children[1]
        type='disk'
        id=0000000000000001
        guid=80a5beef354cdaaf
        path='/dev/dsk/c2t2d0s4'
        devid='id1,sd@SATA_____KINGSTON_SMS200S____50026B723A0566EE/e'
        phys_path='/pci@0,0/pci17aa,21cf@1f,2/disk@2,0:e'
        whole_disk=0000000000000000
        not_present=0000000000000001
        metaslab_array=0000000000000025
        metaslab_shift=000000000000001a
        ashift=000000000000000c
        asize=00000002f0540000
        is_log=0000000000000001
        create_txg=00000000007f61d2
        com.delphix:vdev_zap_leaf=0000000000000066
        com.delphix:vdev_zap_top=000000000000006e
        vdev_stats=0000000007b53543.0000000000000004.0000000000000001.0000000000000000.0000000000000000.0000000000000000.00000002f0480000.fffffffd0c000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000001.0000000000000000.0000000000000000.0000000000000000.0000000000000000
features_for_read
    com.delphix:hole_birth(unknown)
    com.delphix:embedded_data(unknown)
load_info
    missing_vdevs
        children[0]
            type='disk'
            id=0000000000000001
            guid=80a5beef354cdaaf
            path='/dev/dsk/c2t2d0s4'
            devid='id1,sd@SATA_____KINGSTON_SMS200S____50026B723A0566EE/e'
            phys_path='/pci@0,0/pci17aa,21cf@1f,2/disk@2,0:e'
            whole_disk=0000000000000000
            metaslab_array=0000000000000025
            metaslab_shift=000000000000001a
            ashift=000000000000000c
            asize=00000002f0540000
            is_log=0000000000000001
            create_txg=00000000007f61d2
    rewind_info
        missing_vdevs
            children[0]
                type='disk'
                id=0000000000000001
                guid=80a5beef354cdaaf
                path='/dev/dsk/c2t2d0s4'
                devid='id1,sd@SATA_____KINGSTON_SMS200S____50026B723A0566EE/e'
                phys_path='/pci@0,0/pci17aa,21cf@1f,2/disk@2,0:e'
                whole_disk=0000000000000000
                metaslab_array=0000000000000025
                metaslab_shift=000000000000001a
                ashift=000000000000000c
                asize=00000002f0540000
                is_log=0000000000000001
                create_txg=00000000007f61d2T

The pool root state is "can't open", "bad guid sum"; the top-level vdev (mirror) is apparently healthy and not degraded, with one disk being healthy and the other one in a "can't open" state due to "bad label" (replaced, but not yet resilvered). The log vdev is missing, which causes the pool root state to be set to "bad guid sum" near the end of spa_ld_trusted_config().

So "zpool status" just isn't decoding the resulting pool state correctly and runs into the assertion in status_callback().

History

#1

Updated by Joshua M. Clulow about 1 month ago

  • Project changed from site to illumos gate

Also available in: Atom PDF