Page MenuHomePhabricator

"You've got new messages" is displayed for a non-existent discussion page
Closed, ResolvedPublic

Description

Author: malhonen

Description:
I encountered the following problem: I registered myself an account on es.wikipedia.org and didn't write anything on my user pages. Then, for some reason, somebody made a test edit on my discussion page, which was noticed by one of the administrators who then decided to delete the vandalized page altogether, since it had no content besides the misplaced test edit.

Now, the next time I logged in, the system told me I have new messages and offered me links to the discussion page and its latest diff. The first link just told me that the page doesn't exist, and the second one brought up an error message saying "The database did not find the text of a page that it should have found, named ..." (missingarticle). Actually, it took me some while to figure out what's happening. I wasn't sure if the program just didn't know how to display the contents of my page, if I had a problem with my browser's cache or what. Evidently, I figured it out at some point, but not all new users have sufficient knowledge about how MediaWiki works (I already have had user accounts on several other Wikimedia projects) and to them the situation would remain unresolved and perplexing. Any chances getting this fixed? I see bug #2939 is similar, but still different. If the discussion page doesn't exist at all, you can be pretty sure there are no new messages even if the newtalk flag was set.


Version: 1.13.x
Severity: normal
URL: http://es.wikipedia.org

Details

Reference
bz14077

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 10:13 PM
bzimport set Reference to bz14077.
bzimport added a subscriber: Unknown Object (MLST).

I view this differently: When a user talk page is deleted, all user notifications about new messages on that page should be reset.

Created attachment 4907
Implement "clear new message indicator"

Not elegant, but works for sure. If $ns is NS_USER_TALK, then we set the $userid to be either the id for the username or the ip address. Later, we use this to delete the offending rows from user_newtalk. Against trunk (r35071).

Attached: