In a mostly unconfigured CirrusSearch setup (in my case: FactGrid), the job queue contains lots of cirrusSearchElasticaWrite jobs. According to @dcausse (IRC conversation 2025-03-10 and 2025-03-19), this is surprising: Updater::pushElasticaWriteJobs() is supposed to run these jobs immediately (“inline”), rather than push them to the job queue, if the cluster isn’t configured to be isolated. However, it turns out that ClusterSettings::isIsolated() returns true by default:
public function isIsolated(): bool { $isolate = $this->config->get( 'CirrusSearchWriteIsolateClusters' ); // defaults to null according to extension.json return $isolate === null || in_array( $this->cluster, $isolate ); }
Perhaps $wgCirrusSearchWriteIsolateClusters is supposed to default to [] rather than null? Or the condition should be $isolate !== null && in_array( $this->cluster, $isolate ) instead?