Last modified: 2013-08-18 08:32:59 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T33628, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 31628 - When #ifexists target page is created/deleted, does not update links tables
When #ifexists target page is created/deleted, does not update links tables
Status: NEW
Product: MediaWiki
Classification: Unclassified
Parser (Other open bugs)
1.18.x
All All
: Normal normal with 2 votes (vote)
: ---
Assigned To: Nobody - You can work on this!
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-10-11 23:55 UTC by Brad Jorsch
Modified: 2013-08-18 08:32 UTC (History)
7 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Brad Jorsch 2011-10-11 23:55:25 UTC
Consider a page "SourcePage" containing wikitext like this:

    {{#ifexist:TargetPage|Exists.[[Category:Foo]]|Does not exist.[[Category:Bar]]}}

Assume that when the above is first added to SourcePage, TargetPage does not exist. SourcePage is therefore categorized in Category:Bar.

Then create TargetPage. SourcePage is correctly purged, showing "Exists" and showing Category:Foo at the bottom of the page. But if you actually look at the two categories, SourcePage remains in Category:Bar and is not found in Category:Foo.

This same thing happens with image links (the list at the bottom of the image page is wrong) and template transclusion links (the list in the template's Special:WhatLinksHere output is wrong). I haven't tested external links, interwiki links, language links, or the like, but they are probably wrong too.

A null edit to SourcePage will, of course, fix all these problems, but it shouldn't be necessary.
Comment 1 Brion Vibber 2011-10-12 00:30:52 UTC
Is this on a local test install or on one of the Wikimedia sites? IIRC we run cleanup of referenced pages through the job queue, so there may be some delay before everything gets invalidated.
Comment 2 Brad Jorsch 2011-10-12 03:26:29 UTC
Tested mainly on enwiki, but I just ran the same test on my local install (currently r99582) and observed the same behavior.

Is the job queue currently behind by ''hours'' when dealing with simple sandbox pages not linked from anywhere else?
Comment 3 Joe Decker 2012-05-21 00:26:39 UTC
Speaking from my experiences on ENWIKI, there is a general feature/bug/behavior that template-inserted categories don't update until there's a null edit or better, as a rule. This impression seems confirmed to me by my reading of http://en.wikipedia.org/wiki/Wikipedia:NULLEDIT#Null_edit

I have been told by a knowledgable user (as I've been pursuing a BRFA for a bot to deal with the trouble this is causing a single particular maintenance category at ENWIKI) that this relates to purge, etc., not updating the "categorylinks table."  

I'd be interested in knowing if that is in fact the case, if so if this is a problem that can/will be fixed, or if instead the performance implications of fixing it would be prohibitive.  I can suggest/create workarounds at varying degrees of cost, but first, if this is just a general bug that's easily fixed, that'd be useful data.  Thanks.
Comment 4 MZMcBride 2012-10-31 04:33:29 UTC
This seems related to bug 12019 ("ifexist function uses pagelinks table in lieu of better options"). Since ifexist is using the pagelinks table, I'm not sure why updates aren't working properly.
Comment 5 Liangent 2012-10-31 04:42:27 UTC
(In reply to comment #4)
> This seems related to bug 12019 ("ifexist function uses pagelinks table in lieu
> of better options"). Since ifexist is using the pagelinks table, I'm not sure
> why updates aren't working properly.

I guess when a page is created/deleted, pages with pagelinks to it are only cleared from parser cache, but not reparsed (with linksupdate). Because traditional "pagelinks" change doesn't need linksupdate.

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links