Last modified: 2014-08-12 15:47:55 UTC
[[Special:Log/abusefilter]] hit * Ruslik0 * Ruslik0 triggered [[Special:AbuseFilter/10|filter 10]], performing the action "move" on [[User talk:皆木]]. Actions taken: Warn ([[Special:AbuseLog/4600|details]]) was seen on incubatorwiki by Vogone. I assume local renameuser has the same problem too, since I just copy-pasted the code.
The least-evil idea I could come up with is just setting $wgHooks['AbortMove'] = array(); while moving pages, and then resetting it afterwards. Out of WMF-deployed extensions, grep found: * AbuseFilter * EducationProgram * JsonConfig * LiquidThreads * TitleBlacklist (also could block page moves) * WikimediaIncubator The only extension where such a thing would be unsafe looks to be LQT...it's doing some scary database updates in an abort hook???
I think the only thing we really want to remove from the array over here (or disable in another way) is AbuseFilter... maybe there's another way to achieve this, but I can't think of anything offhand. Maybe we finally want to implement a user right that makes one completely skip AbuseFilters (Wikia has something like that in an own extension, but the code's ugly)
(In reply to Marius Hoch from comment #2) > I think the only thing we really want to remove from the array over here (or > disable in another way) is AbuseFilter... maybe there's another way to > achieve this, but I can't think of anything offhand. $pos = array_search( 'AbuseFilterHooks::onAbortMove', $wgHooks['AbortMove'] ); if ( $pos !== false ) { unset( $wgHooks['AbortMove'][$pos] ); } // move page code if ( $pos !== false ) { // cleanup $wgHooks['AbortMove'][$pos] = 'AbuseFilterHooks::onAbortMove'; }
(In reply to Kunal Mehta (Legoktm) from comment #3) > (In reply to Marius Hoch from comment #2) > > I think the only thing we really want to remove from the array over here (or > > disable in another way) is AbuseFilter... maybe there's another way to > > achieve this, but I can't think of anything offhand. > > $pos = array_search( 'AbuseFilterHooks::onAbortMove', $wgHooks['AbortMove'] > ); > if ( $pos !== false ) { > unset( $wgHooks['AbortMove'][$pos] ); > } > > // move page code > > if ( $pos !== false ) { // cleanup > $wgHooks['AbortMove'][$pos] = 'AbuseFilterHooks::onAbortMove'; > } On a scale of one to evil that's super evil... if this is a major problem I'm ok with doing this for now, as long as we at least create a bug for fixing this properly.
Change 145870 had a related patch set uploaded by Legoktm: Hack: Prevent AbuseFilter from interfering with GlobalRename page moves https://gerrit.wikimedia.org/r/145870
(In reply to Marius Hoch from comment #4) > On a scale of one to evil that's super evil... if this is a major problem > I'm ok with doing this for now, as long as we at least create a bug for > fixing this properly. Agreed. I'm concerned that out of 2 of the 3 global renames so far, AbuseFilters have been triggered. On a local rename, it's much easier to check if you've triggered any filters, but not so much on a global scale. My patch logs any hits to a debug file (will need to add a group on the cluster), so after say, 10 or 20 more renames, we can evaluate whether doing this is actually necessary.
Change 145870 merged by jenkins-bot: Hack: Prevent AbortMove hook from interfering with GlobalRename page moves https://gerrit.wikimedia.org/r/145870
Hack is merged, but we still need a proper solution. Setting bug 67936 as a blocker, since I think that is the best way to move forward here.