I just wanted to report a potential problem I just got bitten by (and maybe help others who would have a similar issue later).
Today DNS stopped working and during its debugging, I found that my old Turris 1.0 with BTRFS on 8 GB SD card reported “not space left on device” (this is why the resolver did not work properly).
This was for me the first point where I had to deal with the strangeness of free space on BTRFS :
**df -h:**
Filesystem Size Used Available Use% Mounted on
/dev/mmcblk0p2 7.3G 4.4G 0 100% /
**du -sh /**
2.1G /
**btrfs fi df /**
Data, single: total=6.75GiB, used=3.90GiB
System, single: total=4.00MiB, used=16.00KiB
Metadata, single: total=520.00MiB, used=411.13MiB
GlobalReserve, single: total=112.00MiB, used=3.19MiB
Anyway, after some googling I realized that the problem is probably with too many/too large snapshots. Therefore I used schnapps to delete (schnapps delete) most of the snapshots and the whole problem seems to be resolved. However, I tried to investigate why the few snapshots took so much space and I think that I found the culprit. By far the largest file on the filesystem is /srv/pakon/pakon-archive.db with 1.3 GB.
My suspicion is that because this file changes frequently, each snapshot contains a very large portion of it and in a few snapshots this causes all free space to disappear. I do not have time to try to fix this now, so I just switched pakon off for now.
So this is just a heads up for the developers that this might happen to more users and also a record for fellow users who might be hit by this.
To me it feels like it would probably be better to omit similar data from snapshots, but I suspect making such exceptions might be difficult and possibly confusing to some people. (It’s safer to surprise on the side of retaining extra data than the other way.)
Oh, hello For several minutes I didn’t realize who’s posting, as I only looked at title and text.
it seems I am affected by similar (or same) issue. Some parts of Turris don’t work properly and some apps raise an error “no space left on the device” and btrfs seems to be quite broken:
df -h
Filesystem Size Used Available Use% Mounted on
df: /: Value too large for defined data type
tmpfs 1011.5M 386.7M 624.8M 38% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
du -sh /
13.2G /
btrfs fi df /
ERROR: cannot access '/': Value too large for defined data type
schnapps list
# | Type | Date | Description
------+-----------+---------------------------+---------------------------------
ERROR: cannot access '/mnt/.snapshots': Value too large for defined data type
ERROR: can't access '/mnt/.snapshots'
BTRFS boot messages:
[ 1.588147] mmc0: new high speed SDHC card at address 1234
[ 1.588536] mmcblk0: mmc0:1234 SA16G 14.4 GiB
[ 1.589509] mmcblk0: p1 p2
[ 1.607417] BTRFS: device fsid 9ba13a6d-64cc-4679-813f-6b8f2cdc0ad1 devid 1 transid 2654320
/dev/root
[ 1.619712] BTRFS info (device mmcblk0p2): disk space caching is enabled
[ 1.626435] BTRFS: has skinny extents
[ 1.641005] BTRFS info (device mmcblk0p2): bdev /dev/root errs: wr 0, rd 221, flush 0, corrupt 0, gen 0
[ 1.716098] BTRFS: detected SSD devices, enabling SSD mode
[ 1.737062] VFS: Mounted root (btrfs filesystem) on device 0:13.