Page MenuHomePhabricator

Fix inability to remove invalid titles from watchlist (both SpecialWatchlist/edit and SpecialWatchlist/raw)
Closed, ResolvedPublic

Description

Author: pbugzilla

Description:
I have a mystery entry "HAGGER" in my watchlist. Searching the bug database I find that this relates to bug no 13602 and is probably because of reverted vandalism of some page I was watching. What that bug report doesn't say is that it seems to be impossible to get rid of the HAGGER entry in the watchlist. I have tried (several times each) using the Edit Watchlist page and the "edit the raw file" interface. In the former case, ticking the box and submitting says that HAGGER has been removed, but actually shows HAGGER still on the list. In the latter, I can remove the HAGGER line, but on pressing save, it reappears. Very odd.


Version: unspecified
Severity: minor

Details

Reference
bz28936

Event Timeline

bzimport raised the priority of this task from to High.Nov 21 2014, 11:28 PM
bzimport set Reference to bz28936.

Can you copy-paste a few lines from the raw interface to this bug? It might help with testing.

pbugzilla wrote:

When you say "from the raw interface" I'm not sure quite what you mean. Here's a copy pasted bit from my Edit Watchlist page:
(Article)
[..]

  • Homework (talk | History)
  • HАGGER? (talk)
  • Optical calcite (talk | History)

[..]

and here are the corresponding lines of HTML:

<li><input name="titles[]" type="checkbox" value="Homework" /><a href="/wiki/Homework" title="Homework">Homework</a> (<a href="/wiki/Talk:Homework" title="Talk:Homework">talk</a> | <a href="/w/index.php?title=Homework&amp;action=history" title="Homework">History</a>)</li>
<li><input name="titles[]" type="checkbox" value="HАGGER?" /><a href="/w/index.php?title=H%D0%90GGER%3F&amp;action=edit&amp;redlink=1" class="new" title="HАGGER? (page does not exist)">HАGGER?</a> (<a href="/w/index.php?title=Talk:H%D0%90GGER%3F&amp;action=edit&amp;redlink=1" class="new" title="Talk:HАGGER? (page does not exist)">talk</a>)</li>

<li><input name="titles[]" type="checkbox" value="Optical calcite" /><span class="watchlistredir"><a href="/wiki/Optical_calcite" class="mw-redirect" title="Optical calcite">Optical calcite</a></span> (<a href="/w/index.php?title=Talk:Optical_calcite&amp;action=edit&amp;redlink=1" class="new" title="Talk:Optical calcite (page does not exist)">talk</a> | <a href="/w/index.php?title=Optical_calcite&amp;action=history" title="Optical calcite">History</a>)</li>

After clicking the box next to Hagger and pressing Remove Titles, I get the following message, but no change to the actual list:

A single title was removed from your watchlist:

  • HАGGER? (talk)

Your watchlist contains 7 titles (excluding talk pages).

Does that help at all? If not, please let me know more precisely what would help.

(In reply to comment #2)

When you say "from the raw interface" I'm not sure quite what you mean. Here's
a copy pasted bit from my Edit Watchlist page:
(Article)
[..]

  • Homework (talk | History)
  • HАGGER? (talk)
  • Optical calcite (talk | History)

[..]

Sorry for the confusion. I meant from [[Special:Watchlist/raw]].

I just tried to reproduce this on test.wikipedia.org and wasn't able to, through [[Special:Watchlist/edit]] or [[Special:Watchlist/raw]]. Both allowed me to easily add or remove the title.

Did a local test adding page 'HАGGER?' (with \xd0\x90) to my watchlist in raw DB and removing it through 'edit watchlist', seemed to work fine on trunk.

Conceivable that something with blacklists is breaking it somewhere along the line, but it ought not to.

(In reply to comment #2)

href="/w/index.php?title=Talk:H%D0%90GGER%3F&amp;action=edit&amp;redlink=1"

Interesting. So this title has a character that looks like an A but isn't one, and ends in a question mark. The same issue affects now-invalid main namespace titles as WP:FOO as well; generally it should be possible to remove invalid titles from your watchlist as opposed to having them stuck forever :)

Could you (reporter) tell us what your username is and on which wiki you're seeing this mysterious HAGGER title? That'll allow me to see what your watchlist looks like in the database, which will help debugging.

Reproducing and testing this locally should be easy; just copy the bad watchlist row from Wikipedia to the local database and try to remove the watchlist entry through the UI.

pbugzilla wrote:

I'm Educres on Wikipedia. On http://en.wikipedia.org/w/index.php?title=Special:Watchlist&action=raw there is not a lot to see:

[...]
Homework
HАGGER?
Optical calcite
[...]

I can apparently delete the HAGGER line, but it doesn't actually disappear. I have since remembered that I should check whether I can delete non-HAGGER lines without trouble, and indeed, I can.

Could you give the Hagger line from the output of http://en.wikipedia.org/w/api.php?action=query&list=watchlistraw&format=jsonfm&wrlimit=max (the api doesn't normalize watchlist titles, so it will give the actual entry)

pbugzilla wrote:

{

			"ns": 0,
			"title": "H\u0410GGER?\u2002"
		},

pbugzilla wrote:

oh, and further down of course
{

			"ns": 1,
			"title": "Talk:H\u0410GGER?\u2002"
		},

(In reply to comment #8)

{

    "ns": 0,
    "title": "H\u0410GGER?\u2002"
},

Well that'd be the reason, since r55382 we do not allow U+2002 (which is an en-space ) to be in titles.

From Roan, possible steps to reproduce:

  • Create a page named "FOO:BAR" and add it to your watchlist
  • change your localsettings.php to register a namespace alias from "FOO" to, say, NS_PROJECT
  • have fun trying to remove FOO:BAR from the watchlist.

(In reply to comment #11)

From Roan, possible steps to reproduce:

  • Create a page named "FOO:BAR" and add it to your watchlist
  • change your localsettings.php to register a namespace alias from "FOO" to,

say, NS_PROJECT

  • have fun trying to remove FOO:BAR from the watchlist.

Your reply strongly indicates that you didn't read the previous comments on this bug. This bug isn't about namespace aliases and watchlists. Those issues are covered by bug 24280 and bug 5280. A similar (or the same) solution might be possible for namespace aliases and other invalid characters (such as \u2002), but this bug specifically is about invalid characters causing irremovable entries on a watchlist.

switch to milestone, remove release tracking dep