mirror of
https://git.asonix.dog/asonix/pict-rs
synced 2024-11-01 10:09:57 +00:00
47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
|
# pict-rs 0.5.12
|
||
|
|
||
|
pict-rs is a simple image hosting microservice, designed to handle storing and retrieving images,
|
||
|
animations, and videos, as well as providing basic image processing functionality.
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
pict-rs 0.5.12 is a bugfix release to remove two issues that, when compounded, would cause pict-rs
|
||
|
to fail to process media.
|
||
|
|
||
|
### Fixes
|
||
|
|
||
|
- [Panic Handling in Background Jobs](#panic-handling-in-background-jobs)
|
||
|
- [BytesStream Divide-by-Zero](#bytes-stream-divide-by-zero)
|
||
|
|
||
|
|
||
|
## Upgrade Notes
|
||
|
|
||
|
There are no significant differences from 0.5.11. Upgrading should be as simple as pulling a new
|
||
|
version of pict-rs.
|
||
|
|
||
|
|
||
|
## Descriptions
|
||
|
|
||
|
### Panic Handling in Background Jobs
|
||
|
|
||
|
pict-rs makes an effort to never use explicitly panicking code, but since there's no static way to
|
||
|
guarantee that a given function wont panic, pict-rs needs to be able to deal with that. pict-rs
|
||
|
0.5.12 now wraps invocations of jobs in spawned tasks, which can catch and report panics that happen
|
||
|
in background jobs.
|
||
|
|
||
|
Previously, a panic in a background job would bring down that thread's job processor, which resulted
|
||
|
in future jobs never being processed. Now job processing should properly continue after panics
|
||
|
occur.
|
||
|
|
||
|
|
||
|
### BytesStream Divide-by-Zero
|
||
|
|
||
|
Part of my rework of BytesStream recently included adding debug logs around how many bytes chunks
|
||
|
were in a given stream, and their average length. Unfortunately, if there were no bytes in the
|
||
|
stream, this would cause the "average chunk length" calculation to divide by 0. In previous versions
|
||
|
of pict-rs, this would generally result in a failed request for processed media, but in pict-rs
|
||
|
0.5.11 this would end up killing the background jobs processor.
|
||
|
|
||
|
This specific panic has been fixed by ensuring we divide by the number of chunks or 1, whichever is
|
||
|
greater.
|