release: Bazarr+ v2.5.2 (Murmuration)#290
Merged
Merged
Conversation
Provider Hub plugins run in a worker subprocess whose host-side deadline (HubProxyProvider._request_timeout) defaulted to a hardcoded 30s and only recognized the config keys worker_timeout/timeout_seconds/timeout. WhisperAI declares response_timeout_seconds/transcription_timeout_seconds, so its worker was killed at 30s regardless of the response/transcription timeouts users set (reported as 'WhisperAI and 30 second worker timeout'). Derive the deadline from any *_timeout_seconds key the plugin declares (plus the legacy keys and an explicit override), clamp the plugin value to the max before adding a 30s margin so the worker's own timeout fires first, floor it by a new global default, and cap it at 86400s. Add general.provider_hub_worker_timeout (default 120) as the backstop for plugins that declare no timeouts. Verified end to end: a real 95s Whisper transcription the old 30s deadline killed now completes; unit tests cover the derivation, floor, margin, cap and fallback.
Add a 'Default worker timeout' number field to Settings > General > Provider Hub, bound to general.provider_hub_worker_timeout (30-86400s, default 120). It is the fallback deadline for Hub plugins that do not define their own timeouts; plugins like WhisperAI that set a transcription timeout override it.
The settings help said plugins 'override' the global default, but the code treats it as a floor (max), so plugins with a longer timeout raise the deadline above it. Reword the copy accordingly. Also fix the test comment that claimed the host wall outlives the worker's own timeout above the cap, which only holds because configured values are separately bounded to the cap. Addresses review feedback.
fix(provider-hub): make plugin timeouts govern the worker deadline
Provider Hub patch on the v2.5 line: WhisperAI transcriptions are no longer killed at a hardcoded 30-second worker deadline. The host-side deadline now derives from the plugin's configured timeouts, with a new global default worker-timeout setting as the fallback. No schema or breaking changes. - package_info: Bazarr+ v2.5.2 - whatsNew: add 2.5.2 entry, bump latestWhatsNewVersion - site: softwareVersion 2.5.2 + roadmap entry Deploy-verified: clean boot, container reports package_info Bazarr+ v2.5.2.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release PR for Bazarr+ v2.5.2 (Murmuration), a focused Provider Hub patch.
WhisperAI transcriptions were killed at a hardcoded 30-second worker deadline regardless of the response/transcription timeouts configured (reported in "WhisperAI and 30 second worker timeout", #288). The host-side worker deadline now derives from the plugin's declared timeouts, with a new global
general.provider_hub_worker_timeoutdefault (Settings → General → Provider Hub) as the fallback.Contents since v2.5.1:
No schema changes, no breaking changes. CI green on development; deploy-verified on the test server (real 95s Whisper transcription completes; killed at 30s under the old code). Merging to master triggers the Docker publish and Pages deploy; the tagged release follows.