I’ve done some more sleuthing.
Inodes change every backup
I picked a file that hasn’t changed in years from the TeX package:
File: usr/share/man/man1/texmfstart.1.gz
Size: 1313 Blocks: 3 IO Block: 512 regular file
Device: 48h/72d Inode: 10513798589495246425 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-03-30 17:48:24.000000000 -0400
Modify: 2020-03-30 17:48:24.000000000 -0400
Change: 2023-02-23 08:57:48.276616255 -0500
Birth: -
It's Inode changes between/during every backup. Apparently this isn't the issue.
Inode of file for 2023-03-14:
Device: 48h/72d Inode: 7332003661669939424 Links: 1
Device: 48h/72d Inode: 10733747488517407657 Links: 1
Device: 48h/72d Inode: 4116805244364871059 Links: 1
Device: 48h/72d Inode: 8444514163394085700 Links: 1
Device: 48h/72d Inode: 13142612888247565005 Links: 1
Device: 48h/72d Inode: 17731653774848215882 Links: 1
Device: 48h/72d Inode: 15723406623955317933 Links: 1
Device: 48h/72d Inode: 53665616766580011 Links: 1
Device: 48h/72d Inode: 13013334016280768227 Links: 1
Device: 48h/72d Inode: 10513798589495246425 Links: 1
Device: 48h/72d Inode: 16649499435083292052 Links: 1
Device: 48h/72d Inode: 17315614882769877611 Links: 1
Device: 48h/72d Inode: 10623724754153206201 Links: 1
Device: 48h/72d Inode: 1184883235696100237 Links: 1
Device: 48h/72d Inode: 2992461868047737472 Links: 1
Edit: these are the inodes of the backup files, so of course they are different.
The backup parent snapshot continuity is broken
I think this is the real issue.
Here is text from several backups on 2023-03-14, the times are from the emails (this window scrolls):
12:24
using parent snapshot aae895c8
Files: 176 new, 181 changed, 1114873 unmodified
Dirs: 45 new, 289 changed, 154405 unmodified
Added to the repository: 925.894 MiB (583.757 MiB stored)
processed 1115230 files, 122.741 GiB in 1:40
snapshot 7b99c3e6 saved
14:23
using parent snapshot 7b99c3e6
Files: 144 new, 209 changed, 1114942 unmodified
Dirs: 29 new, 204 changed, 154505 unmodified
Added to the repository: 215.537 MiB (50.491 MiB stored)
processed 1115295 files, 122.750 GiB in 0:49
snapshot 0bbd85ad saved
16:24
using parent snapshot 0bbd85ad
Files: 163 new, 186 changed, 1114934 unmodified
Dirs: 25 new, 195 changed, 154515 unmodified
Added to the repository: 216.023 MiB (56.247 MiB stored)
processed 1115283 files, 122.762 GiB in 1:02
snapshot 241362a1 saved
<<< This is where the parent chain becomes broken, and each parent is different after >>>
18:27
using parent snapshot 4c40a105
Files: 691722 new, 2 changed, 424100 unmodified
Dirs: 109479 new, 17 changed, 45320 unmodified
Added to the repository: 484.498 MiB (141.625 MiB stored)
processed 1115824 files, 123.518 GiB in 4:31
snapshot 13109085 saved
20:27
using parent snapshot 2a654fa5
Files: 691757 new, 2 changed, 416317 unmodified
Dirs: 109489 new, 17 changed, 45063 unmodified
Added to the repository: 289.374 MiB (77.758 MiB stored)
processed 1108076 files, 123.467 GiB in 4:22
snapshot 4ae1ec7e saved
22:27
using parent snapshot 4283cf52
Files: 691759 new, 0 changed, 416319 unmodified
Dirs: 109489 new, 15 changed, 45065 unmodified
Added to the repository: 72.778 MiB (8.572 MiB stored)
processed 1108078 files, 123.467 GiB in 4:22
snapshot 7be99e51 saved
E.g. when things are working correctly:
aae895c8 → 7b99c3e6 → 7b99c3e6 → 0bbd85ad → 0bbd85ad → 241362a1
and after things go sideways:
4c40a105 → 13109085 XX 2a654fa5 → 4ae1ec7e XX 4283cf52 → 7be99e51
Other info:
OS: Debian GNU/Linux 11 (bullseye) x86_64
Host: OptiPlex 7040
Kernel: 5.10.0-21-amd64
Uptime: 5 days, 20 hours, 34 mins
Packages: 2870 (dpkg)
Shell: zsh 5.8
Resolution: 3840x2160
DE: GNOME 3.38.6
WM: Mutter
WM Theme: Adwaita
Theme: Adwaita [GTK2/3]
Icons: Adwaita [GTK2/3]
Terminal: gnome-terminal
CPU: Intel i7-6700 (8) @ 4.000GHz
GPU: Intel HD Graphics 530
GPU: NVIDIA GeForce GT 1030
Memory: 8747MiB / 48074MiB
> lsblk -o NAME,PATH,FSTYPE,MOUNTPOINT
NAME PATH FSTYPE MOUNTPOINT
sda /dev/sda
└─sda1 /dev/sda1 ext4 /media/john/Backup
sdb /dev/sdb
└─sdb1 /dev/sdb1 btrfs /run/timeshift/backup
sr0 /dev/sr0
nvme1n1 /dev/nvme1n1
└─nvme1n1p1 /dev/nvme1n1p1 btrfs /home
nvme0n1 /dev/nvme0n1
├─nvme0n1p1 /dev/nvme0n1p1 vfat /boot/efi
├─nvme0n1p2 /dev/nvme0n1p2 btrfs /
├─nvme0n1p3 /dev/nvme0n1p3 swap [SWAP]
├─nvme0n1p4 /dev/nvme0n1p4 btrfs /var
├─nvme0n1p5 /dev/nvme0n1p5 btrfs /tmp
├─nvme0n1p6 /dev/nvme0n1p6 btrfs /usr/local
└─nvme0n1p7 /dev/nvme0n1p7 btrfs /opt
I also run Timeshift and Backintime.
Edit: here are some diff results that echo what the email text says.
root in ~ took 31s
❯ alias resticstorage
resticstorage='restic --repository-file /etc/restic.storage --password-file /etc/restic.passwd --cache-dir /var/cache/restic'
root in ~ took 27s
❯ resticstorage diff aae895c8 7b99c3e6 | wc -l
615
root in ~ took 27s
❯ resticstorage diff 241362a1 4c40a105 | wc -l
820871
root in ~ took 30s
❯ resticstorage diff 4c40a105 13109085 | wc -l
820473
❯ resticstorage diff 13109085 2a654fa5
<million files>
Files: 919 new, 699505 removed, 15 changed
Dirs: 919 new, 109737 removed
Others: 1 new, 17436 removed
Data Blobs: 7032 new, 413347 removed
Tree Blobs: 802 new, 98756 removed
Added: 9.177 GiB
Removed: 53.093 GiB
root in ~ took 30s
❯ resticstorage diff 13109085 2a654fa5 | wc -l
828542
texmfstart*
is not one of the million files listed as changed.