Solaris systems running KU 150400-02 or lower may panic with: type=31 rp=2a100f96f20 addr=28 mmu_fsr=0 occurred in module "zfs" due to a NULL pointer dereference (Doc ID 1615904.1)

Last updated on JULY 29, 2016

Applies to:

Solaris Operating System - Version 10 1/13 U11 and later
Information in this document applies to any platform.
Only ZFS pools with L2ARC (cache) devices are susceptible to this issue.

Symptoms

1. The system will panic with the following string and stack:

Panic string:

type=31 rp=2a100f96f20 addr=28 mmu_fsr=0 occurred in module "zfs" due to a NULL pointer dereference

Panic stack:

 zfs:arc_hash_replace+0x30 ( )
 zfs:arc_kill_buf+0x120 ( )
 zfs:arc_evict_buf+0x1d0 ( )
 zfs:arc_evict_bytes+0x70 ( )
 zfs:arc_get_data_block+0xc4 ( )
 zfs:arc_read+0x4d4 ( )
 zfs:dsl_read+0x44 ( )
 zfs:dbuf_prefetch+0x140 ( )
 zfs:dmu_prefetch+0x11c ( )
 zfs:metaslab_prefetch+0x80 ( )
 zfs:metaslab_sync_reassess+0xe4 ( )
 zfs:vdev_sync_done ( )
 zfs:spa_sync+0x71c ( )
 zfs:txg_sync_thread+0x1b8 ( )
 unix:thread_start+4 ( )

 

2. The ZFS pool associated with the panic must have a separate Layer 2 Adaptive Replacement Cache (L2ARC) device.
To determine if a pool has a separate L2ARC device, execute the following command. A L2ARC device will be displayed as "cache", as seen in the example below:

    # /usr/sbin/zpool status <pool>
     ...
    NAME       STATE     READ WRITE CKSUM
    <pool>     ONLINE       0     0     0
      c2t10d0  ONLINE       0     0     0
    cache
      c2t11d0  ONLINE       0     0     0

In this example the pool has one cache device c2t11d0 and is therefore susceptible to the issue.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms