HomeFreeBSD

MFV r330973: 9164 assert: newds == os->os_dsl_dataset

Description

MFV r330973: 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>

PR: 225877
Reported by: asomers
MFC after: 1 week

Details

Provenance
avgAuthored on
Reviewer
asomers
Parents
rS330973: 9164 assert: newds == os->os_dsl_dataset
Branches
Unknown
Tags
Unknown