了解核心转储(Solaris 11崩溃)

我仍然试图在Solaris 11系统上遇到崩溃。 最近在崩溃期间写了一个核心转储。 用mdb产量进行研究

> $C ffffff0021c09430 vpanic() ffffff0021c09460 vcmn_err+0x2e(3, fffffffff7a8a830, ffffff0021c09520) ffffff0021c09550 zfs_panic_recover+0xae() ffffff0021c09610 dmu_buf_hold_array_by_dnode+0xbd(ffffff05207b5018, 400000, 20000, 0, fffffffff7a85ce0, ffffff0021c09654, ffffff0021c09658, 0) ffffff0021c096b0 dmu_write_uio_dnode+0x50(ffffff05207b5018, ffffff0021c09a10, 20000, ffffff051efd0788) ffffff0021c09700 dmu_write_uio_dbuf+0x58(ffffff05207b2320, ffffff0021c09a10, 20000, ffffff051efd0788) ffffff0021c09960 zfs_write+0x843(ffffff051f120900, ffffff0021c09a10, 0, ffffff04e4b6adb0, 0) ffffff0021c099d0 fop_write+0xa6(ffffff051f120900, ffffff0021c09a10, 0, ffffff04e4b6adb0, 0) ffffff0021c09aa0 vn_rdwr+0x1bd(1, ffffff051f120900, ffffff051fb2e0c0, 20000, 400000, 1, 0, fffffffffffffffd, ffffff04e4b6adb0, ffffff0021c09ad8) ffffff0021c09b20 zfs_replay_write+0xe3(ffffff04eb2b4200, ffffff051fb2e000, 0) ffffff0021c09b60 zil_replay_wr_task+0x2d(ffffff04eb57ea00) ffffff0021c09c00 taskq_thread+0x22e(ffffff051ede9810) ffffff0021c09c10 thread_start+8() 

我怎么知道栈的哪一部分导致了崩溃?

pstack core

尽pipe我的solaris 11的体验很轻,但过去的第二个地址是开始分解的有用的地方。

然后在mdb中

::stack

> <address>::dis

你有任何系统日志消息,可以帮助你进一步? 我快速浏览了OpenSolaris源代码,并且dmu_buf_hold_array_by_dnode可能会导致“zfs:访问对象的末尾”的恐慌。 然后我在zfs上发现了一个很好的post,在opensolaris.org上讨论了接下来要做的事情。