]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFV r329313: 8857 zio_remove_child() panic due to already destroyed parent zio
authoravg <avg@FreeBSD.org>
Thu, 15 Feb 2018 14:46:29 +0000 (14:46 +0000)
committeravg <avg@FreeBSD.org>
Thu, 15 Feb 2018 14:46:29 +0000 (14:46 +0000)
commitf1d57f3528918363b2e3e1b36a5510e238395fe8
tree2c0d6d9bac5e76aefd18ad91d648ac59ebcdb1ee
parentd8134bdf575f1eac19c7c37aedf93bbb0c41271c
MFV r329313: 8857 zio_remove_child() panic due to already destroyed parent zio

illumos/illumos-gate@d6e1c446d7897003fd9fd36ef5aa7da350b7f6af
https://github.com/illumos/illumos-gate/commit/d6e1c446d7897003fd9fd36ef5aa7da350b7f6af

https://www.illumos.org/issues/8857
  I had an OS panic on one of our servers:

  ffffff01809128c0 vpanic()
  ffffff01809128e0 mutex_panic+0x58(fffffffffb94c904ffffff597dde7f80)
  ffffff0180912950 mutex_vector_enter+0x347(ffffff597dde7f80)
  ffffff01809129b0 zio_remove_child+0x50(ffffff597dde7c58ffffff32bd901ac0,
  ffffff3373370908)
  ffffff0180912a40 zio_done+0x390(ffffff32bd901ac0)
  ffffff0180912a70 zio_execute+0x78(ffffff32bd901ac0)
  ffffff0180912b30 taskq_thread+0x2d0(ffffff33bae44140)
  ffffff0180912b40 thread_start+8()

  It panicked here:
  http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs/
  zio.c#430

  pio->io_lock is DEAD, thus a panic. Further analysis shows the "pio"
  (parent zio of "cio") has already been destroyed.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Andriy Gapon <avg@FreeBSD.org>
Reviewed by: Youzhong Yang <youzhong@gmail.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: George Wilson <george.wilson@delphix.com>

PR: 223803
Tested by: shiva.bhanujan@quorum.com
MFC after: 2 weeks
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c