Bug #9164
closedassert: newds == os->os_dsl_dataset
100%
Description
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)
assfail3() at assfail3+0x2c/frame 0xfffffe002a621480
dmu_objset_refresh_ownership() at dmu_objset_refresh_ownership+0x161/frame
0xfffffe002a6215c0
zfs_ioc_userspace_upgrade() at zfs_ioc_userspace_upgrade+0x97/frame
0xfffffe002a621600
zfs_prop_set_special() at zfs_prop_set_special+0x465/frame 0xfffffe002a621670
zfs_set_prop_nvlist() at zfs_set_prop_nvlist+0x23f/frame 0xfffffe002a6216f0
zfs_ioc_set_prop() at zfs_ioc_set_prop+0x129/frame 0xfffffe002a621740
zfsdev_ioctl() at zfsdev_ioctl+0x76b/frame 0xfffffe002a6217e0
I see that the old dataset has dsl_dataset_evict_async() pending in
ds_dbu.dbu_tqent and its ds_dbuf is NULL.
Updated by Andriy Gapon over 4 years ago
Updated by Electric Monk over 4 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit 5f5913bb83405db87f982abee80162a479d363af
commit 5f5913bb83405db87f982abee80162a479d363af Author: Andriy Gapon <avg@FreeBSD.org> Date: 2018-03-14T15:55:08.000Z 9164 assert: newds == os->os_dsl_dataset Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: Don Brady <don.brady@delphix.com> Approved by: Richard Lowe <richlowe@richlowe.net>