Help determining the source of "dataset is busy" when running "zfs destroy" #14269
Replies: 3 comments
-
Additional work with bpftrace indicates that the EBUSY is coming from dsl_destroy_head_check_impl() but I have been unsuccessful in attempting to compile a custom version of ZFS with |
Beta Was this translation helpful? Give feedback.
-
I have a similar issue. No clue why zfs thinks everything is busy, when nothing is. |
Beta Was this translation helpful? Give feedback.
-
AFAIK ZFS has no cases where it's incorrect about that, the problem is that there's nothing but a simple refcount without an explanation of who's holding it for those checks. In general, the 4 most common reasons are:
(I know you listed reasons to eliminate those, I was just enumerating it for anyone running into it who reads this.) Do you have more of a stack trace for who was calling You could also set |
Beta Was this translation helpful? Give feedback.
-
Hello,
Running different versions of OpenZFS on Ubuntu 20.04 (e.g. 0.8.3 or 2.1.6) with LXD, I frequently encounter the following error when attempting to delete a dataset even if the LXD container is stopped and nothing is using the dataset:
As far as I can tell, NOTHING is using this dataset:
lsof
returns no processes related to itlxd/containers/mycontainer/%recv
does not exist/proc/*/mounts
sharenfs
is set tooff
on this datasetzfs send
,zfs receive
, etc processes running/proc/spl/kstat/zfs/dbgmsg
doesn't show anything when running the above commandIf I try to strace the above command, I see the following:
Moreover, I am unable to export this pool:
How can I determine what is causing this dataset to remain "busy"? Is there a way for me to use bpftrace (please help with the bpftrace command I would need to use) to see what ZFS sees as holding open this dataset? A reboot will fix it, but I cannot frequently reboot this production system.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions