Last modified: 2013-12-06 16:43:39 UTC
Because when the "variant title" doesn't exist, LanguageConverter::findVariantLink() rewrites any link linking to the "variant title" to the "given title", so pages containing such links need cache invalidation too. More consideration: HTMLCacheUpdate seems not only for pagelinks, and findVariantLink is applied on some, but not all, other links. IIRC what works includes pagelinks, templatelinks and categorylinks. We may want to decide whether to add a new argument to HTMLCacheUpdate indicating to include variant titles or not, or switch based on $table, or just change callers to issue multiple HTMLCacheUpdate calls when variant invalidation is needed. Note: about page creation and deletion, this is only needed for creation, as pagelinks table is already affected by findVariantLink's rewrite to use "given title" during parsing when that page exists. Bug appearance on zhwiki: 1. Create [[page]] containing "[[測試]]" 2. Create [[测试]] with some content 3. [[page]] appears to contain a red link now, but a purge or null edit turns it to be blue, pointing to [[测试]]
cc'ing the inventor of HTMLCacheUpdate to give some idea about the "more consideration" part.
At first glance, I personally think multiple HTMLCacheUpdate's might be the way to go. Given that creation of a variant causes things linking to the other variant to change what pages they link to (and thus the links table), perhaps a non-recursive linksupdate would be in order for this situation.