Page MenuHomePhabricator

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

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