kimono-koans/httm

Only one version listed on snapper/btrfs using sudo

quidnu opened this issue · 12 comments

quidnu commented

Describe the bug
When trying to run httm on a file only one version is displayed. This is on btrfs using snapper automatic snapshots (hourly)

To Reproduce
Steps to reproduce the behavior:

  1. sudo /usr/bin/httm ~/.zshrc
  2. see only one version listed (presumably corresponding to the current version).

Expected behavior
Expected different versions listed corresponding to the (many) snapshots created automatically with snapper

Additional context

  • httm version 0.29.7 (via provided deb)
  • OS: [e.g. Ubuntu 23.04]
  • Relevant filesystem/s: btrfs, snapper
  • httm --debug output: Doesn't terminate (?)

Thank you for your bug report.

httm --debug requires you execute with an input file, otherwise it waits on stdin.

Could you try executing sudo httm --debug ~/.zshrc 2>&1 and post the output here?

Do you have a number of unique file versions of ~/.zshrc or do all snapshot versions have the same contents?

To confirm, could you try executing sudo httm --unique=all ~/.zshrc and post the output here?

I've tested re: the latest httm version and it seems to work fine with a basic snapper setup. See:

25956  sudo zfs create -V 1G -b 8192 -o compression=zle -o logbias=throughput -o sync=always -o primarycache=metadata -o com.sun:auto-snapshot=false rpool/btrfs-test
25961  sudo mkfs.btrfs /dev/zvol/rpool/btrfs-test
25963  sudo mount /dev/zvol/rpool/btrfs-test /mnt
25965  sudo apt install snapper
25966  sudo snapper create-config /mnt
25968  cd /mnt
25971  sudo touch test
25972  echo hello | sudo tee test
25975  sudo snapper create
25974  echo "hello world" | sudo tee test
25975  sudo snapper create
25978  sudo httm test
─────────────────────────────────────────────────────────────────────
Wed Jul 05 11:58:34 2023   6 bytes  "/mnt/.snapshots/2/snapshot/test"
Wed Jul 05 11:58:49 2023  12 bytes  "/mnt/.snapshots/3/snapshot/test"
─────────────────────────────────────────────────────────────────────
Wed Jul 05 11:58:49 2023  12 bytes  "/mnt/test"
─────────────────────────────────────────────────────────────────────
quidnu commented

Not sure what I'm doing wrong, here is the (lightly redacted) debug output on ~/.zshrc and unique/all on ~/.history (which is constantly updated/snapshotted)

% sudo httm --unique=all ~/.history
────────────────────────────────────────────────────────────────
Wed Jul 05 12:09:23 2023  167.6 KiB  "/home/user1/.history"
────────────────────────────────────────────────────────────────
Config {
    paths: [
        PathData {
            path_buf: "/home/user1/.zshrc",
            metadata: Some(
                PathMetadata {
                    size: 16032,
                    modify_time: SystemTime {
                        tv_sec: 1687734620,
                        tv_nsec: 271436027,
                    },
                },
            ),
        },
    ],
    opt_recursive: false,
    opt_exact: false,
    opt_no_filter: false,
    opt_debug: true,
    opt_no_traverse: false,
    opt_omit_ditto: false,
    opt_no_hidden: false,
    opt_json: false,
    opt_one_filesystem: false,
    uniqueness: UniqueMetadata,
    opt_bulk_exclusion: None,
    opt_last_snap: None,
    opt_preview: None,
    opt_deleted_mode: None,
    opt_requested_dir: None,
    requested_utc_offset: -04:00:00,
    exec_mode: Display,
    print_mode: FormattedDefault,
    dataset_collection: FilesystemInfo {
        map_of_datasets: MapOfDatasets {
            inner: {
                "/": DatasetMetadata {
                    source: "/@",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/home/user2/spinner": DatasetMetadata {
                    source: "/@user2-home",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/home_spinner/user2": DatasetMetadata {
                    source: "/@user2-home",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/gnu/store": DatasetMetadata {
                    source: "/@",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/bdata": DatasetMetadata {
                    source: "/@bdata",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/var": DatasetMetadata {
                    source: "/@var",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/var/lib/docker/btrfs": DatasetMetadata {
                    source: "/@var",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/home_spinner": DatasetMetadata {
                    source: "/@home",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/tmp": DatasetMetadata {
                    source: "/@tmp",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/unet/media": DatasetMetadata {
                    source: "/@media",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/backups": DatasetMetadata {
                    source: "/@backups",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/backups/timemachine": DatasetMetadata {
                    source: "/@timemachine",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/unet": DatasetMetadata {
                    source: "/@unet",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/home/user1/spinner": DatasetMetadata {
                    source: "/@home",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/vmimages": DatasetMetadata {
                    source: "/@vmimages",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/var/snap/firefox/common/host-hunspell": DatasetMetadata {
                    source: "/@",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/home": DatasetMetadata {
                    source: "/@home",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
                "/home/user2": DatasetMetadata {
                    source: "/@user2-home",
                    fs_type: Btrfs,
                    mount_type: Local,
                },
            },
            max_len: 6,
        },
        map_of_snaps: MapOfSnaps {
            inner: {
                "/": [],
                "/home/user2/spinner": [],
                "/home_spinner/user2": [],
                "/gnu/store": [],
                "/bdata": [],
                "/var": [
                    "/var/lib/docker/btrfs/subvolumes/8",
                    "/var/lib/docker/btrfs/subvolumes/5",
                    "/var/lib/docker/btrfs/subvolumes/a",
                    "/var/lib/docker/btrfs/subvolumes/d",
                ],
                "/var/lib/docker/btrfs": [],
                "/home_spinner": [],
                "/tmp": [],
                "/unet/media": [],
                "/backups": [],
                "/backups/timemachine": [],
                "/unet": [],
                "/home/user1/spinner": [],
                "/vmimages": [],
                "/var/snap/firefox/common/host-hunspell": [],
                "/home": [],
                "/home/user2": [],
            },
        },
        filter_dirs: FilterDirs {
            inner: {
                "/dev/mqueue",
                "/snap/gnome-3-38-2004/137",
                "/run/snapd/ns/firefox.mnt",
                "/snap/gnome-system-monitor/184",
                "/run/user/1001/gvfs",
                "/media/user1/f",
                "/snap/core/15419",
                "/snap/youtube-dl/4630",
                "/media/user1/f_volume",
                "/snap/android-studio/126",
                "/run/credentials/systemd-sysusers.service",
                "/snap/discord/151",
                "/run/credentials/systemd-sysctl.service",
                "/run/docker/netns/4ce484ee081c",
                "/snap/core20/1974",
                "/snap/core20/1950",
                "/run/docker/netns/aa42ee39468f",
                "/snap/gnome-3-26-1604/111",
                "/snap/code/131",
                "/media/user1/backup_disk",
                "/sys",
                "/snap/chromium/2497",
                "/dev/hugepages",
                "/run/user/1000",
                "/snap/gnome-3-38-2004/140",
                "/run/snapd/ns/lxd.mnt",
                "/run/snapd/ns/grafana.mnt",
                "/run/rpc_pipefs",
                "/snap/lxd/25086",
                "/snap/gnome-42-2204/105",
                "/run/credentials/systemd-tmpfiles-setup.service",
                "/run/docker/netns/f09431733be8",
                "/run/snapd/ns/youtube-dl.mnt",
                "/run/user/1001",
                "/var/lib/lxcfs",
                "/run/snapd/ns/discord.mnt",
                "/snap/firefox/2710",
                "/run/docker/netns/811b3ad43e41",
                "/proc",
                "/snap/discord/153",
                "/sys/kernel/security",
                "/snap/gnome-3-28-1804/194",
                "/snap/androidsdk/58",
                "/snap/gnome-42-2204/111",
                "/snap/ipfs-desktop/46",
                "/run/docker/netns/71511a2b9a3f",
                "/snap/gnome-system-monitor/181",
                "/media/user1/8",
                "/run/docker/netns/408adfb70d75",
                "/snap/anbox/186",
                "/snap/androidsdk/52",
                "/run/snapd/ns/chromium.mnt",
                "/run/docker/netns/0411d9291a54",
                "/snap/youtube-dl/4806",
                "/snap/core/15511",
                "/snap/chezmoi/701",
                "/run/docker/netns/default",
                "/run/lock",
                "/snap/ipfs/3744",
                "/snap/cups/950",
                "/snap/tidy-viewer/346",
                "/snap/rustup/1027",
                "/run/docker/netns/f7e3f367409c",
                "/snap/ipfs-desktop/45",
                "/run/docker/netns/947d9dd7b487",
                "/snap/core18/2785",
                "/dev/pts",
                "/snap/bare/5",
                "/run/snapd/ns",
                "/sys/kernel/config",
                "/snap/chezmoi/698",
                "/run/docker/netns/be72d7b69bf3",
                "/run/docker/netns/dc9e10b8df5b",
                "/run/qemu",
                "/run/docker/netns/0be7151d2d53",
                "/snap/lxd/25112",
                "/snap/gtk-common-themes/1534",
                "/snap/cups/962",
                "/run/docker/netns/697ac3b3e53a",
                "/sys/fs/bpf",
                "/snap/hunspell-dictionaries-1-7-2004/2",
                "/snap/ipfs/3709",
                "/sys/fs/pstore",
                "/snap/gnome-3-26-1604/104",
                "/snap/gnome-3-28-1804/198",
                "/snap/code/132",
                "/run/snapd/ns/anbox.mnt",
                "/run/docker/netns/5feb34a331e3",
                "/run/docker/netns/77c3bbc1e594",
                "/sys/kernel/debug",
                "/snap/snap-store/959",
                "/sys/kernel/tracing",
                "/run/snapd/ns/cups.mnt",
                "/snap/tidy-viewer/353",
                "/dev",
                "/snap/croc/107",
                "/run",
                "/run/user/1001/doc",
                "/snap/chromium/2529",
                "/snap/gtk-common-themes/1535",
                "/snap/core22/766",
                "/snap/subsync/11",
                "/proc/fs/nfsd",
                "/sys/fs/cgroup",
                "/snap/firefox/2800",
                "/dev/shm",
                "/snap/flutter/130",
                "/snap/core18/2751",
                "/snap/sosumi/15",
                "/run/docker/netns/13d93813d390",
                "/sys/fs/fuse/connections",
                "/run/credentials/systemd-tmpfiles-setup-dev.service",
                "/snap/core22/750",
                "/run/user/1000/gvfs",
                "/snap/flutter/141",
                "/snap/snap-store/638",
                "/proc/sys/fs/binfmt_misc",
                "/run/docker/netns/28819db76de7",
                "/snap/android-studio/125",
                "/snap/grafana/36",
                "/run/user/1000/doc",
            },
            max_len: 5,
        },
        opt_map_of_alts: None,
        opt_map_of_aliases: None,
        opt_common_snap_dir: Some(
            "/var/lib/docker/btrfs/subvolumes",
        ),
    },
    pwd: PathData {
        path_buf: "/home/user1/c/subtitles",
        metadata: Some(
            PathMetadata {
                size: 965144,
                modify_time: SystemTime {
                    tv_sec: 1688572354,
                    tv_nsec: 450659621,
                },
            },
        ),
    },
}
─────────────────────────────────────────────────────────────
Sun Jun 25 19:10:20 2023  15.7 KiB  "/home/user1/.zshrc"
─────────────────────────────────────────────────────────────
quidnu commented

I do see diff output when running sudo snapper -c home diff 26434..0 ~/.zshrc so at least snapper can read the snapshots.

Okay what I'm seeing is httm is not correctly detecting your snap directories, except re: /var. When httm starts up, it should read all the directories where snapshots could be.

See mine:

 map_of_snaps: MapOfSnaps {
            inner: {
                "/usr/local": [
                    "/usr/local/.zfs/snapshot/snap_2023-06-29-06:54:11_prepApt",
                    "/usr/local/.zfs/snapshot/snap_2023-06-23-06:07:16_prepApt",
                    "/usr/local/.zfs/snapshot/autosnap_2023-05-01_00:00:48_monthly",
                    "/usr/local/.zfs/snapshot/snap_2023-06-23-09:48:01_prepApt",
                    "/usr/local/.zfs/snapshot/autosnap_2023-07-03_07:00:34_hourly",
                    "/usr/local/.zfs/snapshot/autosnap_2023-07-04_04:00:35_hourly",
                    "/usr/local/.zfs/snapshot/snap_2023-06-28-10:16:05_prepApt",
                    "/usr/local/.zfs/snapshot/autosnap_2023-07-03_20:00:32_hourly",
                    "/usr/local/.zfs/snapshot/autosnap_2023-02-01_00:00:30_monthly",
...

And compare to yours:

        map_of_snaps: MapOfSnaps {
            inner: {
                "/": [],
                "/home/user2/spinner": [],
                "/home_spinner/user2": [],
                "/gnu/store": [],
                "/bdata": [],
                "/var": [
                    "/var/lib/docker/btrfs/subvolumes/8",
                    "/var/lib/docker/btrfs/subvolumes/5",
                    "/var/lib/docker/btrfs/subvolumes/a",
                    "/var/lib/docker/btrfs/subvolumes/d",
                ],
                "/var/lib/docker/btrfs": [],
                "/home_spinner": [],
                "/tmp": [],
                "/unet/media": [],
                "/backups": [],
                "/backups/timemachine": [],
                "/unet": [],
                "/home/user1/spinner": [],
                "/vmimages": [],
                "/var/snap/firefox/common/host-hunspell": [],
                "/home": [],
                "/home/user2": [],
            },
        },

A couple things:

  1. Are your snapshot volumes perhaps not mounted?,
  2. Have you actually mounted these volumes somewhere other than the standard snapper mount location, e.g. .snapshots/...?,
  3. Do you have a different snapshot config re: /var?
  4. What's your output re: sudo btrfs subvolume list -a -s /home/user1?
quidnu commented
  1. I think they are. For example I can see the contents /home/.snapshots
  2. I think /home/.snapshots is standard
  3. I see that actually it's only the /var/lib/docker subdirectory whose snapshots are showing. /var should have snapshots of its own. docker somehow manages snapshots, I don't remember how, so yes that directory is managed differently.
  4. See below (I only kept one of the var/lib/docker directories, there are many more)
ID 33538 gen 11975279 cgen 1649486 top level 501 otime 2020-07-21 22:00:16 path <FS_TREE>/@home/.snapshots/10250/snapshot
ID 33539 gen 11975279 cgen 1649487 top level 507 otime 2020-07-21 22:00:18 path <FS_TREE>/@user2-home/.snapshots/10249/snapshot
ID 38049 gen 11951047 cgen 1761932 top level 19321 otime 2020-11-02 21:20:06 path <FS_TREE>/@var/lib/docker/btrfs/subvolumes/8e
ID 40887 gen 11975279 cgen 1860234 top level 501 otime 2020-12-09 21:00:13 path <FS_TREE>/@home/.snapshots/11875/snapshot
ID 40888 gen 11975279 cgen 1860235 top level 507 otime 2020-12-09 21:00:13 path <FS_TREE>/@user2-home/.snapshots/11874/snapshot
ID 90907 gen 12172082 cgen 11521348 top level 501 otime 2022-10-01 00:00:04 path <FS_TREE>/@home/.snapshots/27245/snapshot
ID 97716 gen 12172082 cgen 11790497 top level 501 otime 2023-01-01 00:00:08 path <FS_TREE>/@home/.snapshots/29450/snapshot
ID 106853 gen 12172082 cgen 12131740 top level 501 otime 2023-05-01 00:00:06 path <FS_TREE>/@home/.snapshots/32285/snapshot
ID 109171 gen 12272429 cgen 12221077 top level 501 otime 2023-06-01 00:00:05 path <FS_TREE>/@home/.snapshots/33029/snapshot
ID 110476 gen 12272429 cgen 12272266 top level 501 otime 2023-06-19 00:00:08 path <FS_TREE>/@home/.snapshots/33453/snapshot
ID 110990 gen 12292585 cgen 12292584 top level 501 otime 2023-06-26 00:00:07 path <FS_TREE>/@home/.snapshots/33620/snapshot
ID 111355 gen 12307094 cgen 12307093 top level 501 otime 2023-07-01 00:00:05 path <FS_TREE>/@home/.snapshots/33740/snapshot
ID 111356 gen 12307094 cgen 12307094 top level 507 otime 2023-07-01 00:00:08 path <FS_TREE>/@user2-home/.snapshots/33739/snapshot
ID 111357 gen 12307095 cgen 12307095 top level 24696 otime 2023-07-01 00:00:19 path <FS_TREE>/@var/.snapshots/25117/snapshot
ID 111432 gen 12312931 cgen 12310026 top level 501 otime 2023-07-02 00:00:07 path <FS_TREE>/@home/.snapshots/33764/snapshot
ID 111433 gen 12312931 cgen 12310027 top level 507 otime 2023-07-02 00:00:15 path <FS_TREE>/@user2-home/.snapshots/33763/snapshot
ID 111434 gen 12312931 cgen 12310028 top level 24696 otime 2023-07-02 00:00:23 path <FS_TREE>/@var/.snapshots/25141/snapshot
ID 111504 gen 12312931 cgen 12312928 top level 501 otime 2023-07-03 00:00:24 path <FS_TREE>/@home/.snapshots/33788/snapshot
ID 111505 gen 12312967 cgen 12312967 top level 507 otime 2023-07-03 00:00:32 path <FS_TREE>/@user2-home/.snapshots/33787/snapshot
ID 111506 gen 12312968 cgen 12312968 top level 24696 otime 2023-07-03 00:00:54 path <FS_TREE>/@var/.snapshots/25165/snapshot
ID 111576 gen 12315835 cgen 12315834 top level 501 otime 2023-07-04 00:00:04 path <FS_TREE>/@home/.snapshots/33812/snapshot
ID 111577 gen 12315835 cgen 12315835 top level 507 otime 2023-07-04 00:00:08 path <FS_TREE>/@user2-home/.snapshots/33811/snapshot
ID 111578 gen 12315836 cgen 12315836 top level 24696 otime 2023-07-04 00:00:15 path <FS_TREE>/@var/.snapshots/25189/snapshot
ID 111636 gen 12318244 cgen 12318243 top level 501 otime 2023-07-04 20:00:31 path <FS_TREE>/@home/.snapshots/33832/snapshot
ID 111638 gen 12318245 cgen 12318245 top level 24696 otime 2023-07-04 20:00:41 path <FS_TREE>/@var/.snapshots/25209/snapshot
ID 111639 gen 12318362 cgen 12318361 top level 501 otime 2023-07-04 21:00:08 path <FS_TREE>/@home/.snapshots/33833/snapshot
ID 111640 gen 12318362 cgen 12318362 top level 507 otime 2023-07-04 21:00:10 path <FS_TREE>/@user2-home/.snapshots/33832/snapshot
ID 111641 gen 12318363 cgen 12318363 top level 24696 otime 2023-07-04 21:00:23 path <FS_TREE>/@var/.snapshots/25210/snapshot
ID 111642 gen 12318481 cgen 12318480 top level 501 otime 2023-07-04 22:00:02 path <FS_TREE>/@home/.snapshots/33834/snapshot
ID 111643 gen 12318481 cgen 12318481 top level 507 otime 2023-07-04 22:00:05 path <FS_TREE>/@user2-home/.snapshots/33833/snapshot
ID 111644 gen 12318482 cgen 12318482 top level 24696 otime 2023-07-04 22:00:10 path <FS_TREE>/@var/.snapshots/25211/snapshot
ID 111645 gen 12318600 cgen 12318599 top level 501 otime 2023-07-04 23:00:02 path <FS_TREE>/@home/.snapshots/33835/snapshot
ID 111646 gen 12318600 cgen 12318600 top level 507 otime 2023-07-04 23:00:05 path <FS_TREE>/@user2-home/.snapshots/33834/snapshot
ID 111647 gen 12318601 cgen 12318601 top level 24696 otime 2023-07-04 23:00:12 path <FS_TREE>/@var/.snapshots/25212/snapshot
ID 111648 gen 12318719 cgen 12318718 top level 501 otime 2023-07-05 00:00:04 path <FS_TREE>/@home/.snapshots/33836/snapshot
ID 111649 gen 12318719 cgen 12318719 top level 507 otime 2023-07-05 00:00:09 path <FS_TREE>/@user2-home/.snapshots/33835/snapshot
ID 111650 gen 12318720 cgen 12318720 top level 24696 otime 2023-07-05 00:00:18 path <FS_TREE>/@var/.snapshots/25213/snapshot
ID 111651 gen 12318838 cgen 12318837 top level 501 otime 2023-07-05 01:00:02 path <FS_TREE>/@home/.snapshots/33837/snapshot
ID 111652 gen 12318838 cgen 12318838 top level 507 otime 2023-07-05 01:00:05 path <FS_TREE>/@user2-home/.snapshots/33836/snapshot
ID 111653 gen 12318839 cgen 12318839 top level 24696 otime 2023-07-05 01:00:10 path <FS_TREE>/@var/.snapshots/25214/snapshot
ID 111654 gen 12318958 cgen 12318957 top level 501 otime 2023-07-05 02:00:10 path <FS_TREE>/@home/.snapshots/33838/snapshot
ID 111655 gen 12318958 cgen 12318958 top level 507 otime 2023-07-05 02:00:12 path <FS_TREE>/@user2-home/.snapshots/33837/snapshot
ID 111656 gen 12318959 cgen 12318959 top level 24696 otime 2023-07-05 02:00:15 path <FS_TREE>/@var/.snapshots/25215/snapshot
ID 111657 gen 12319078 cgen 12319077 top level 501 otime 2023-07-05 03:00:27 path <FS_TREE>/@home/.snapshots/33839/snapshot
ID 111658 gen 12319078 cgen 12319078 top level 507 otime 2023-07-05 03:00:29 path <FS_TREE>/@user2-home/.snapshots/33838/snapshot
ID 111659 gen 12319079 cgen 12319079 top level 24696 otime 2023-07-05 03:00:37 path <FS_TREE>/@var/.snapshots/25216/snapshot
ID 111660 gen 12319197 cgen 12319196 top level 501 otime 2023-07-05 04:00:25 path <FS_TREE>/@home/.snapshots/33840/snapshot
ID 111661 gen 12319197 cgen 12319197 top level 507 otime 2023-07-05 04:00:28 path <FS_TREE>/@user2-home/.snapshots/33839/snapshot
ID 111662 gen 12319198 cgen 12319198 top level 24696 otime 2023-07-05 04:00:32 path <FS_TREE>/@var/.snapshots/25217/snapshot
ID 111663 gen 12319316 cgen 12319315 top level 501 otime 2023-07-05 05:00:22 path <FS_TREE>/@home/.snapshots/33841/snapshot
ID 111664 gen 12319316 cgen 12319316 top level 507 otime 2023-07-05 05:00:25 path <FS_TREE>/@user2-home/.snapshots/33840/snapshot
ID 111665 gen 12319317 cgen 12319317 top level 24696 otime 2023-07-05 05:00:30 path <FS_TREE>/@var/.snapshots/25218/snapshot
ID 111666 gen 12319435 cgen 12319434 top level 501 otime 2023-07-05 06:00:06 path <FS_TREE>/@home/.snapshots/33842/snapshot
ID 111667 gen 12319435 cgen 12319435 top level 507 otime 2023-07-05 06:00:09 path <FS_TREE>/@user2-home/.snapshots/33841/snapshot
ID 111668 gen 12319436 cgen 12319436 top level 24696 otime 2023-07-05 06:00:15 path <FS_TREE>/@var/.snapshots/25219/snapshot
ID 111669 gen 12319555 cgen 12319554 top level 501 otime 2023-07-05 07:00:15 path <FS_TREE>/@home/.snapshots/33843/snapshot
ID 111670 gen 12319555 cgen 12319555 top level 507 otime 2023-07-05 07:00:17 path <FS_TREE>/@user2-home/.snapshots/33842/snapshot
ID 111671 gen 12319557 cgen 12319556 top level 24696 otime 2023-07-05 07:00:23 path <FS_TREE>/@var/.snapshots/25220/snapshot
ID 111672 gen 12319675 cgen 12319674 top level 501 otime 2023-07-05 08:00:25 path <FS_TREE>/@home/.snapshots/33844/snapshot
ID 111673 gen 12319675 cgen 12319675 top level 507 otime 2023-07-05 08:00:29 path <FS_TREE>/@user2-home/.snapshots/33843/snapshot
ID 111674 gen 12319677 cgen 12319676 top level 24696 otime 2023-07-05 08:00:40 path <FS_TREE>/@var/.snapshots/25221/snapshot
ID 111675 gen 12319793 cgen 12319792 top level 501 otime 2023-07-05 09:00:03 path <FS_TREE>/@home/.snapshots/33845/snapshot
ID 111676 gen 12319793 cgen 12319793 top level 507 otime 2023-07-05 09:00:07 path <FS_TREE>/@user2-home/.snapshots/33844/snapshot
ID 111677 gen 12319795 cgen 12319794 top level 24696 otime 2023-07-05 09:00:31 path <FS_TREE>/@var/.snapshots/25222/snapshot
ID 111678 gen 12319914 cgen 12319913 top level 501 otime 2023-07-05 10:00:28 path <FS_TREE>/@home/.snapshots/33846/snapshot
ID 111679 gen 12319915 cgen 12319914 top level 507 otime 2023-07-05 10:00:34 path <FS_TREE>/@user2-home/.snapshots/33845/snapshot
ID 111680 gen 12319916 cgen 12319915 top level 24696 otime 2023-07-05 10:00:41 path <FS_TREE>/@var/.snapshots/25223/snapshot
ID 111681 gen 12320032 cgen 12320031 top level 501 otime 2023-07-05 11:00:10 path <FS_TREE>/@home/.snapshots/33847/snapshot
ID 111682 gen 12320033 cgen 12320032 top level 507 otime 2023-07-05 11:00:13 path <FS_TREE>/@user2-home/.snapshots/33846/snapshot
ID 111683 gen 12320034 cgen 12320033 top level 24696 otime 2023-07-05 11:00:21 path <FS_TREE>/@var/.snapshots/25224/snapshot
ID 111684 gen 12320198 cgen 12320197 top level 501 otime 2023-07-05 12:00:07 path <FS_TREE>/@home/.snapshots/33848/snapshot
ID 111685 gen 12320199 cgen 12320198 top level 507 otime 2023-07-05 12:00:29 path <FS_TREE>/@user2-home/.snapshots/33847/snapshot
ID 111686 gen 12320201 cgen 12320201 top level 24696 otime 2023-07-05 12:01:44 path <FS_TREE>/@var/.snapshots/25225/snapshot
ID 111687 gen 12320317 cgen 12320316 top level 501 otime 2023-07-05 13:00:16 path <FS_TREE>/@home/.snapshots/33849/snapshot
ID 111688 gen 12320318 cgen 12320317 top level 507 otime 2023-07-05 13:00:18 path <FS_TREE>/@user2-home/.snapshots/33848/snapshot
ID 111689 gen 12320318 cgen 12320318 top level 24696 otime 2023-07-05 13:00:24 path <FS_TREE>/@var/.snapshots/25226/snapshot
ID 111690 gen 12320437 cgen 12320436 top level 501 otime 2023-07-05 14:00:24 path <FS_TREE>/@home/.snapshots/33850/snapshot
ID 111691 gen 12320438 cgen 12320437 top level 507 otime 2023-07-05 14:00:27 path <FS_TREE>/@user2-home/.snapshots/33849/snapshot
ID 111692 gen 12320438 cgen 12320438 top level 24696 otime 2023-07-05 14:00:31 path <FS_TREE>/@var/.snapshots/25227/snapshot
ID 111693 gen 12320556 cgen 12320555 top level 501 otime 2023-07-05 15:00:25 path <FS_TREE>/@home/.snapshots/33851/snapshot
ID 111694 gen 12320557 cgen 12320556 top level 507 otime 2023-07-05 15:00:28 path <FS_TREE>/@user2-home/.snapshots/33850/snapshot
ID 111695 gen 12320557 cgen 12320557 top level 24696 otime 2023-07-05 15:00:39 path <FS_TREE>/@var/.snapshots/25228/snapshot
ID 111697 gen 12320679 cgen 12320679 top level 507 otime 2023-07-05 16:00:08 path <FS_TREE>/@user2-home/.snapshots/33851/snapshot
ID 111698 gen 12320680 cgen 12320680 top level 24696 otime 2023-07-05 16:00:16 path <FS_TREE>/@var/.snapshots/25229/snapshot
ID 111699 gen 12320798 cgen 12320797 top level 501 otime 2023-07-05 17:00:04 path <FS_TREE>/@home/.snapshots/33852/snapshot
ID 111700 gen 12320799 cgen 12320799 top level 507 otime 2023-07-05 17:00:36 path <FS_TREE>/@user2-home/.snapshots/33852/snapshot
ID 111701 gen 12320800 cgen 12320800 top level 24696 otime 2023-07-05 17:00:54 path <FS_TREE>/@var/.snapshots/25230/snapshot
  1. What's your output re: sudo btrfs subvolume list -a -s /home/user1?

Your output doesn't look like mine. My expectation is sudo btrfs subvolume list -a -s /home/user1 should look like:

...
ID 90907 gen 12172082 cgen 11521348 top level 501 otime 2022-10-01 00:00:04 path @home/.snapshots/27245/snapshot
ID 97716 gen 12172082 cgen 11790497 top level 501 otime 2023-01-01 00:00:08 path @home/.snapshots/29450/snapshot
ID 106853 gen 12172082 cgen 12131740 top level 501 otime 2023-05-01 00:00:06 path @home/.snapshots/32285/snapshot
ID 109171 gen 12272429 cgen 12221077 top level 501 otime 2023-06-01 00:00:05 path @home/.snapshots/33029/snapshot
...

It should not contain info re: other datasets, and should not show the name from the dataset root. Did you do anything differently?

quidnu commented

I unintentionally ran sudo btrfs subvolume list -a -s /home/ but the the output is the same as sudo btrfs subvolume list -a -s /home/user1'

btrfs-progs v6.2

quidnu commented

The btrfs filesystem contains multiple subvolumes like @home, @var etc.

So the /etc/fstab is something like

UUID=123 /var btrfs defaults,subvol=@var 0 1
UUID=123 /home btrfs defaults,subvol=@home 0 1

Okay, I think I have a clear idea about what went wrong. btrfs-progs decided to break the way it previously did things. Why? I know not why. I swear btrfs feels, without a doubt, like the most unintuitive and broken thing sometimes.

I think I have an idea of how to fix, but it's gonna take some time. I'll let you know.

quidnu commented

Thank you, I don't have any imminent need to use httm, I just wanted to get familiar with it so I know how to use it when I do.

This commit should fix your issue: 537467c

quidnu commented

Looks like it works, thanks!