From fc225ce65f06247c5b4100013a3d3fc2f0f9173f Mon Sep 17 00:00:00 2001 From: Chris Coutinho Date: Thu, 18 Jun 2026 03:53:48 +0200 Subject: [PATCH] ci(vector-sync): relax single-user scan interval 5s->30s to stop churn flood MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The single-user `mcp` container re-scanned the whole corpus every 5s. The scanner already runs an initial scan on startup, so the corpus is indexed without a frequent re-scan — the short interval only re-queues everything faster than the 2 workers can drain. On a loaded CI runner pending_count snowballs (observed 1465 pending, status stuck "syncing"), so freshly-created notes aren't indexed within the tests' 90s sync-wait and test_rag / test_sampling cascade into 300s pytest timeouts (intermittent single-user failures; passed on nc33 / faster runs). Raise it to 30s, matching the already-tuned multi-user-basic cadence and staying well within the 90s wait budget. multi-user-basic (30s) and login-flow (60s) are already relaxed; this brings single-user in line. Co-Authored-By: Claude Opus 4.8 (1M context) --- docker-compose.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 293c6428..ad841686 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -99,7 +99,15 @@ services: # Semantic search configuration (ADR-007, ADR-021) - ENABLE_SEMANTIC_SEARCH=true - - VECTOR_SYNC_SCAN_INTERVAL=5 + # The sync scanner runs an initial scan immediately on startup, so the + # corpus is indexed without waiting for the first periodic re-scan. A very + # short re-scan interval (was 5s) just re-queues the whole corpus faster + # than the workers can drain it: on a loaded CI runner pending_count + # snowballs (observed 1465 pending), sync never reaches idle, and the + # single-user vector tests (test_rag, test_sampling) time out. 30s matches + # the tuned multi-user-basic cadence and stays well within the tests' 90s + # sync-wait budget. + - VECTOR_SYNC_SCAN_INTERVAL=30 - VECTOR_SYNC_PROCESSOR_WORKERS=2 # Required to enable the /webhooks/nextcloud receiver (GHSA-8vh3-g2qg-2h2c). # Without it the route is not mounted and vector sync relies on polling.