Repository navigation
Release File Search leases on shutdown after at most 20 s (#1383) - #1397
Merged
Merged
Conversation
A slice on a slow server outlasted Docker's stop timeout, so the worker was killed before it released its lease and the sync waited ten minutes after every deploy. Give files-worker a 30 s stop grace period.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
Found while monitoring File Search on the Cloud with a real FTPS archive (4,168 PDFs behind a slow upload line). On a deploy,
files-workerwaited for its running slice before releasing the source lease. The slice took longer than Docker's 10 s stop timeout, the container was killed, and the sync sat idle until the 10-minute lease expired.Changes
SyncScheduler.stop()waits at most 20 s for running slices, then releases its leases anyway. Progress is stored per file, so the next worker continues where the slice stopped.files-workergetsstop_grace_period: 30sindocker-compose.ymlanddocker-compose.cloud.yml.Cloud and self-hosted behave the same way.
Type
Testing
packages/backendnpx tsc --noEmit -p tsconfig.jsonpackages/backendnpx jest src/ee/file-search --maxWorkers=2docker compose -f docker-compose.cloud.yml config -qObserved on the Cloud on 2026-11-01: after the deploy at 14:51 UTC the old worker's lease stayed until 15:00 UTC.
Checklist
Related Issues
Relates to #1383, #1379.