https://bugzilla.wikimedia.org/show_bug.cgi?id=31419

Roan Kattouw <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #12 from Roan Kattouw <[email protected]> 2011-11-14 06:55:50 
UTC ---
(In reply to comment #11)
> The same error seems to be happening on kwiki right now.
> 
kwiki? You seem to have dropped a character there. Did you mean kwwiki?

Typically, these errors happen when there's an overzealous TitleBlacklist rule
that blocks your username, usually because someone who didn't read the
documentation wrote a rule that accidentally blacklists all user creations. We
had this problem on kwwiktionary on Saturday: the offending rule was that
accounts matching [A-Z ]{10,}.* (first ten chars are caps or spaces) couldn't
be created, however:
1) TB regexes are case-insensitive by default, unless explicitly specified
otherwise. So the regex matched any string starting with at least ten
characters that were either a letter (uppercase or lowercase) or a space
2) for user creations, the TB regex matches against "User:Foo", or the
localized equivalent thereof. In kw, this is "Devnydhyer:Foo", which matches
the regex regardless of what "Foo" is because "Devnydhyer" is ten characters
(if the prefix were shorter, no username would've matched, because of the
colon)

This sort of thing is very annoying because only existing sysop accounts are
exempt from TB checks. Global sysadmins are exempt from TB in theory (and
usually in practice), but this bug prevents them from autocreating their local
account if it doesn't already exist. To fix this, sysadmins have to disable TB,
autocreate their account, reenable TB, then fix the blacklist. Even creating an
account from the command line doesn't work because TB blocks that too.

> Every page acces fails, including special pages (tried special:preferences and
> specila:specialpages)
> 
> the error trace seems similar to the one posted above : 
> 
> Unstub loop detected on call of $wgLang->getCode from MessageCache::get
> 
That said, this is a bug. I'll see if I can fix the unstub loop, but I
sometimes wonder what the use of stubbing $wgLang is. I guess there are API
requests where it's not used.

Annotations to the backtrace for my own benefit:

> Backtrace:
> 
> #0 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(57):
> StubObject->_unstub('getCode', 5)
> #1 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(147):
> StubObject->_call('getCode', Array)
> #2 [internal function]: StubUserLang->__call('getCode', Array)
> #3
> /usr/local/apache/common-local/php-1.18/includes/cache/MessageCache.php(611):
> StubUserLang->getCode()
Third unstubbing of $wgLang.

> #4 /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1339):
> MessageCache->get('gadgets-definit...', true, false)
> #5
> /usr/local/apache/common-local/php-1.18/extensions/Gadgets/Gadgets_body.php(510):
> wfEmptyMsg('gadgets-definit...', '&lt;gadgets-def...')
> #6
> /usr/local/apache/common-local/php-1.18/extensions/Gadgets/Gadgets_body.php(38):
> Gadget::loadStructuredList()
> #7 [internal function]: GadgetHooks::userGetDefaultOptions(Array)
> #8 /usr/local/apache/common-local/php-1.18/includes/Hooks.php(216):
> call_user_func_array('GadgetHooks::us...', Array)
Gadgets extension responding to a hook and using wfEmptyMsg()

> #9 /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(3621):
> Hooks::run('UserGetDefaultO...', Array)
> #10 /usr/local/apache/common-local/php-1.18/includes/User.php(1211):
> wfRunHooks('UserGetDefaultO...', Array)
> #11 /usr/local/apache/common-local/php-1.18/includes/User.php(2131):
> User::getDefaultOptions()
User::getDefaultOptions() called, calls Gadgets hook.

> #12 /usr/local/apache/common-local/php-1.18/includes/RequestContext.php(213):
> User->getOption('language')
> #13 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(151):
> RequestContext->getLang()
> #14 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(103):
> StubUserLang->_newObject()
> #15 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(57):
> StubObject->_unstub('getCode', 5)
> #16 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(147):
> StubObject->_call('getCode', Array)
> #17 [internal function]: StubUserLang->__call('getCode', Array)
> #18
> /usr/local/apache/common-local/php-1.18/includes/cache/MessageCache.php(611):
> StubUserLang->getCode()
Second unstubbing of $wgLang causing user options fetch.

> #19 
> /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1173):
> MessageCache->get('titleblacklist-...', true, false)
> #20 
> /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1242):
> wfMsgGetKey('titleblacklist-...')
> #21
> /usr/local/apache/common-local/php-1.18/extensions/TitleBlacklist/TitleBlacklist.hooks.php(85):
> wfMsgWikiHtml('titleblacklist-...', ' [A-Z ]{10,}.* ...', 'Darkoneko')
TitleBlacklist calling wfMgsWikiHtml() to display an error message, causing a
$wgLang call

> #22
> /usr/local/apache/common-local/php-1.18/extensions/TitleBlacklist/TitleBlacklist.hooks.php(106):
> TitleBlacklistHooks::acceptNewUserName('Darkoneko', Object(User), '')
> #23 [internal function]:
> TitleBlacklistHooks::centralAuthAutoCreate(Object(User), 'Darkoneko')
> #24 /usr/local/apache/common-local/php-1.18/includes/Hooks.php(216):
> call_user_func_array('TitleBlacklistH...', Array)
TitleBlacklist verifying the autocreation

> #25 
> /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(3621):
> Hooks::run('CentralAuthAuto...', Array)
> #26
> /usr/local/apache/common-local/php-1.18/extensions/CentralAuth/CentralAuthHooks.php(469):
> wfRunHooks('CentralAuthAuto...', Array)
> #27
> /usr/local/apache/common-local/php-1.18/extensions/CentralAuth/CentralAuthHooks.php(253):
> CentralAuthHooks::attemptAddUser(Object(User), 'Darkoneko')
> #28 [internal function]: CentralAuthHooks::onUserLoadFromSession(Object(User),
> NULL)
> #29 /usr/local/apache/common-local/php-1.18/includes/Hooks.php(216):
> call_user_func_array('CentralAuthHook...', Array)
CentralAuth trying to autocreate the account

> #30 
> /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(3621):
> Hooks::run('UserLoadFromSes...', Array)
> #31 /usr/local/apache/common-local/php-1.18/includes/User.php(930):
> wfRunHooks('UserLoadFromSes...', Array)
> #32 /usr/local/apache/common-local/php-1.18/includes/User.php(272):
> User->loadFromSession()
Loading user data from session

> #33 /usr/local/apache/common-local/php-1.18/includes/User.php(3928):
> User->load()
> #34 /usr/local/apache/common-local/php-1.18/includes/User.php(2125):
> User->loadOptions()
> #35 /usr/local/apache/common-local/php-1.18/includes/RequestContext.php(213):
> User->getOption('language')
> #36 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(151):
> RequestContext->getLang()
> #37 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(103):
> StubUserLang->_newObject()
> #38 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(57):
> StubObject->_unstub('getCode', 5)
> #39 /usr/local/apache/common-local/php-1.18/includes/StubObject.php(147):
> StubObject->_call('getCode', Array)
> #40 [internal function]: StubUserLang->__call('getCode', Array)
> #41
> /usr/local/apache/common-local/php-1.18/includes/cache/MessageCache.php(611):
> StubUserLang->getCode()
First $wgLang unstub, causes user options fetch

> #42 
> /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1173):
> MessageCache->get('preferences', true, false)
> #43 
> /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1153):
> wfMsgGetKey('preferences', true, false, true)
> #44 
> /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1071):
> wfMsgReal('preferences', Array)
> #45 /usr/local/apache/common-local/php-1.18/includes/SpecialPage.php(592):
> wfMsg('preferences')
Probably the first wfMsg() call

> #46 /usr/local/apache/common-local/php-1.18/includes/SpecialPage.php(531):
> SpecialPage->getDescription()
> #47
> /usr/local/apache/common-local/php-1.18/includes/specials/SpecialPreferences.php(37):
> SpecialPage->setHeaders()
> #48
> /usr/local/apache/common-local/php-1.18/includes/SpecialPageFactory.php(460):
> SpecialPreferences->execute(NULL)
Special:Preference executing

> #49 /usr/local/apache/common-local/php-1.18/includes/Wiki.php(226):
> SpecialPageFactory::executePath(Object(Title), Object(RequestContext))
> #50 /usr/local/apache/common-local/php-1.18/includes/Wiki.php(626):
> MediaWiki->performRequest()
> #51 /usr/local/apache/common-local/php-1.18/includes/Wiki.php(533):
> MediaWiki->main()
> #52 /usr/local/apache/common-local/php-1.18/index.php(57): MediaWiki->run()
> #53 /usr/local/apache/common-local/live-1.5/index.php(3):
> require('/usr/local/apac...')
> #54 {main}
Normal init path for a special page view

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to