Live Save core (savecore -L) crashes the system with assertion failed: len <= zv->zv_volblocksize, file: ../../common/fs/zfs/zvol.c, line: 1409 (Doc ID 1961918.1)

Last updated on JULY 29, 2016

Applies to:

Solaris Operating System - Version 10 1/13 U11 to 11.2 [Release 10.0 to 11.0]
Information in this document applies to any platform.

Symptoms

 Live save crash (savecore -L) crashes the system with assertion failed:  len <= zv->zv_volblocksize, file: ../../common/fs/zfs/zvol.c, line: 1409

This would causes system down rather than the original purpose to save live crash without interruption to the system.

Panic strings is shown as follows

panic on CPU 1
panic string:   assertion failed: len <= zv->zv_volblocksize, file: ../../common/fs/zfs/zvol.c, line: 1409
==== panic user (LWP_SYS) thread: 0x30036aa8b00  PID: 11400  on CPU: 1 ====
cmd: savecore -L
t_procp: 0x60017bd8738
  p_as: 0x600115f8528  size: 2031616  RSS: 1441792
     a_hat: 0x3005b791180
     cnum: CPU0:40/512
     cpusran: 1
  p_zone: 0x1a1f100 (global)
t_stk: 0x2a106debae0  sp: 0x198ad41  t_stkbase: 0x2a106de6000
t_pri: 0 (TS)  pctcpu: 0.106922
t_transience: 0  t_wkld_flags: 0
t_lwp: 0x6001d005c00  t_tid: 1
  machpcb: 0x2a106debae0
  lwp_ap:   0x2a106debbd0
  t_mstate: LMS_SYSTEM  ms_prev: LMS_USER
  ms_state_start: 7 days 3 hours 44 minutes 36.434043735 seconds later
  ms_start: 7 days 3 hours 44 minutes 36.403141847 seconds later
t_cpupart: 0x198bc50(0)  last CPU: 1
idle: 11 ticks (0.11s)
start: Thu Jan  8 05:22:38 2015
age: 1 seconds (1 seconds)
t_state:     TS_ONPROC
t_flag:      0x1800 (T_PANIC|T_LWPREUSE)
t_proc_flag: 0x104 (TP_TWAIT|TP_MSACCT)
t_schedflag: 0x13 (TS_LOAD|TS_DONT_SWAP|TS_SIGNALLED)
t_acflag:    3 (TA_NO_PROCESS_LOCK|TA_BATCH_TICKS)
p_flag:      0x4a004000 (SEXECED|SMSACCT|SAUTOLPG|SMSFORK)

pc:      unix:panicsys+0x48:   call     unix:setjmp

void unix:panicsys+0x48((const char *)0x12b46a0, (va_list)0x2a106dea9d8, (struct regs *)0x198b710, (int)1, 0x4480001603, , , , , , , , 0x12b46a0, 0x2a106dea9d8)
unix:vpanic_common+0x78(0x12b46a0, 0x2a106dea9d8, 1, 0x12000, 0x12000, 8)
void unix:panic+0x1c((const char *)0x12b46a0, (void *)0x13af830, 0x13af850, 0x581, 0, 0x6001027c200, ...)
int genunix:assfail+0x74((const char *)0x13af830, (const char *)0x13af850, (int)0x581)
int zfs:zvol_preallocio+0x244((zvol_state_t *)0x60011462980, (caddr_t)0, (uint64_t)0x12000, (size_t)0xee000, (boolean_t)0, (buf_t *)0x6001a415ed8)
int zfs:zvol_strategy+0x160((buf_t *)0x6001a415ed8)
int genunix:default_physio+0x380((int (*)()), (struct buf *), (dev_t)0x10000000002, (int)0x100, (int (*)()), (struct uio *)0x2a106deae60)
specfs:spec_write((struct vnode *)0x3047b15e200, (struct uio *)0x2a106deae60, (int)0, (struct cred *)0x60010003ed8, (struct caller_context *)0) - frame recycled
int genunix:fop_write+0x20((vnode_t *)0x3047b15e200, (uio_t *)0x2a106deae60, (int)0, (cred_t *)0x60010003ed8, (struct caller_context *)0)
int genunix:vn_rdwr+0x198((enum uio_rw)1, (struct vnode *)0x3047b15e200, (caddr_t)0x3002fc82000, (ssize_t)0xee000, (offset_t)0x2ed00000, (enum uio_seg)1, (int)0, (rlim64_t)0x3bfa30000, (cred_t *)0x60010003ed8, (ssize_t *)0)
offset_t genunix:dumpvp_flush+0x11c()
void genunix:dumpvp_write+0x70((const void *), (size_t))
genunix:dumpvp_ksyms_write((const void *)0x2a106deb1a0, (void *)0, (size_t)0x18) - frame recycled
void genunix:ksyms_emit+0x38((ksyms_walkinfo_t *)0x2a106deb660, (void *)0x2a106deb1a0, (size_t)0x18?, (int)4)
void genunix:ksyms_walk_one+0xa4((void *)0x2a106deb660, (void *)0x3001d0b2000, (size_t)0x890a)
void genunix:vmem_walk+0xc4((vmem_t *)0x30013fa2d98, (int)1, (int (*)())0x115c248, (void *)0x2a106deb660)
ssize_t genunix:ksyms_walk+0x7c((ksyms_walkinfo_t *)0x2a106deb660, (void *)0, (ssize_t)0x7ffffffffff67da7, (int (*)())0x112276c, (void *)0, (int)4)
size_t genunix:ksyms_snapshot+0x1dc((int (*)())0x112276c, (void *)0, (size_t)0x7fffffffffffffff)
void genunix:dumpsys+0x32c()
int dump:dump_ioctl+0x330((dev_t), (int), (intptr_t), (int), (cred_t *), (int *))
specfs:spec_ioctl((struct vnode *)0x30038387040, (int)0xdd16, (intptr_t)0, (int)0x202001, (struct cred *), (int *)0x2a106debadc) - frame recycled
int genunix:fop_ioctl+0x2c((vnode_t *)0x30038387040, (int)0xdd16, (intptr_t)0, (int)0x202001, (cred_t *), (int *)0x2a106debadc)
int genunix:ioctl+0x184((int), (int), (intptr_t))
unix:syscall_trap+0xac()
-- switch to user thread's user stack --

Changes

 The problem is caused by the following conditions

1) zpool version was upgraded from < 32 to >=32


2) Patch version starting from 150400-14 or later on Solaris 10

   Solaris 11.1 SRU 17 or later

   Solaris 11.2 all releases

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