Page MenuHomePhabricator

regex or range search deleted contributions for IP addresses
Open, Needs TriagePublic

Assigned To
None
Authored By
Billinghurst
Dec 21 2017, 11:37 AM
Referenced Files
None
Tokens
"Like" token, awarded by Pppery."Like" token, awarded by Izno."Like" token, awarded by Dinoguy1000."Pterodactyl" token, awarded by FriedrickMILBarbarossa."Like" token, awarded by taavi.

Description

With deleted contributions it would be useful if we could have a means to display be means of a regex or a range the deleted contributions for problematic users within a range.

  • Special:DeletedContributions

so something like

  • Special:DeletedContributions?target=175.158.0.0/16

or

  • Special:DeletedContributions?target=175.158.*

even if it is a limited number of search results would be useful, even just a list of IP addresses within the range that have deleted contributions that could then by a link(able) to the search for the specific found IP address

Event Timeline

Yeah, IP range support at Special:DeletedContributions was meant to happen along with T163562, but well, it didn't. I think we could probably use the same approach (new table with hex value for the IP address), but I'm not sure if Multi-Content-Revisions would conflict with this. @brion @Anomie Do you know? Basically, could we do the same thing as https://gerrit.wikimedia.org/r/#/c/349457/ but for archive?

MCR itself won't make any difference.

When the actor table change (T167246) is complete, you might be able to do it by adding an actor_ip_hex column to the actor table instead. You'd have to test out the queries to be sure they use a sane plan for that.

Or else there are two other ways you could go about besides adding a denormalized "archive_ip_changes" table, depending on whether an end goal is to merge ip_changes into revision.

  • If an eventual merge is planned, add an ar_ip_hex column directly to archive. Unlike revision, archive is not so huge that altering it is prohibitive.
  • If no merge is planned (why not?), you could redefine ipc_rev_id as referring to either rev_id or ar_rev_id, and stop deleting rows in WikiPage::doDeleteArticleReal(). You'd need to wait for T182678: [MCR] Script for populating empty ar_rev_id fields to fully make use of that, and that might turn out to be poorly performing for an IP range with lots of [deleted/undeleted] changes and few [undeleted/deleted].

Sweet, thanks for the info!

Unlike revision, archive is not so huge that altering it is prohibitive.

That about settles it for me, then. A ar_ip_hex seems most appropriate so the data is all in one place, and is certainly the easiest approach.

(Asking for a friend) is the same logic also translatable to [[Special:log/block]]? or are we just pushing excreta up hill? Happy to do another ticket, though only if it is considered doable. (no point otherwise).

(Asking for a friend) is the same logic also translatable to [[Special:log/block]]? or are we just pushing excreta up hill? Happy to do another ticket, though only if it is considered doable. (no point otherwise).

See T146628