Skip to content

AutoScribe 1.1.2

Choose a tag to compare

@johnjanney johnjanney released this 19 Aug 21:37
· 37 commits to main since this release
1cb0435

A single fix on top of 1.1.1, from the same external review.

What it fixes

A stall sweep could close a run while a worker was in the middle of a paid
provider call.
Two sweeps can overlap: one records the run's final restart, the
other sees the new count and finds nothing queued, and the restart is armed and
picked up before the second sweep writes its decision. The run was then closed
under a worker already working.

The damage was bounded — the worker's own checks meant nothing was published or
announced twice — but the provider call was paid for and thrown away, and the run
was reported as given up on when it was not.

The decision to close is now tied to the state the sweep actually observed. A
worker that has taken the step wins; a worker that has not started yet finds the
run closed and stops without spending anything.

Who should upgrade

Anyone on 1.1.0 or 1.1.1 whose host ends requests early, since that is what makes
the stall sweeper run at all. On a site where runs finish normally, this
situation does not arise.

If you are still on 1.1.0, upgrade for
1.1.1 rather than
for this: that release fixes two accounting defects, one of which under-reports
what you have spent and lets the budget cap allow what it should stop.

Verification

299 tests and 1,112 assertions pass on PHP 8.1, 8.2, and 8.3. PHPCS reports zero
errors and zero warnings.

Install

Download autoscribe-1.1.2.zip below and install it through Plugins → Add New
→ Upload Plugin
. Runtime dependencies are bundled; nothing else is needed.