Edit 2: Through all of my shenanigans I ended up on a read-only snapshot for root. The error I got just seemed similar to previous out-of-space errors. I went to a later snapshot as default and everything is working great!

My OpenSUSE Tumbleweed is wonky since I last did a dist-upgrade with about 4000 packages. Midway through it errord out with an error that indicated that the filesystem was full althou df showed plenty of free space.

BTRFS seemed to be the culprit. Removing snapshots let me continue the upgrade until it errored out again. Rinse and repeat until it was done.

Edit: My root subvolume is read only. So there must be some error in that. The other subvolumes work correctly. So I guess it isn’t about free space after all.

But now the BTRFS seems to be almost full and I cannot update anymore.

...
Checking for file conflicts: .....................[done]error: can't create transaction lock on /usr/lib/sysimage/rpm/.rpm.lock (Read-only file system)                 ( 1/40) Removing: ovpn-dco-kmp-default-0.2.202412[error]Removal of (76899)ovpn-dco-kmp-default-0.2.20241216~git0.a08b2fd_k6.13.7_1-2.2.x86_64(@System) failed:          Error: Subprocess failed. Error: RPM failed: Command exited with status 1.                                      Abort, retry, ignore? [a/r/i] (a):                      Problem occurred during or after installation or removal of packages:                                           Installation has been aborted as directed.              Please see the above error message for a hint.

I’ve tried a full balance but that didn’t even seem to help. So I suspect that the space is caught up in snapshots, but I can’t delete them.

# snapper list

# │ Type   │ Pre # │ Date                             │ User │ Used Space │ Cleanup │ Description           │ Userdata                                               ─────┼────────┼───────┼──────────────────────────────────┼──────┼────────────┼─────────┼───────────────────────┼─────────────                                             0  │ single │       │                                  │ root │            │         │ current               │  1  │ single │       │ Thu 18 Apr 2024 05:58:31 PM CEST │ root │  12.51 GiB │ numberfirst root filesystem │365* │ pre    │       │ Wed 26 Mar 2025 04:28:33 PM CET  │ root │  16.00 KiB │ number  │ zypp(zypper)          │ important=no                                           366pre    │       │ Wed 26 Mar 2025 07:28:09 PM CET  │ root │  16.00 KiB │ number  │ zypp(zypper)          │ important=no                                           367pre    │       │ Wed 26 Mar 2025 07:36:53 PM CET  │ root │  16.00 KiB │ number  │ zypp(zypper)          │ important=no
# snapper rm 1

Deleting snapshot failed.
# snapper rm 365

Cannot delete snapshot 365 since it is the currently mounted snapshot.
# btrfs filesystem usage /

Overall:                                                    Device size:                 476.44GiB                  Device allocated:            389.06GiB                  Device unallocated:           87.37GiB                  Device missing:                  0.00B                  Device slack:                  3.50KiB                  Used:                        382.53GiB                  Free (estimated):             90.80GiB      (min: 47.12GiB)                                                     Free (statfs, df):            90.80GiB                  Data ratio:                       1.00                  Metadata ratio:                   2.00                  Global reserve:              512.00MiB      (used: 0.00B)                                                       Multiple profiles:                  no                                                                      Data,single: Size:381.00GiB, Used:377.57GiB (99.10%)       /dev/mapper/cr_root   381.00GiB                                                                              Metadata,DUP: Size:4.00GiB, Used:2.48GiB (61.97%)          /dev/mapper/cr_root     8.00GiB                                                                              System,DUP: Size:32.00MiB, Used:80.00KiB (0.24%)           /dev/mapper/cr_root    64.00MiB                                                                              Unallocated:                                               /dev/mapper/cr_root    87.37GiB
# btrfs qgroup show /

Qgroupid    Referenced    Exclusive   Path              --------    ----------    ---------   ----              0/5           16.00KiB     16.00KiB   <toplevel>        0/256         16.00KiB     16.00KiB   @                 0/257         14.25GiB     14.25GiB   @/var             0/258         16.00KiB     16.00KiB   @/usr/local       0/259         16.00KiB     16.00KiB   @/srv             0/260         54.32MiB     54.32MiB   @/root            0/261         24.09GiB     24.09GiB   @/opt             0/262        289.02GiB    288.95GiB   @/home            0/263         16.00KiB     16.00KiB   @/boot/grub2/x86_64-efi                                                   0/264         16.00KiB     16.00KiB   @/boot/grub2/i386-pc                                                      0/265         16.00KiB     16.00KiB   @/.snapshots      0/266         24.00GiB     12.51GiB   @/.snapshots/1/snapshot                                                   0/473         16.00GiB     16.00GiB   @/.snapshots/1/snapshot/swap                                              0/657         23.68GiB     16.00KiB   @/.snapshots/365/snapshot                                                 0/661         23.68GiB     16.00KiB   @/.snapshots/366/snapshot                                                 0/662         23.68GiB     16.00KiB   @/.snapshots/367/snapshot                                                 1/0           36.19GiB     36.12GiB   <0 member qgroups>

Any tips?

  • bzLem0n
    link
    fedilink
    86 days ago

    No real advice but I’ve heard of people having issues with their BTRFS filesystem running out of free inodes and reporting the filesystem as full due to that. Note that the df command is not expected to work properly for a BTRFS filesystem.

    • Björn TantauOP
      link
      fedilink
      36 days ago

      I did that. Turns out my error had nothing to do with space. I was just booting into a read-only snapshot by default. Rolling back to a later snapshot fixed everything.

  • @[email protected]
    link
    fedilink
    16 days ago

    I always do a df -h before updating. And this recent update was brutally large. I was unable to free enough space by deleting snapshots as I’ve taken to doing lately. What I’ve now started doing is finding directories using a lot of space and moving them from my root partition to another partition I have with more space and then linking that directory back to a directory with the original path. The most recent culprit I found and moved is /var/lib/flatpack. The program filelight is a great tool for finding culprits.