Triggering an opportunistic LinksUpdate on every cache miss of the current revision might not be appropriate in some cases. Some functions like ContentHandler::getParserOutputForIndexing might be called after all LinksUpdates but if these functions do explicitely disallow populating the parser cache via OPT_NO_UPDATE_CACHE we might enter a case where involved jobs would trigger themselves forever. It is happening in the case of the CirrusSearch extension that listens to LinksUpdate and is relying on ContentHandler::getParserOutputForIndexing to fetch the parser output. Introduce a new option ParserOutputAccess::OPT_LINKS_UPDATE to be more intentional on whether such cascading LinksUpdate might occur or not on cache misses. Change the default to not trigger a LinksUpdate on every cache miss and enable it only when rendering the article view (Article::view). It does not seem ideal that this behavior is owned by the ParserCache and further refactoring might be needed to separate these concerns. Bug: T329842 Change-Id: Ib3c3ca935f316ea880ff6c6b393fa80166e42bd3 |
||
|---|---|---|
| .. | ||
| PoolCounter.php | ||
| PoolCounterClient.php | ||
| PoolCounterConnectionManager.php | ||
| PoolCounterFactory.php | ||
| PoolCounterNull.php | ||
| PoolCounterRedis.php | ||
| PoolCounterWork.php | ||
| PoolCounterWorkViaCallback.php | ||
| PoolWorkArticleView.php | ||
| PoolWorkArticleViewCurrent.php | ||
| PoolWorkArticleViewOld.php | ||