Skip to content

v2.4.33

Choose a tag to compare

@datapoke datapoke released this 05 May 18:21
· 15 commits to trunk since this release

Fixed

  • Aggregator: settings sync to a freshly-added (or re-enabled) spoke could lag by up to ~15 minutes. Two compounding bugs: (1) ServerRegistry is a process-lifetime singleton that caches $this->servers on first read; long-running JobWorker processes (which dispatch the periodic health_check job that runs sync_all_settings) kept a stale view of the server list until they hit MAX_RUNTIME_SECONDS = 595 and respawned, so a new spoke was invisible to in-flight workers. (2) Nothing in ServersController::create_item() triggered a sync — the new spoke depended entirely on the next 300-second supervisor periodic tick and a JobWorker with a fresh cache aligning. Fix: RemoteManager::health_check() and sync_all_settings() now call ServerRegistry::reset_cache() at the top so each dispatch starts from current data; sync_all_settings() accepts an optional ?array $server_ids for targeted pushes; create_item() and the false→true enabled transition in update_item() synchronously call RemoteManager::sync_all_settings( [ $id ] ) so user-initiated server changes don't depend on the periodic chain.