Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
btrfs quota introduced heavy performance regression
Reported by deas · filed Dec 17, 2025Closed upstream on 2025-12-18 by its own reporter deas. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- Not yet mapped to any requirement or component.
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
System details
n/a
What's wrong?
The introduction of btrfs quota in Omarchy 3.2.3 has hit me with hourly system unresponsiveness for 5-10 minutes on two machines - this is likely related to snapper doing its houry snapshots / cleanup. CPU usage / load go through the roof.
I have been using the limine / snapper tools since Omarchy early days - way before things where introduced by Omarchy, so I may be running a somewhat unexpected snapper config.
My root config reads:
# subvolume to snapshot
SUBVOLUME="/"
# filesystem type
FSTYPE="btrfs"
# btrfs qgroup for space aware cleanup algorithms
QGROUP=""
# fraction or absolute size of the filesystems space the snapshots may use
SPACE_LIMIT="0.3"
# fraction or absolute size of the filesystems space that should be free
FREE_LIMIT="0.3"
# users and groups allowed to work with config
ALLOW_USERS="deas"
ALLOW_GROUPS=""
# sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
# directory
SYNC_ACL="yes"
# start comparing pre- and post-snapshot in background after creating
# post-snapshot
BACKGROUND_COMPARISON="yes"
# run daily number cleanup
NUMBER_CLEANUP="yes"
# limit for number cleanup
NUMBER_MIN_AGE="3600"
NUMBER_LIMIT="50"
NUMBER_LIMIT_IMPORTANT="10"
# create hourly snapshots
TIMELINE_CREATE="yes"
# cleanup hourly snapshots after some time
TIMELINE_CLEANUP="yes"
# limits for timeline cleanup
TIMELINE_MIN_AGE="3600"
TIMELINE_LIMIT_HOURLY="10"
TIMELINE_LIMIT_DAILY="10"
TIMELINE_LIMIT_WEEKLY="0"
TIMELINE_LIMIT_MONTHLY="10"
TIMELINE_LIMIT_QUARTERLY="0"
TIMELINE_LIMIT_YEARLY="10"
# cleanup empty pre-post-pairs
EMPTY_PRE_POST_CLEANUP="yes"
# limits for empty pre-post-pair cleanup
EMPTY_PRE_POST_MIN_AGE="3600"For the moment, I have disabled btrfs quota:
btrfs quota disable /And the symptoms are gone.
The potential btrfs quota performance issue appears to be well known. Hence, it appears like I am running into an unexpected edge case.
View raw text
### System details n/a ### What's wrong? The introduction of btrfs quota in Omarchy 3.2.3 has hit me with hourly system unresponsiveness for 5-10 minutes on two machines - this is likely related to snapper doing its houry snapshots / cleanup. CPU usage / load go through the roof. I have been using the limine / snapper tools since Omarchy early days - way before things where introduced by Omarchy, so I may be running a somewhat unexpected snapper config. My `root` config reads: ``` # subvolume to snapshot SUBVOLUME="/" # filesystem type FSTYPE="btrfs" # btrfs qgroup for space aware cleanup algorithms QGROUP="" # fraction or absolute size of the filesystems space the snapshots may use SPACE_LIMIT="0.3" # fraction or absolute size of the filesystems space that should be free FREE_LIMIT="0.3" # users and groups allowed to work with config ALLOW_USERS="deas" ALLOW_GROUPS="" # sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots # directory SYNC_ACL="yes" # start comparing pre- and post-snapshot in background after creating # post-snapshot BACKGROUND_COMPARISON="yes" # run daily number cleanup NUMBER_CLEANUP="yes" # limit for number cleanup NUMBER_MIN_AGE="3600" NUMBER_LIMIT="50" NUMBER_LIMIT_IMPORTANT="10" # create hourly snapshots TIMELINE_CREATE="yes" # cleanup hourly snapshots after some time TIMELINE_CLEANUP="yes" # limits for timeline cleanup TIMELINE_MIN_AGE="3600" TIMELINE_LIMIT_HOURLY="10" TIMELINE_LIMIT_DAILY="10" TIMELINE_LIMIT_WEEKLY="0" TIMELINE_LIMIT_MONTHLY="10" TIMELINE_LIMIT_QUARTERLY="0" TIMELINE_LIMIT_YEARLY="10" # cleanup empty pre-post-pairs EMPTY_PRE_POST_CLEANUP="yes" # limits for empty pre-post-pair cleanup EMPTY_PRE_POST_MIN_AGE="3600" ``` For the moment, I have disabled btrfs quota: ```sh btrfs quota disable / ``` And the symptoms are gone. The potential btrfs quota performance issue appears to be well known. Hence, it appears like I am running into an unexpected edge case.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
No decision has been recorded yet.