Bug #2127
open'zpool create' core dumps
0%
Description
I'm unable to reproduce this, but my colleague got this on oi_151a:
> ::status debugging core file of zpool (32-bit) from openindiana file: /sbin/zpool initial argv: zpool create -f data raidz1 c2t5000C50016AFEC4Fd0 c2t5000C50016B276D3d0 c2t5000 threading model: native threads status: process terminated by SIGSEGV (Segmentation Fault), addr=30414343 > $C fe69eeb8 libdiskmgt.so.1`clr_ctrl_disk_ptr+0x1d(815f198, 80ebc90, fe69eee8, fea7806e) fe69eee8 libdiskmgt.so.1`del_drive+0x40(80ebc90, 80e0a88, fe69ef18, fea7814e) fe69ef28 libdiskmgt.so.1`del_drive_by_name+0x63(80eb3b2, fea97000, fe69ef48) fe69ef48 libdiskmgt.so.1`cache_update+0x56(1, 80eb3a8, fe69ef6c, fea81c1a) fe69ef88 libdiskmgt.so.1`event_handler+0x14a(81b18c8) fe69efc8 libsysevent.so.1`subscriber_event_handler+0x85(815bf88, fef60000, fe69efe8, feeff0ae) fe69efe8 libc_hwcap1.so.1`_thrp_setup+0x9b(fe6a0a40) fe69eff8 libc_hwcap1.so.1`_lwp_start(fe6a0a40, 0, 0, 0, 0, 0) > ::walk thread | ::findstack stack pointer for thread 1: 8042b48 [ 08042b48 libc_hwcap1.so.1`syscall+0x13() ] 08042b78 libc_hwcap1.so.1`open+0xd1() 08042fb8 make_disks+0x273() 080433f8 make_disks+0x92() 08043838 make_disks+0x92() 08043868 make_root_vdev+0x8f() 08043cd8 zpool_do_create+0x395() 08047d18 main+0x158() 08047d44 _start+0x7d() stack pointer for thread 2: fe7aec08 [ fe7aec08 libc_hwcap1.so.1`__door_return+0x2f() ] fe7aec48 libsysevent.so.1`event_deliver_service+0x19d() 00000000 libc_hwcap1.so.1`__door_return+0x4c() stack pointer for thread 3: fe69eeb8 [ fe69eeb8 libdiskmgt.so.1`clr_ctrl_disk_ptr+0x1d() ] fe69eee8 libdiskmgt.so.1`del_drive+0x40() fe69ef28 libdiskmgt.so.1`del_drive_by_name+0x63() fe69ef48 libdiskmgt.so.1`cache_update+0x56() fe69ef88 libdiskmgt.so.1`event_handler+0x14a() fe69efc8 libsysevent.so.1`subscriber_event_handler+0x85() fe69efe8 libc_hwcap1.so.1`_thrp_setup+0x9b() fe69eff8 libc_hwcap1.so.1`_lwp_start() stack pointer for thread 4: fe56eee8 [ fe56eee8 libc_hwcap1.so.1`__pollsys+0x15() ] fe56ef28 libc_hwcap1.so.1`poll+0x4c() fe56efc8 libdiskmgt.so.1`watch_mnttab+0xb4() fe56efe8 libc_hwcap1.so.1`_thrp_setup+0x9b() fe56eff8 libc_hwcap1.so.1`_lwp_start() stack pointer for thread 5: fe06eef8 [ fe06eef8 libc_hwcap1.so.1`__lwp_park+0x19() ] fe06ef28 libc_hwcap1.so.1`cond_wait_queue+0x60() fe06ef68 libc_hwcap1.so.1`__cond_wait+0x86() fe06ef88 libc_hwcap1.so.1`cond_wait+0x24() fe06efc8 libsysevent.so.1`subscriber_event_handler+0x59() fe06efe8 libc_hwcap1.so.1`_thrp_setup+0x9b() fe06eff8 libc_hwcap1.so.1`_lwp_start() stack pointer for thread 6: fdeeefa8 [ fdeeefa8 libc_hwcap1.so.1`__door_return+0x2f() ] fdeeefc8 libc_hwcap1.so.1`door_create_func+0x2f() fdeeefe8 libc_hwcap1.so.1`_thrp_setup+0x9b() fdeeeff8 libc_hwcap1.so.1`_lwp_start() >
Updated by Milan Jurik over 11 years ago
- Status changed from New to Feedback
- Tags deleted (
needs-triage)
Do you have the core file available?
Updated by Piotr Jasiukajtis over 11 years ago
- Status changed from Feedback to In Progress
Yes I have.
Updated by Piotr Jasiukajtis over 11 years ago
Updated by Milan Jurik over 11 years ago
pargs core_zpool
core 'core_zpool' of 2624: zpool create -f data raidz1 c2t5000C50016AFEC4Fd0 c2t5000C50016B276D3d0 c2t5000
argv0: zpool
argv1: create
argv2: -f
argv3: data
argv4: raidz1
argv5: c2t5000C50016AFEC4Fd0
argv6: c2t5000C50016B276D3d0
argv7: c2t5000C500169E213Fd0
argv8: c3t5000CCA01202CE01d0
argv9: c3t5000CCA012043AFDd0
argv10: c3t5000CCA012043B71d0
argv11: c3t5000CCA012043DD1d0
argv12: c3t5000CCA0120103D1d0
argv13: c3t5000CCA0120105C1d0
Few more info from the core file:
$C
fe69eeb8 libdiskmgt.so.1`clr_ctrl_disk_ptr+0x1d(815f198, 80ebc90, fe69eee8,
fea7806e)
fe69eee8 libdiskmgt.so.1`del_drive+0x40(80ebc90, 80e0a88, fe69ef18, fea7814e)
fe69ef28 libdiskmgt.so.1`del_drive_by_name+0x63(80eb3b2, fea97000, fe69ef48)
fe69ef48 libdiskmgt.so.1`cache_update+0x56(1, 80eb3a8, fe69ef6c, fea81c1a)
fe69ef88 libdiskmgt.so.1`event_handler+0x14a(81b18c8)
fe69efc8 libsysevent.so.1`subscriber_event_handler+0x85(815bf88, fef60000,
fe69efe8, feeff0ae)
fe69efe8 libc_hwcap1.so.1`_thrp_setup+0x9b(fe6a0a40)
fe69eff8 libc_hwcap1.so.1`_lwp_start(fe6a0a40, 0, 0, 0, 0, 0)
del_drive_by_name() is called with:
80eb3b2/s
0x80eb3b2: c3t5000CCA0120105C1d0
del_drive is called with:
80ebc90::print struct disk
{
device_id = 0x80efb78 "id1,sd@n5000cca0120105c0"
devid = 0x80e0a68
kernel_name = 0x80e7ea8 "disk2"
product_id = 0x8161d10 "HUC106030CSS600"
vendor_id = 0x80e7298 "HITACHI"
controllers = 0x80e7288
paths = 0
aliases = 0x81608f0
next = 0x80ebc40
drv_type = 0x1
removable = 0
sync_speed = 0xffffffff
rpm = 0
wide = 0xffffffff
cd_rom = 0
}
But the controller_info passed to clr_ctrl_disk_ptr() as the first argument does not look correct:
815f198::print struct controller_info
{
name = 0x7665642f
kstat_name = 0x6b73642f
ctype = 0x7433632f
freq = 0x30303035
disks = 0x30414343
paths = 0x34303231
bus = 0x31444433
next = 0x30733064
multiplex = 0
scsi_options = 0x107ff8
}
80e7288/p
0x80e7288: 0x815f198
while:
815f198/s
0x815f198: /dev/dsk/c3t5000CCA012043DD1d0s0
815f198 is not controller_info
Even the next disk has controller_info broken:
80ebc40::print struct disk
{
device_id = 0x80efbc8 "id1,sd@n5000cca012043b70"
devid = 0x80e0ac8
kernel_name = 0x80e7e88 "disk1"
product_id = 0x8161f38 "HUC106030CSS600"
vendor_id = 0x80e72b8 "HITACHI"
controllers = 0x80e7e48
paths = 0
aliases = 0x8160ce0
next = 0x80ebba0
drv_type = 0x1
removable = 0
sync_speed = 0xffffffff
rpm = 0
wide = 0xffffffff
cd_rom = 0
}
80e7e48/p
0x80e7e48: 0x815f198
815f198/s
0x815f198: /dev/dsk/c3t5000CCA012043DD1d0s0
80e7e48::print struct controller_info
{
name = 0x815f198 "/dev/dsk/c3t5000CCA012043DD1d0s0"
kstat_name = 0
ctype = 0xf
freq = 0x3a10bff1
disks = 0x726f7069
paths = 0x8003274
bus = 0xc
next = 0x3a10bff4
multiplex = 0
scsi_options = 0x8109990
}
But the next looks much better:
80ebba0::print struct disk
{
device_id = 0x80efe20 "id1,sd@n50015179594d675f"
devid = 0x80e0c08
kernel_name = 0x80e7338 "disk13"
product_id = 0x80e0be8 "INTEL SSDSA2CW16"
vendor_id = 0x80e7318 "ATA"
controllers = 0x80e7308
paths = 0x80e7ee8
aliases = 0x815f708
next = 0x80ebb50
drv_type = 0x1
removable = 0
sync_speed = 0xffffffff
rpm = 0
wide = 0xffffffff
cd_rom = 0
}
80e7308/p
0x80e7308: 0x80ec850
80ec850::print struct controller_info
{
name = 0x80e1f88 "/scsi_vhci"
kstat_name = 0x80e1fb8 "scsi_vhci0"
ctype = 0xfea978c0 "scsi"
freq = 0
disks = 0x80efdf8
paths = 0x80e7418
bus = 0
next = 0
multiplex = 0x1
scsi_options = 0x107ff8
}