From f3b4342d2713bbdb94a954ad4eb409e2095eb43b Mon Sep 17 00:00:00 2001 From: asonix Date: Sat, 5 Aug 2023 16:49:14 -0500 Subject: [PATCH] Copy over 0.4.2 release document --- releases/0.4.2.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 releases/0.4.2.md diff --git a/releases/0.4.2.md b/releases/0.4.2.md new file mode 100644 index 0000000..8a6e4f6 --- /dev/null +++ b/releases/0.4.2.md @@ -0,0 +1,67 @@ +# 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.