]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
9164 assert: newds == os->os_dsl_dataset
authorAndriy Gapon <avg@FreeBSD.org>
Thu, 15 Mar 2018 08:46:49 +0000 (08:46 +0000)
committerAndriy Gapon <avg@FreeBSD.org>
Thu, 15 Mar 2018 08:46:49 +0000 (08:46 +0000)
commit695c9b66458eb297d0ab2832533e42294f621d86
tree366311901da5f36a80b7eef00fc8de6c1fe6ee07
parentdcf8a50d8f4bb6d76490744224f694dd86086c21
9164 assert: newds == os->os_dsl_dataset

illumos/illumos-gate@5f5913bb83405db87f982abee80162a479d363af
https://github.com/illumos/illumos-gate/commit/5f5913bb83405db87f982abee80162a479d363af

https://www.illumos.org/issues/9164
  This issue has been reported by Alan Somers as
  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225877

  dmu_objset_refresh_ownership() first disowns a dataset (and releases
  it) and then owns it again. There is an assert that the new dataset
  object is the same as the old dataset object.  When running ZFS Test
  Suite on FreeBSD we see this panic from zpool_upgrade_007_pos test:

  panic: solaris assert: newds == os->os_dsl_dataset (0xfffff80045f4c000
  == 0xfffff80021ab4800)

  I see that the old dataset has dsl_dataset_evict_async() pending in
  ds_dbu.dbu_tqent and its ds_dbuf is NULL.

Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Don Brady <don.brady@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Andriy Gapon <avg@FreeBSD.org>
uts/common/fs/zfs/dmu_objset.c
uts/common/fs/zfs/sys/dmu_objset.h
uts/common/fs/zfs/zfs_ioctl.c