Turris 1.0, BTRFS, no free space on disk

Hi guys,

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 :slight_smile: :

**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.

Cheers
Beda

3 Likes

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 :slight_smile: For several minutes I didn’t realize who’s posting, as I only looked at title and text.

1 Like

Hi,

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.

Any idea?

Thanks!
K

(Turris 1.0 + btrfs)

Hello,
I had this problem.
I created backup to SD card. Everything worked well for one year.
Router started writing the same errors.

Repair:
#You must have any existing directory “/mnt/xxx” or another
mount /dev/mmcblk0p2 /mnt/xxx
#IDelete manualy old snapshots or another files …