panic from dbuf_free_range() from dmu_free_object() while doing zfs receive
zfs - Zettabyte File System
This is a regression caused by #3834
Analysis by Matt Ahrens
The problem is easy to reproduce: zfs create -o recordsize=512 test/fs dd if=/dev/zero of=/test/fs/100m bs=1024k count=100 zfs snapshot test/fs@big zfs send test/fs@big | zfs recv test/recvd rm /test/fs/100m zfs snapshot test/fs@rm zfs send -i @big test/fs@rm | zfs recv test/recvd The root cause is that dmu_free_long_range_impl() does not free blocksize-aligned chunks. This causes us to instantiate dbufs, which dbuf_free_range() does not expect.
Updated by Marcel Telka over 6 years ago
commit 713d6c208802cfbb806329ec0d154b641b80c355 Author: Matthew Ahrens <email@example.com> Date: Tue Aug 20 20:11:52 2013 -0800 4047 panic from dbuf_free_range() from dmu_free_object() while doing zfs rec Reviewed by: Adam Leventhal <firstname.lastname@example.org> Reviewed by: George Wilson <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>