Last modified: 2011-10-15 22:03:20 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 T33379, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 31379 - Unable to edit any page that start with a parenthesis
Unable to edit any page that start with a parenthesis
Status: VERIFIED FIXED
Product: MediaWiki extensions
Classification: Unclassified
AbuseFilter (Other open bugs)
unspecified
All All
: High blocker (vote)
: ---
Assigned To: Nobody - You can work on this!
: need-integration-test
Depends on:
Blocks: 29876
  Show dependency treegraph
 
Reported: 2011-10-05 15:36 UTC by Nakor
Modified: 2011-10-15 22:03 UTC (History)
8 users (show)

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


Attachments

Description Nakor 2011-10-05 15:36:29 UTC
Lately (since upgrade to 1.18?) it is not possible to edit any page that start with a parenthesis at fr.wikipedia.org e.g. http://fr.wikipedia.org/wiki/(S)ex_list

The "edit" page work but the "submit" page does not

The error message is:

PHP fatal error in /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php line 1197:
Object of class AFPData could not be converted to string
Comment 2 Nakor 2011-10-05 15:39:15 UTC
Update: this happens only with my main account that has

sysop
checkuser 
abusefilter

flags.
Comment 3 Litlok 2011-10-05 16:00:59 UTC
I confirm. After having created a single-purpose account, I managed to make a simple modification (http://fr.wikipedia.org/w/index.php?title=(5535)_Annefrank&diff=70772016&oldid=69880772) which I could not perform when I was logged in as sysop.
Comment 4 Letartean 2011-10-05 16:31:06 UTC
Also have problem editing the page. I am also a sysop of fr.wiki.
Comment 5 Jérémie Roquet 2011-10-05 16:57:19 UTC
Can confirm too.

This is not related to the sysop or abusefilter flags (I've the same problem with my “Arktest” account), nor to local scripts (I've same problem with JavaScript disabled).

Best regards,

-- 
Arkanosis@frwiki
Comment 6 Tim Starling 2011-10-05 22:29:45 UTC
Backtrace:

#0 /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1204): strtr('Erreur dans l??...', Array)
#1 /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(1300): wfMsgReplaceArgs('Erreur dans l??...', Array)
#2 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(375): wfMsgExt('abusefilter-exc...', Array, Array)
#3 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(1754): AFPUserVisibleException->__construct('regexfailure', 757, Array)
#4 [internal function]: AbuseFilterParser::regexErrorHandler(2, 'preg_match() [<...', '/usr/local/apac...', 221, Array)
#5 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(221): preg_match('/#((?i)redirect...', 'Il est compos??...')
#6 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(891): AFPData::keywordRegex(Object(AFPData), Object(AFPData), 757)
#7 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(862): AbuseFilterParser->doLevelSpecialWords(Object(AFPData))
#8 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(843): AbuseFilterParser->doLevelBoolInvert(Object(AFPData))
#9 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(829): AbuseFilterParser->doLevelPow(Object(AFPData))
#10 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(810): AbuseFilterParser->doLevelMulRels(Object(AFPData))
#11 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(796): AbuseFilterParser->doLevelSumRels(Object(AFPData))
#12 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(786): AbuseFilterParser->doLevelCompares(Object(AFPData))
#13 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(710): AbuseFilterParser->doLevelBoolOps(Object(AFPData))
#14 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(639): AbuseFilterParser->doLevelConditions(Object(AFPData))
#15 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(574): AbuseFilterParser->doLevelSet(Object(AFPData))
#16 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(562): AbuseFilterParser->doLevelSemicolon(Object(AFPData))
#17 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(546): AbuseFilterParser->doLevelEntry(Object(AFPData))
#18 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.parser.php(531): AbuseFilterParser->intEval('(??  ("user" in...')
#19 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.class.php(396): AbuseFilterParser->parse('(??  ("user" in...', 241)
#20 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.class.php(475): AbuseFilter::checkConditions('(??  ("user" in...', Object(AbuseFilterVariableHolder), true, 'keepvars')
#21 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.class.php(429): AbuseFilter::checkFilter(Object(stdClass), Object(AbuseFilterVariableHolder), true)
#22 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.class.php(740): AbuseFilter::checkAllFilters(Object(AbuseFilterVariableHolder))
#23 /usr/local/apache/common-local/php-1.18/extensions/AbuseFilter/AbuseFilter.hooks.php(42): AbuseFilter::filterAction(Object(AbuseFilterVariableHolder), Object(Title))
#24 [internal function]: AbuseFilterHooks::onEditFilterMerged(Object(EditPage), '{{Infobox Musiq...', '', '')
#25 /usr/local/apache/common-local/php-1.18/includes/Hooks.php(216): call_user_func_array('AbuseFilterHook...', Array)
#26 /usr/local/apache/common-local/php-1.18/includes/GlobalFunctions.php(3621): Hooks::run('EditFilterMerge...', Array)
#27 /usr/local/apache/common-local/php-1.18/includes/EditPage.php(1114): wfRunHooks('EditFilterMerge...', Array)
#28 /usr/local/apache/common-local/php-1.18/includes/EditPage.php(2855): EditPage->internalAttemptSave(false, false)
#29 /usr/local/apache/common-local/php-1.18/includes/EditPage.php(475): EditPage->attemptSave()
#30 /usr/local/apache/common-local/php-1.18/includes/EditPage.php(353): EditPage->edit()
#31 /usr/local/apache/common-local/php-1.18/includes/Wiki.php(498): EditPage->submit()
#32 /usr/local/apache/common-local/php-1.18/includes/Wiki.php(239): MediaWiki->performAction(Object(Article))
#33 /usr/local/apache/common-local/php-1.18/includes/Wiki.php(623): MediaWiki->performRequest()
#34 /usr/local/apache/common-local/php-1.18/includes/Wiki.php(530): MediaWiki->main()
#35 /usr/local/apache/common-local/php-1.18/index.php(57): MediaWiki->run()
#36 /usr/local/apache/common-local/live-1.5/index.php(3): require('/usr/local/apac...')
#37 {main}
Comment 7 Jérémie Roquet 2011-10-06 09:12:49 UTC
Hi Tim, thanks a lot for the stack!

The problem was a filter¹ building a regexp at runtime (which happened to be invalid because of the first character being escaped, then isolated to be matched case-insensitively — which means the “\” was isolated alone instead of the whole “\(”).

This filter was too hackish anyway, so I've disabled it until I find some time to fix bug 24109.

I'm marking the bug as resolved, but I'd like other reporters to check if it works for them.

BTW : only edits from users with more than 100 contributions were filtered, thus explaining why some people had the problem and some others hadn't.

Thanks again and best regards,

¹ https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Filtre_antiabus/45
Comment 8 Jérémie Roquet 2011-10-06 09:22:17 UTC
FYI: I've opened bug 31421.
Comment 9 Litlok 2011-10-06 10:09:59 UTC
Thank you Jérémie.

Looks like everything is in order for me: http://fr.wikipedia.org/w/index.php?title=%281918%29_Aiguillon&diff=70790326&oldid=70062535
Comment 10 Letartean 2011-10-06 11:37:47 UTC
Works for me too.
http://fr.wikipedia.org/w/index.php?title=(S)ex_list&diff=70792045&oldid=70788199

Thanks for your help!
Comment 11 Mark A. Hershberger 2011-10-15 22:03:20 UTC
tagging bugs for Marcus to look at

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


Navigation
Links