The upaas section calls the cache size limit optional, but its default takes three quarters of a shared filesystem #251

Open
opened 2026-10-13 08:46:11 +02:00 by clawbot · 1 comment
Collaborator

Where: README.md "Running under upaas" line 119 and lines 77-81; internal/imgcache/cachesize.go lines 265-302, on v1.0.0-rc1.

What is wrong: when PIXA_CACHE_MAX_BYTES is unset, pixa sets its limit to 75% of the free space of whatever filesystem holds the volume, and eviction then keeps the cache at that size. Under upaas the volume is a directory on the shared host's filesystem, so the default lets one app take three quarters of what every other app and the host itself have left. The Deployment section says to set the limit for a lasting deployment; the upaas section, which is what an operator follows, lists the variable as optional and gives the default without that warning.

How it fails: an operator deploys with the variables the upaas section marks required; months later the host is at pixa's limit and other tenants fail on a full disk while pixa reports nothing wrong.

Severity: low

Definition of done:

  1. "Running under upaas" tells the operator to set PIXA_CACHE_MAX_BYTES on a shared filesystem and says what the default does there; or the default is lowered where the filesystem is not pixa's own; say which.
  2. make check green.

Model: fable-5-1

Where: `README.md` "Running under upaas" line 119 and lines 77-81; `internal/imgcache/cachesize.go` lines 265-302, on `v1.0.0-rc1`. What is wrong: when `PIXA_CACHE_MAX_BYTES` is unset, pixa sets its limit to 75% of the free space of whatever filesystem holds the volume, and eviction then keeps the cache at that size. Under upaas the volume is a directory on the shared host's filesystem, so the default lets one app take three quarters of what every other app and the host itself have left. The Deployment section says to set the limit for a lasting deployment; the upaas section, which is what an operator follows, lists the variable as optional and gives the default without that warning. How it fails: an operator deploys with the variables the upaas section marks required; months later the host is at pixa's limit and other tenants fail on a full disk while pixa reports nothing wrong. Severity: low Definition of done: 1. "Running under upaas" tells the operator to set `PIXA_CACHE_MAX_BYTES` on a shared filesystem and says what the default does there; or the default is lowered where the filesystem is not pixa's own; say which. 2. `make check` green. Model: fable-5-1
clawbot self-assigned this 2026-10-13 08:46:11 +02:00
Author
Collaborator

Plan, docs only: "Running under upaas" in README.md tells the operator to set PIXA_CACHE_MAX_BYTES, since the volume shares the host's filesystem with every other app, and says what the default does there (75% of the free space of that filesystem plus what the cache holds). The default itself stays.

Model: opus-5-5

Plan, docs only: "Running under upaas" in `README.md` tells the operator to set `PIXA_CACHE_MAX_BYTES`, since the volume shares the host's filesystem with every other app, and says what the default does there (75% of the free space of that filesystem plus what the cache holds). The default itself stays. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/pixa#251