Project

General

Profile

Bug #2127

'zpool create' core dumps

Added by Piotr Jasiukajtis over 8 years ago. Updated about 8 years ago.

Status:
In Progress
Priority:
Low
Assignee:
-
Category:
cmd - userland programs
Start date:
2012-02-14
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

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()
> 

History

#1

Updated by Milan Jurik over 8 years ago

  • Status changed from New to Feedback
  • Tags deleted (needs-triage)

Do you have the core file available?

#2

Updated by Piotr Jasiukajtis over 8 years ago

  • Status changed from Feedback to In Progress

Yes I have.

#5

Updated by Milan Jurik about 8 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
}

Also available in: Atom PDF