Page MenuHomePhabricator

"Throttle" action seems to malfunction randomly
Closed, ResolvedPublic

Description

On itwiki I set a filter which allows 1 action every 90 seconds, grouping by "user", and then prevents the action. However, today I found this entry where the action was disallowed even if that IP didn't make any other edit in the last 2 days. The AbuseLog is also empty, so basically this was the first edit and it got disallowed, while it shouldn't. I came to test this on beta cluster, where I created a similar filter (allow 1 action every 30 sec, group by "user", then disallow) and it correctly let me make the first edit and disallowed the second. I'm not sure why this happened, but right now I can't investigate so I'm putting this here as it is.

Event Timeline

Daimona triaged this task as High priority.Jun 9 2018, 12:09 PM

OK, either I don't understand it, or it's completely broken. For the same filter, there is this hit, which blocked the user. However, the filter is set to only block the user after throttling, and throttling is set to allow 2 actions every xxx seconds (private filter, don't want to give away too much info). This is surely wrong, since it allowed 0 actions, and blocked at the first edit.

Daimona added subscribers: Mbch331, Mahitgar, OdMishehu and 3 others.

This one is fresh and makes clear that this problem is still happening. However, I'm having troubles in reproducing it on my local wiki.

Change 458135 had a related patch set uploaded (by Daimona Eaytoy; owner: Daimona Eaytoy):
[mediawiki/extensions/AbuseFilter@master] Partly unbreak throttle action

https://gerrit.wikimedia.org/r/458135

Change 458135 merged by jenkins-bot:
[mediawiki/extensions/AbuseFilter@master] Partly unbreak throttle action

https://gerrit.wikimedia.org/r/458135

Daimona edited projects, added TestMe; removed Patch-For-Review.

I'll do whatever is needed to fix this, as part of T203587. This will probably get fixed on the way, but given that it seems to happen randomly I'm also adding a testme.

This was a hard-to-reproduce heisenbug, and two years later, lots of things have changed. Calling resolved for now, unless and until someone reports this issue again.