mirror of
https://git.asonix.dog/asonix/pict-rs
synced 2024-11-01 10:09:57 +00:00
67 lines
2.6 KiB
Markdown
67 lines
2.6 KiB
Markdown
# pict-rs 0.4.2
|
|
|
|
## Overview
|
|
|
|
I'm happy to announc pict-rs 0.4.2 today. This is a smaller release but includes some important
|
|
changes. A few users had been seeing issues around pict-rs' HTTP client when talking to object
|
|
storage or downloading media, this release should fix these issues.
|
|
|
|
### Features
|
|
|
|
- [Process Timeout](#process-timeout)
|
|
|
|
|
|
### Bugfix
|
|
|
|
- [Dangling Backgrounded Uploads](#dangling-backgrounded-uploads)
|
|
|
|
|
|
### Changes
|
|
|
|
- [Reqwest](#reqwest)
|
|
|
|
|
|
## Upgrade Notes
|
|
|
|
There's no significant changes from 0.4.1, so upgrading should be as simple as pulling a new version
|
|
of pict-rs.
|
|
|
|
|
|
## Descriptions
|
|
|
|
### Process Timeout
|
|
|
|
pict-rs spawns processes to handle identifying and processing images. These processes have not had
|
|
many bounds in place so far, and are left to run more or less unattended for as long as they care to
|
|
take. This can cause problems when a large file is uploaded and causes clients to time out while
|
|
waiting. While the proper solution for these cases is to use the backgrounded endpoint to avoid
|
|
timing out http requests when processing large files, It may be worth limiting the duration these
|
|
processes are allowed to run for.
|
|
|
|
0.4.2 introduces a new config option: `PICTRS__MEDIA__PROCESS_TIMEOUT`, which governs how long any
|
|
given process that pict-rs spawns is allowed to run. The default value here is 30 seconds, but on
|
|
systems with slower CPUs or if larger files need to be handled, this value can be increased.
|
|
Alternatively, if only small or simple files need to be hosted, then this value can be lowered,
|
|
ensuring any file that is too complex will not be succesfully processed.
|
|
|
|
When an operation times out, this is considered a client error, since the client initiated a request
|
|
with a file too complex to process in a reasonable amount of time.
|
|
|
|
|
|
### Dangling Backgrounded Uploads
|
|
|
|
In some cases, a backgrounded upload could fail and leave the original unprocessed media in the
|
|
store, but inaccessible from any client. This is now solved by ensuring that even when processing a
|
|
backgrounded upload fails, the source files are cleaned before the job completes.
|
|
|
|
|
|
### Reqwest
|
|
|
|
This release swaps the `awc` HTTP client library for `reqwest`. Due to a number of HTTP-related
|
|
issues, and awc's status as a less-supported member of the actix-web ecosystem, pict-rs has moved to
|
|
`reqwest` for making HTTP requests. This should result in slightly better performance, fewer
|
|
dangling connections, and fewer connection errors.
|
|
|
|
The `PICTRS__SERVER__CLIENT_POOL_SIZE` variable is now less useful. Since reqwest doesn't give
|
|
control of its pool size directly, this value now limits simultaneous idle connections to a given
|
|
host.
|