Page MenuHomePhabricator

Blank page with only "Create an account" on post-login submission due to TitleBlacklist
Closed, ResolvedPublic

Description

When I try to make an account on the English Wikipedia at https://en.wikipedia.org/w/index.php?title=Special:UserLogin&type=signup&returnto=Main+Page, it gives a strange error after I press the "Create account" button. It might be related to the username. I'm attaching two screenshots which should give steps to reproduce.


Version: master
Severity: critical

Details

Reference
bz42982

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 1:05 AM
bzimport set Reference to bz42982.

Created attachment 11491
Before login submission

Attached:

Created attachment 11492
After login submission

Attached:

swalling wrote:

@MZMcBride

Thanks for reporting. I'm going to try and reproduce it. In the meantime, just to confirm, you have JavaScript and cookies enabled in this browser? If you see this again, it would be a big help to check your browser console and report any errors you see.

swalling wrote:

Screenshot in Firefox 16

Attached:

swalling wrote:

Was able to reproduce with the same username ("Joining Wikipedia is free"), but using the same browser I was able to create User:WMFTest123456. Screenshot attached with console output.

I suspect the "Joining Wikipedia is free" has been blocked by TitleBlacklist.

swalling wrote:

Yes, when I try it with JS off (which gives you the old form), the TitleBlacklist prevents creation. I get the same blank error in the new version when trying any other name prevented by MediaWiki:Titleblacklist.

We were aware that clientside validation in its current form doesn't play well with Extension:AntiSpoof and the TitleBlacklist, and might in a few cases incorrectly confirm as good a name which the server rejects. However, we need to make sure the server-generated error is correctly displayed to users, instead of this blank error.

Thanks again for the help MZ and Platonides.

Thanks so much for tracking this down! The JavaScript on enwiki that enhances account creation munges the first table it finds in the content div. Extension:Title Blacklist doesn't use a table for its errors so our testing of this worked fine. But on enwiki someone tweaked MediaWiki:Titleblacklist-forbidden-new-account message to use an {{fmbox}} which puts it in a table. So the first table is not the login form, result: JS errors and garbled HTML.

Things to do:

  1. Avoid this specific JS error that halts the munging leaving the form invisible.
  2. Be smarter about finding the right table to modify.
  3. Don't hide so much of the page during munging so if JS fails the user sees something.
  4. Even if errors munging, always show the hidden part.

gerrit change 42982 does 1-3. 4 is dubious, since partly successful jQuery-fu may be worse than failing.

Sorry, I mean Gerrit change 38494

Fix merged to enwiki, seems to work now. (Though https://en.wikipedia.org/wiki/Special:Version still shows old extension version.)

swalling wrote:

Tested with the 'Joining Wikipedia is free' username, and all appears well.

Stein Van Uytven indicated that he encountered similar symptoms on another wiki. I'm CCing him so he can provide further details.

If he saw a similar symptom on another wiki (not using the account creation enhancement), it should be reported as a new bug.

He was using E3Experiments.

(In reply to comment #14)

He was using E3Experiments.

I suppose the question then becomes whether he was using a version of the extension that includes https://gerrit.wikimedia.org/r/38494.

svu1911 wrote:

(In reply to comment #15)

(In reply to comment #14)

He was using E3Experiments.

I suppose the question then becomes whether he was using a version of the
extension that includes https://gerrit.wikimedia.org/r/38494.

Hi,

I am using http://www.mediawiki.org/wiki/Extension:ArticleFeedbackv5
When I installed this extension it required a few other extensions including E3Experiments.

After installing it all, when I tried "create user" it returned a blank page.
(If I was logged in I could create a user via special pages)

When I commented out "require_once( "$IP/extensions/E3Experiments/Experiments.php" );" in LocalSettings.php the "create user" functioned again so I presumed it was a problem with the E3Experiments extension.

At the time of the bug I was using : E3Experiments-master-8d34938.tar.gz (version 0.7.1)

I've also tested the patched : experiments/acux/accountCreationUX.js file but the problem persists.

Thanks to S Page who pointed me in this direction I noticed a console error "$.trackActionWithOptions is not a function".
This seems to have something to do with another needed extension : "ClickTracking"

This bug in Clicktracking is referred to here :

http://www.mail-archive.com/wikibugs-l@lists.wikimedia.org/msg160795.html
http://www.gossamer-threads.com/lists/wiki/mediawiki-cvs/298490

And a patch is posted here :

https://gerrit.wikimedia.org/r/#/c/24078/

I've just tried to replace both files :

./extensions/ClickTracking/ClickTracking.hooks.php
./extensions/ClickTracking/modules/jquery.clickTracking.js

After trying to create a user when not logged in it seems to all work fine now with E2Experiments enabled in LocalSettings.php.

Thanks all for helping out!

svu1911 wrote:

*E3Experiments

:)

I suppose the question then becomes whether he was using a version of the
extension that includes https://gerrit.wikimedia.org/r/38494.

He wasn't. 8d34938 is actually the parent of that change.