pict-rs/releases/0.5.12.md
2024-04-05 13:05:16 -05:00

1.8 KiB

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

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.