Put this PR's TODO.md entry back at the top of Completed Steps
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
The rebase onto next placed it under the entry for the negative cache cleanup, as union merge keeps next's lines first. Model: opus-5-5
This commit is contained in:
@@ -30,6 +30,24 @@ P2: security: per-origin rate limiting
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-10-15 a transcode stops once its request's `downstream_timeout` has
|
||||||
|
ended, unless it has begun encoding (closes #243): the image processor looked
|
||||||
|
at its context only while it waited for a processing slot, so an image was
|
||||||
|
decoded and encoded, holding the slot, however long after its request's
|
||||||
|
deadline that took. `Process` now returns the context's error, and gives the
|
||||||
|
slot back, when the context has ended by the time it has the slot or before it
|
||||||
|
encodes. A request that waited for a shared transcode stopped at the first
|
||||||
|
request's deadline is answered 503 `server busy, try again later`, not 500,
|
||||||
|
though its own `downstream_timeout` may not have ended. govips gives pixa no
|
||||||
|
way to stop libvips once an encode has begun, so that encode keeps its slot
|
||||||
|
until it finishes; the limit of 8192 on each side of the source and of the
|
||||||
|
output bounds how long that takes. With one libvips thread, 8192x8192 random
|
||||||
|
pixels take up to about 1 second to encode as JPEG, 15 as PNG, 16 as GIF, 63
|
||||||
|
as WebP, 110 as AVIF and 96 as JPEG XL, the last three with an alpha channel,
|
||||||
|
plus up to about 11 seconds to decode the source; `README.md` gives these
|
||||||
|
times and no longer says the work stops when `downstream_timeout` ends. The
|
||||||
|
settings of the WebP, AVIF and JPEG XL encoders, which can hold a slot past
|
||||||
|
the default `downstream_timeout` of 60 seconds, are unchanged.
|
||||||
- 2026-10-15 "Running under upaas" in `README.md` tells the operator to set
|
- 2026-10-15 "Running under upaas" in `README.md` tells the operator to set
|
||||||
`PIXA_CACHE_MAX_BYTES` (closes #251): it listed the variable as optional, but
|
`PIXA_CACHE_MAX_BYTES` (closes #251): it listed the variable as optional, but
|
||||||
under upaas the volume is a directory on the host's filesystem. The default,
|
under upaas the volume is a directory on the host's filesystem. The default,
|
||||||
@@ -57,24 +75,6 @@ P2: security: per-origin rate limiting
|
|||||||
expired. The goroutine runs with the disk cache disabled
|
expired. The goroutine runs with the disk cache disabled
|
||||||
(`cache_max_bytes: 0`) too, where it does nothing else, as the negative cache
|
(`cache_max_bytes: 0`) too, where it does nothing else, as the negative cache
|
||||||
is used either way.
|
is used either way.
|
||||||
- 2026-10-15 a transcode stops once its request's `downstream_timeout` has
|
|
||||||
ended, unless it has begun encoding (closes #243): the image processor looked
|
|
||||||
at its context only while it waited for a processing slot, so an image was
|
|
||||||
decoded and encoded, holding the slot, however long after its request's
|
|
||||||
deadline that took. `Process` now returns the context's error, and gives the
|
|
||||||
slot back, when the context has ended by the time it has the slot or before it
|
|
||||||
encodes. A request that waited for a shared transcode stopped at the first
|
|
||||||
request's deadline is answered 503 `server busy, try again later`, not 500,
|
|
||||||
though its own `downstream_timeout` may not have ended. govips gives pixa no
|
|
||||||
way to stop libvips once an encode has begun, so that encode keeps its slot
|
|
||||||
until it finishes; the limit of 8192 on each side of the source and of the
|
|
||||||
output bounds how long that takes. With one libvips thread, 8192x8192 random
|
|
||||||
pixels take up to about 1 second to encode as JPEG, 15 as PNG, 16 as GIF, 63
|
|
||||||
as WebP, 110 as AVIF and 96 as JPEG XL, the last three with an alpha channel,
|
|
||||||
plus up to about 11 seconds to decode the source; `README.md` gives these
|
|
||||||
times and no longer says the work stops when `downstream_timeout` ends. The
|
|
||||||
settings of the WebP, AVIF and JPEG XL encoders, which can hold a slot past
|
|
||||||
the default `downstream_timeout` of 60 seconds, are unchanged.
|
|
||||||
- 2026-10-15 a cached variant is served while its source URL is in the negative
|
- 2026-10-15 a cached variant is served while its source URL is in the negative
|
||||||
cache (closes #245): `Get` checked the negative cache before the variant
|
cache (closes #245): `Get` checked the negative cache before the variant
|
||||||
cache, so once a fetch of the source failed, as one does when another variant
|
cache, so once a fetch of the source failed, as one does when another variant
|
||||||
|
|||||||
Reference in New Issue
Block a user