Steps to replicate the issue (include links if applicable):
- Create a template longer than $wgPreprocessorCacheThreshold with a non-existing extension tag, e.g. <img src="[image URL]" />
- Create a page with direct usage of that tag, vs using the template
- Install an extension that implements that tag, e.g. https://github.com/lihaohong6/ImgTag
- Check the parsed page
- Restart the PHP service if using APCu for WAN Cache (which clears the preprocess-hash cache), or clear the cache manually if using other object cache.
- Check the parsed page again
What happens?:
For the first time, the direct usage of the tag rendered correctly, but the one from the template is still broken.
After clearing the preprocess-hash cache, the one from the template also rendered correctly.
This may not be an issue under normal circumstances, as usually non-existent extension tags won't be used before the extension is installed. But it can break the wiki when upgrading from 1.39 to 1.43, since the support of parsing the img tag as a native HTML tag is removed from the parser between these two LTS versions. With the preprocess-hash cache from 1.39, it's not parsed as an extension tag, and it's difficult for server admin to clear the cache if not using APCu as the WAN Cache.
What should have happened instead?:
WAN Cache of preprocess-hash respecting $wgCacheEpoch, or the list of available extension tags, etc.
Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):
Other information (browser name/version, screenshots, etc.):