Say the libvips temporary file leaves /tmp but keeps its space

libvips removes the file's name from /tmp as soon as it has written the
decoded pixels, and the file keeps its space, on disk or in memory where
/tmp is a tmpfs, until the image is done. "Running under upaas" said the
file is deleted when the image is done, so an operator looking in /tmp
for it would find nothing.

Model: opus-5-5
This commit is contained in:
2026-10-15 19:16:44 +00:00
parent e32ad30afd
commit 6b845fb966
+10 -8
View File
@@ -146,14 +146,16 @@ What the [upaas](https://git.eeqj.de/sneak/upaas) app for pixa needs:
`PIXA_UPSTREAM_CONNECTIONS` so that this fits the memory the container may `PIXA_UPSTREAM_CONNECTIONS` so that this fits the memory the container may
use. use.
- **Temporary files:** while pixa processes a large source, libvips writes its - **Temporary files:** while pixa processes a large source, libvips writes its
decoded pixels to a file in `/tmp` and deletes the file when the image is decoded pixels to a file in `/tmp`. The file disappears from `/tmp` once it is
done. For a GIF, WebP, AVIF or JPEG XL source the decoded pixels are held in written, so a listing of `/tmp` does not show it, but it keeps its space, on
memory as well as written to that file, and the 4.2 GiB above includes that disk or, where `/tmp` is a tmpfs, in memory, until the image is done. For a
memory. For an 8192x8192 source the file was measured on pixad at 192 MiB for GIF, WebP, AVIF or JPEG XL source the decoded pixels are held in memory as
an 8-bit RGB JPEG, 512 MiB for a 16-bit RGBA PNG or JPEG XL, and 1 GiB for a well as written to that file, and the 4.2 GiB above includes that memory. For
JPEG XL of 32-bit floating-point RGBA, the largest measured: up to 1 GiB per an 8192x8192 source the file was measured on pixad at 192 MiB for an 8-bit RGB
image processed at once, 24 GiB at the defaults on a host where pixa sees 48 JPEG, 512 MiB for a 16-bit RGBA PNG or JPEG XL, and 1 GiB for a JPEG XL of
CPUs. This `/tmp` is in the container's own filesystem, not on the volume at 32-bit floating-point RGBA, the largest measured: up to 1 GiB per image
processed at once, 24 GiB at the defaults on a host where pixa sees 48 CPUs.
This `/tmp` is in the container's own filesystem, not on the volume at
`/var/lib/pixa`, and `cache_max_bytes` does not count it. The 4.2 GiB above `/var/lib/pixa`, and `cache_max_bytes` does not count it. The 4.2 GiB above
does not include these files; where `/tmp` is a tmpfs, they are memory on top does not include these files; where `/tmp` is a tmpfs, they are memory on top
of it. of it.