[PSA] recursive = zfs - applies policy to all children

Just to be clear: This works as documented. This was a me problem.

So, to whom it may concern:

recursive = zfs

applies that policy to all children of the dataset - no matter how well you might have written the policy for a child it will be ignored and (I believe) there won’t be much indication of this happening.

Let it sit for a few years and you might start to dig into why there are gigabytes unaccounted for in a pool, and also some zfs commands feel pretty slow for some reason.

Well, the reason might be a huge amount of unpruned snapshots to a dataset you thought was ignored.

Anyways, I’m currently deleting ~78 000 snapshots. For - reasons :upside_down_face:

You’ve discovered the reason (actually, one of several) why “recursive=yes” came FIRST and “recursive=zfs” came only much later, as a result of significant pressure, and WITHOUT replacing “recursive=yes.” :cowboy_hat_face:

edit: for anyone who’s wondering what we’re on about, the OP is referring to Sanoid syntax. “Recursive=yes” instructs sanoid to handle recursion directly for itself; “recursive=zfs” instructs it to simply use the “-r” flag on ZFS commands. Recursive=zfs is a bit more computationally efficient in most cases, but it’s nowhere NEAR as smart as sanoid’s own native recursion routines, which is why I wrote it that way in the first place.