[00:49:55] Hm.. how does https://commons.wikimedia.org/wiki/Category:Israel_Prize find interwikis from Wikidata? Does it do a reverse loopup for any Wikidata item with that category name as commons category? I'd expect a template on the page specifying the Q id or something like that (Like for Wikipedia articles) [00:50:06] Or is that template call inserted via an interface message of sorts. [01:10:29] Krinkle, [wikidatawiki]> select * from wb_items_per_site where ips_site_id='commonswiki' and ips_site_page='Category:Israel Prize'; [01:20:42] MaxSem: Right, and the WIkibase Client extension is automatically doing that on all category pages on Commons? [01:28:29] so apparently it was a claim initially: https://www.wikidata.org/w/index.php?title=Q9506598&diff=65571261&oldid=32828809 [01:29:19] aded from {{commonscat}} templates on WP, most likely [01:29:55] then when support for commons interwikis was added it was converted to it: https://www.wikidata.org/w/index.php?title=Q9506598&diff=240398264&oldid=235231616 [02:07:34] TimStarling: https://gerrit.wikimedia.org/r/#/c/367475/1/includes/config/EtcdConfig.php [02:10:28] +2 [02:11:00] Next patch as well if you could (broader test coverage) [02:11:03] Thanks :) [02:11:29] TimStarling: I just +2ed 'MultiWriteBagOStuff: Fix async writes' - do you plan to amend after htat rebase? Will cancel in that case. [02:11:54] I was just going to merge it after rebase [02:12:23] I saw that you already +2'd it after I clicked rebase [02:12:31] Aye, okay [02:12:50] +2 inherited so should be fine. [15:23:57] AaronSchulz: ping re https://gerrit.wikimedia.org/r/#/c/364898/ - could you follow up on petr's and gabriel's responses? :) thnx! [16:57:42] mobrovac: I believe he is on vacation [17:02:21] oh ok [17:02:24] thnx greg-g [17:09:32] Hmm. Should I start working on extension patches for T166732, or should I look at fixing T171392? [17:09:33] T166732: Refactor comment storage in the database and abstract access in MediaWiki - https://phabricator.wikimedia.org/T166732 [17:09:33] T171392: Some Commons pages transcluding Template:Countries_of_Europe HTTP 500/503 when accessed from non-English languages specified in the template - https://phabricator.wikimedia.org/T171392 [17:09:59] * anomie wishes "take a nap" were an option, but it doesn't seem to be [17:16:00] anomie: you can take a nap if you wake up with the fully formed solution to either. Directed dreaming! [17:17:41] bd808: I already have the solution to the comment storage one, it's just like what I did in the core patch. I just have to actually write the patches. Does that count? [17:18:00] "talk to your supervisor" ;) [17:18:33] Timezones. ;) [17:19:45] maybe you could work on some shared dream space communication and then be able to nap and have status calls with t.im at the same time? I'm sure I've seen this tech in several sci-fi and horror movies. [17:21:53] pretty sure freddy kruger had that tech back in the 80's [17:26:48] see also: Inception [20:48:37] I went down a rabbit hole earlier and wrote up https://gerrit.wikimedia.org/r/#/c/367781/ [20:48:48] James_F: Christmas in July gift to you and Reedy ^ [20:50:38] RainbowSprinkles: ❤️ [20:52:44] Do we not have a nicer way to do the IN? [20:54:56] Not that I can think of offhand [20:55:12] But I'm selecting in small batches, so it shouldn't be too bad once it gets going and the rows get hot [20:55:33] Well, for the IN perhaps [20:55:38] I was meaning syntactically [20:55:40] We could probably just iterate them [20:55:41] Oh [20:55:48] I thought we had some wrapper function to do the IN part [20:56:00] Oh, dur [20:56:04] foo => $bar [20:56:04] Maybe i'm just thinking of stuff that's more inbedded [20:56:09] It works for IN [20:56:12] Just not NOT IN [20:56:14] Right [20:56:16] I'll amend [20:56:54] Would a dry run mode or something be useful? To get counts/keys to be dropped for sanity checking? [20:57:16] I have a dry run mode [20:57:30] Basically it just skips the delete, we could make it more verbose though [20:58:42] Yeah. Especially for "Would drop 'skin' value for user 12345, current value 'fish'." or whatever. [20:58:44] Oh crud, didn't press save. [20:58:53] Dry-run is busted [21:05:25] "My skin value is a fish." [21:07:23] RainbowSprinkles: yeah, was gonna say [21:07:32] it's in the connstructor, but nowhere else :P [21:07:50] Fixed dry-run in PS5 [21:07:58] With super verbose output for James_F :) [21:09:39] Is it worth making it run by the updater? [21:09:49] Something that would be useful run repeatedly though [21:10:09] Nah, it's far too slow for any but the smallest wikis [21:10:14] It's not /required/ maintenance [21:13:12] Reedy: Could you +2 https://gerrit.wikimedia.org/r/#/c/367562/ if you're OK with it? [21:13:28] Hang on, I need to ring hte police for something [21:13:38] Kk. [21:18:09] Fucking non emergency line [21:19:18] RainbowSprinkles: Is your idea to run this soon? Might be an idea to avoid running it just before Wikimania, as if anything goes wrong we'll not be in a great place to fix it… [21:19:26] Oh no no no [21:19:30] This is gonna take awhile [21:19:34] Cool. [21:19:39] The last stage is /complicated/ [21:19:42] Also, do we have figures for how big the table is, and how big we'd "like" it to be? [21:19:48] And I'm pretty sure it's going to take /weeks/ for the largest wikis [21:20:02] * James_F nods. [21:20:07] James_F: Last rough estimate was enwiki's preference table at ~90m rows. [21:20:27] Right, so ~10 rows per account? Eesh. [21:20:41] Reedy and I did some napkin math earlier, and turns out ~75% of skin preferences have bogus values. That's a tad over 7m rows we can drop. [21:20:48] * James_F nods. [21:20:52] So, no idea on how far you can extrapolate [21:20:56] But we've got a lot of cruft [21:21:04] Yeah. [21:21:28] We might also consider dropping at least some config for exceptional old unused accounts, but that's a lot more hairy. [21:22:16] E.g. 2m people have monobook as a skin preference, but only 25k of them logged in in the last three years or whatever (very old numbers, probably wrong). [21:24:47] Meh. Rung 999 to report it [21:24:58] James_F: At some point [21:25:07] For now, I'd settle for killing /known unused/ crap [21:25:13] Totally. [21:25:34] Also we should kill off some more bad preferences anyway. ;-) [21:27:33] Holy. Fuck. [21:27:53] Sweet baby jesus. [21:27:54] Like. [21:27:55] Fuck. [21:28:02] Gahhhh [21:28:03] My eyes [21:28:07] My poor poor poor fucking eyes [21:29:46] … dare I ask? [21:30:00] https://phabricator.wikimedia.org/P5803 [21:30:28] Fun. [21:30:33] exposing prefs to js is ... gonna lead to this [21:31:32] I wonder if the font and span things are from some former injection bug in saving sigs? [21:31:55] Could be. No dates on the rows, so impossible to know how old they are [21:32:19] Could make a best guess based on user account in question I suppose [21:33:02] We could also have an on-login-pref-sanitisation job which'd clean up crap, I guess? [21:33:32] schnark-fliegelflagel looks like a Dr Seuss character name [21:33:35] RainbowSprinkles: Also theoretically that should Paste be NDA-protected, right? [21:34:17] Bah. searchNs-1 is still there? I thought we cleaned that up years ago? [21:35:57] Oh, good ol' searchNs4294967295 [21:36:05] I miss that namespace [21:36:08] 4294967295, such a good time [21:36:17] * James_F grins. [21:36:20] I'm pretty convince that code has been horrifically busted many times over the years [21:36:44] Yeah, but we did a DELETE ROW WHERE… back in ? 2014. [21:36:50] After we thought it had been fixed. [21:37:09] I dunno, maybe not [21:37:23] Is 4294967295 the cursed namespace we don't talk about? [21:37:32] harej: Sssh, stop talking about it [21:37:37] :o [21:38:22] James_F: If we can get the existing implementation ok for phase 1 & 2, I'd like to run dry-run on a decent sized closed wiki to see how well it works [21:38:28] harej: It's 2^32-1; PHP stores numbers as 32 bit longs, so signed -1 is unsigned 4294967295, and -1 is the Special: namespace. [21:38:43] RainbowSprinkles: WFM. No need to rush all the way to phase 3 in the first pass, certainly. [21:38:53] James_F: Oh dear. [21:38:56] RainbowSprinkles: Make each phase a command-line option. [21:39:00] phase3 is hard, conceptually. I've forgotten how most of the prefs code works [21:39:26] harej: Searching Special: is in and of itself a bug. Storing that you're searching it is another bug. Storing that badly is a third. [21:39:50] Bugs all the way down. [21:39:53] harej: I /believed/ that we'd fixed all three of these, and killed the bad preferences, but clearly I was wrong (or it's recurred). [21:39:56] you get a bug! you get a bug! everyone gets a bug! [21:40:12] I blame… cosmic rays. [21:41:51] RainbowSprinkles: And I always like it when Krinkle suggests in gerrit ideas in parallel to me suggesting them in IRC. It suggests I might be not totally wrong (or that groupthink is becoming a problem ;-)). [21:42:57] hehe [21:43:10] Yeah, we used to allow arbitrary key sets in the API [21:43:16] This was fixed in favour of requiring the userjs prefix instead. [21:43:31] But any old values will still be there, but adding more such keys is no longer possible afaik [21:44:09] I wonder if we expose those unknown keys to User/getOptions and in user.options in JS, or whether they are properly "hidden". In other words, could stuff still be supporting a non-userjs key for back-compat? [21:46:38] Krinkle: FWICT non-userjs prefs are shipped to the user still. getOptionKinds won't say it's a userjs pref, but nothing stops it going out? [21:46:55] Right [21:47:04] Since we let it slip through in the past there's no way to tell them apart [21:47:09] given the DB is meant to be authoritive [21:47:12] and has no meta data about it [21:47:29] it'll be kind=unused presumabl [21:47:30] y [21:49:22] We know 'real' preferences at this point (from config) and so we could add something on getOptions() that filters out things that aren't in that list, or begin with gagdgetjs- or userjs-*. [22:31:58] Bahahahahahahaha [22:32:12] Dry run produces an infinite loop [22:32:43] keeps trying to 'delete' the same stuff? :P [22:34:24] Yeah [22:34:31] I added a bogus entry to see how it'd handle it