Skip to content

Misclassification of parent dataset as 'recursive' #45

@haasn

Description

@haasn
$ zfs list -rt filesystem -o name,mounted,com.sun:auto-snapshot media
NAME                MOUNTED  COM.SUN:AUTO-SNAPSHOT
media               yes      true
media/movies        no       true
media/movies/anime  yes      true
media/movies/big    yes      true
media/movies/yt     yes      true
$ zfs-auto-snapshot -n -v hourly 24 -P media
zfs snapshot -r media@zfs-auto-snap_hourly-2021-04-27-10h53
zfs snapshot -r media/movies/anime@zfs-auto-snap_hourly-2021-04-27-10h53
zfs snapshot -r media/movies/big@zfs-auto-snap_hourly-2021-04-27-10h53
zfs snapshot -r media/movies/yt@zfs-auto-snap_hourly-2021-04-27-10h53

Because media/movies is not mounted, it decides to create the leaf children's snapshots recursively. (Which is an... interesting design decision, to not snapshot unmounted filesystems)

However, it fails to treat the parent (media) as non-recursive. This results in the creation (but not subsequent deletion) of snapshots in media/movies:

$ zfs list -t snapshot media/movies | wc -l
3989

If I may ask, why all this.. sophistication, especially given that it's (clearly) brittle and results in bugs? What's wrong with treating every dataset as independent and issuing a zfs snapshot per dataset?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions