Solaris 10 and 11 may hang due deadlock in dsl_dataset_promote() (Doc ID 2304598.1)

Last updated on SEPTEMBER 08, 2017

Applies to:

Solaris Operating System - Version 10 8/11 U10 to 11.3 [Release 10.0 to 11.0]
Information in this document applies to any platform.

Symptoms

System hang and collected crash dump analysis shows zfs promote is hang at dsl_dataset_promote
use ::stacks -c dsl_dataset_promote to get the stack

void genunix:cv_wait+0x38((kcondvar_t *)0x300eb6ba5e6, (kmutex_t *)0x300eb6ba5e8)
void genunix:delay_common+0x80((clock_t))
void genunix:delay+0x88((clock_t)0xa)
int zfs:dsl_dataset_make_exclusive+0x50((dsl_dataset_t *)0x301ed245280, (void *)0x1a3af40)
int zfs:snaplist_make+0x68((dsl_pool_t *)0x60022af5580, (boolean_t)1, (uint64_t)0, (uint64_t)0x8f, (list_t *)0x2a10f699780)
int zfs:dsl_dataset_promote+0xdc((const char *), (char *))
zfs:zfs_ioc_promote((zfs_cmd_t *)0x301ecbc6000) - frame recycled
int zfs:zfsdev_ioctl+0x1ac((dev_t), (int), (intptr_t), (int), (cred_t *), (int *))
specfs:spec_ioctl((struct vnode *)0x60035e0b700, (int)0x5a24, (intptr_t)0xffbfe160, (int)0x100003, (struct cred *), (int *)0x2a10f699adc) - frame recycled
int genunix:fop_ioctl+0x2c((vnode_t *)0x60035e0b700, (int)0x5a24, (intptr_t)0xffbfe160, (int)0x100003, (cred_t *), (int *)0x2a10f699adc)
int genunix:ioctl+0x184((int), (int), (intptr_t))
unix:syscall_trap32+0xcc()

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