[01:21:56] Hey awight :) [01:22:05] Nice work with those test fixtures! [01:22:49] AndyRussG: hi! I was just gonna say, I'm taking a look at the qunit branch, hopefully I can get most of those lights green again. Or mark the non-passing ones "skipped". [01:23:08] Too bad the fixtures had to be loaded via ajax, huh... [01:23:35] Hmmm [01:24:06] "will fix later" :) [01:24:47] yeah for now a few corners may be rounded ;) [01:25:07] it's prettier that way :p [01:25:36] but ah please let me know if there's anything I should focus on improving first [01:25:46] I confess I haven't gotten to qunit much yet... was figuring out how to run the PHP tests locally (I wasn't used to running with the --group) option [01:25:53] yep [01:26:02] php tests/phpunit/phpunit.php --group CentralNotice [01:26:10] sounds like you got that far :) [01:26:17] yep! [01:26:22] they passed [01:26:23] ? [01:26:25] yep! [01:26:32] this one could use a kick: https://gerrit.wikimedia.org/r/#/c/172882/ [01:26:39] On that one right now! [01:26:44] WRT to the FIXME [01:26:47] ah [01:27:27] could you set wgNoticeProject temporarily? [01:29:25] looking [01:29:30] That's the only issue I see so far... [01:30:49] Line 61 reference to wgCentralNoticeInfrastructureId will need updating since I merged your patch correcting my mindless oversight [01:31:04] Thanks, I have no idea why I couldn't figure out the project thing! [01:31:50] AndyRussG: oh, not mindless at all. I had to ask ^d and other people about the wikiId thing, to confirm the obvious :) [01:32:30] There's sooo much stuff in mw-core that needs to be documented still... [01:32:36] np... Well after analysing carefully some of the logic in CNDatabase, I have now idea why I didn't even read, or remember, the other relevant lines [01:32:46] me too! [01:32:56] that's what pressure does... [01:33:52] On that note, I swear up and down the code freeze date is not a random application of pressure thing! [01:35:02] Yeah I understand that... [01:35:19] thanks 4 saying so tho [01:35:40] I really hate that crap and would ferret it out so fast. [01:36:30] * AndyRussG imagines a ferret chomping up code and deadlines [01:36:38] Also [01:36:42] yes [01:36:56] * AndyRussG doesn't like the underscode method _getChoices [01:37:18] just a nitpick/preference, I'd sooner go for getChoicesForTesting [01:37:54] ooh. Sorry, I was too lazy to apply this wacky access control thing: https://gerrit.wikimedia.org/r/#/c/171490/2/tests/engines/LuaCommon/TitleLibraryTest.php,unified [01:38:03] cos I'm already in trouble about that [01:38:11] ok sure, that rename WFM [01:40:03] Maybe also a comment explaining that it's to make the protected method accessible? figueroutable but easier w/ a comment, sorry also for such scouring for nits [01:40:03] (PS10) Awight: Test CNBannerChoicesResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 [01:40:10] +1 [01:40:36] (CR) jenkins-bot: [V: -1] Test CNBannerChoicesResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 (owner: Awight) [01:40:40] oops [01:41:07] wat [01:41:45] ah, that other thing you said [01:42:21] Ah yea [01:45:08] (PS11) Awight: Test CNBannerChoicesResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 [01:47:23] Ah a couple other questions... [01:47:32] Looking at this https://www.mediawiki.org/wiki/Extension:CentralNotice#Overriding_selection [01:47:48] ok [01:48:31] Basically those are all params that the new version should be supporting, I guess? [01:48:43] other than random=, these are already implemented (and often used) functionality [01:49:26] so... yah. You can probably reuse most of the stuff, like weird regex that parses the GET params into mw.cn.getVars [01:49:44] Ah yeah I was planning on using that for random= actually [01:49:46] Where is the "force" param impelemented? [01:49:51] mmm [01:50:09] I think there's some of it in the bannerController, and some in the banner hide code? looking now [01:50:25] argh. nope, it's all in banners [01:50:44] Humm, just in every actual banner? [01:50:49] or most? [01:50:53] yeah. feel free to not fix that. [01:51:08] Hmm OK I much appreciate that luxury :) [01:51:24] And reset? [01:51:27] I think u get most of this functionality for free, if you only rewrite the loadRandomBanner function? [01:51:39] reset is also in banners... lemme link that fyi [01:51:58] for example: https://meta.wikimedia.org/wiki/MediaWiki:CentralNotice/Resources/BannerShowHideCountDate.js [01:52:59] sorry if I'm trying to pervert your excellent rewrite with street-fighting style, btw :) [01:53:38] heh sorry I'm derailing your fast reflexes with my excessive plodding 8p [01:54:17] Yeah I've seen stuff under MediaWiki:CentralNotice/Resources/ before... [01:54:21] hehe, maybe when Katie's back, my job can be something other than just reconciling major change with boring stability :p [01:55:29] they can be quantum states so it can be change and stability at the same time, until you look to see which one it really is [01:55:56] uh... Those are basically all scripts that banners include for kicks? I guess one has to look at the specific banners... [01:56:04] I think I know which state that will be... hehe I prefer not to open the box [01:56:32] good kitty [01:56:51] heheh houdini cat escaped [01:57:04] * AndyRussG looks at some banners [01:58:36] AndyRussG: yes here's an example banner, http://meta.wikimedia.org/wiki/MediaWiki:Centralnotice-template-Wpapp2014Androidmobile_1 [01:58:48] omg don't look there [01:58:59] that's a random copy pasta of the same code [01:59:13] oh god it's horrible out there [01:59:15] Was looking at this one https://meta.wikimedia.org/w/index.php?title=Special:CentralNoticeBanners/edit/B14_1112_13_frFR_mob_clng&template=B14_1112_13_frFR_mob_clng [01:59:45] For a good time, you can search metawiki with the MediaWiki namespace enabled: http://meta.wikimedia.org/w/index.php?title=Special%3ASearch&profile=advanced&search=BannerShowHide&fulltext=Search&ns0=1&ns8=1&ns12=1&ns200=1&ns202=1&ns866=1&profile=advanced [01:59:48] yikes [02:00:17] Yep. I would recommend even, not fixing this issue :) [02:00:59] k so I'll just ignore reset and force... [02:01:20] wait, no what if they rely on some aspect of bannerController that we're gonna change? [02:01:48] we probably are. But not in this rollout? [02:02:07] Is it possible to limit the action to just loadRandomBanner? [02:02:17] Maybe [02:02:20] I'll try to change the outward-facing API as little as possible [02:02:59] but that's the thing--we don't even know which internals are being abused, out there [02:03:17] Yeah... well, there should be some way to check. [02:03:29] Not easily, but some way or another... [02:03:34] :) seeing if we can pull the tablecloth out really fast [02:03:50] CGI [02:03:55] eh? [02:04:08] http://en.wikipedia.org/wiki/Computer-generated_imagery [02:04:16] ! [02:04:35] Mmm on the topic crazy JS [02:04:47] I was looking at Mixins again quickly... [02:05:00] yes [02:05:13] http://www.mediawiki.org/wiki/Extension:CentralNotice/Banner_mixins [02:05:15] they haven't been used yet, but I'm ready to do that any day [02:05:30] this was my solution to the proliferation of unreviewed JS [02:05:34] Yeah! [02:05:44] and pluggable arch for supporting PHP libs [02:06:05] heh banner diet composer [02:06:19] but it is not being used in practice, so no worries wrt this deployment [02:06:24] Hmm OK [02:06:52] The "preload rule" mentioned there--still something that comes in with the banner, right? I mean, it's not the same as JS that we've been talking about for sending in before the banner choice is made, right? [02:07:27] it's the future alternative to that junk [02:07:44] OK [02:07:45] We can verify it's not being used, btw, by searching the prod db [02:07:54] But I mean, as it's currently implemented [02:08:06] It's not something that goes to the client before the banner is requested... or is it? [02:08:09] however, lots of banners *are* using the insane alterImpressionData hooks, in two distinct ways AFAICT [02:08:24] no, it's inlined with the banner payload [02:08:42] it's actually js that runs as part of the JSONP response from BannerLoader [02:09:26] Ah OK interseting [02:09:27] got it [02:10:19] K maybe we should have QUnit tests on alterImpressionData then, though I don't think much around tht will be modified in this go [02:10:32] ahh sure [02:10:39] K :) [02:11:32] Thinking more about these tests, I guess the only other detail on my mind is to make sure that the fixtures cover all the wonky varieties of mix-and-matcheable criteria [02:11:36] Or at least a lot of them [02:11:46] fyi, I'm keeping test status tracked at https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/2136 [02:11:49] feel free to comment there [02:11:50] Looking over 'em quickly it looked like they were quite thorough [02:12:02] agreed that we need many more fixtures [02:12:19] I was... considering recruiting ejegg to expand that later this week, if he's interested [02:12:22] +1 nice mingle card! [02:12:45] K sounds fun [02:12:47] don't tell anyone I can actually do a good job, they'll start expecting it [02:15:29] ?? what if they force it out of me? or... just look at everything you do... [02:15:55] * awight mangles revision history [02:17:13] K besides https://gerrit.wikimedia.org/r/#/c/172882/, any others I should try to kick along this evening? [02:17:28] https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/CentralNotice,n,z [02:17:29] Mmm, any QUnit kicking u want to do would be great [02:17:45] K [02:44:28] gotta do family + packing for a minute [02:55:04] blrgg, silly Eclipse sometimes just won't update my view after a git change [02:55:17] yikes! [02:55:20] nice inotify [02:57:28] I guess you can't blame a huge Java app for going bezerk after a week of uptime... eventually it probably just grows to hate life [02:57:49] It should have the right to end its own process [03:00:12] yeah well I assisted it since it was clearly in pain [03:02:20] man those tests do perform some heavy lifting! [03:04:30] (CR) AndyRussG: [C: 2] "Most excellent! :)" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 (owner: Awight) [03:05:02] (Merged) jenkins-bot: Test CNBannerChoicesResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172882 (owner: Awight) [03:05:20] sleight of hand. [03:33:47] (CR) Awight: "recheck" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172665 (owner: Awight) [03:34:53] (CR) Awight: "recheck" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173662 (owner: Awight) [03:37:33] awight: should we care about removing useless params in the query to load a testing banner (bannerController.js, loadTestingBanner()) ? [03:37:48] like what? [03:37:53] oh [03:38:01] bannerPageQuery = { [03:38:01] title: 'Special:BannerLoader', [03:38:01] banner: bannerName, [03:38:01] campaign: campaign, [03:38:01] uselang: mw.config.get( 'wgUserLanguage' ), [03:38:02] I don't think it matters [03:38:03] db: mw.config.get( 'wgDBname' ), [03:38:05] project: mw.config.get( 'wgNoticeProject' ), [03:38:07] country: mw.centralNotice.data.country, [03:38:09] device: mw.centralNotice.data.device, [03:38:11] debug: mw.centralNotice.data.getVars.debug [03:38:14] }; [03:38:20] they're included for analytics [03:38:24] I just thought it might put a dent in our imploding of the cache, but I guess not much [03:38:36] But... analytics wants to know about testing views? [03:38:39] ohh good point, yes we should remove them [03:38:49] ok reading your question now :) [03:38:54] for testing, it doesn't matter [03:39:07] but for the real thing, yeah we should only send the necessary params, cos: cache [03:39:17] Yeah that's clear [03:39:35] testing doesn't happen often enuf to affect the cache, afaict [03:40:25] K I'm gonna still remove 'em for testing too because pine-scented floor bleach [03:40:31] sure! [03:40:41] I'm just getting pummeled by qunit btw [03:40:43] argh [03:40:48] Hmmm :( [03:40:52] sorry to hear that [03:40:57] don't mind my occasional yelp [03:41:27] I think the GeoIP ajax call is still being issued, but only on the production CI server [03:41:34] cannot reproduce it locally [03:41:45] hmmmm [03:42:07] on real production it gets injected via http cookie setting [03:42:38] could synthesize the geoip cookie in the test setup, no? [03:44:32] oooh I see my typo, now. [03:44:52] (PS2) Awight: Implement banner= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173662 [03:47:20] Why is wgDBname ever sent by bannerController to get the banner? [03:47:20] ka-ching! [03:47:26] mmm [03:47:51] because the request is from a dbname-branded bits.wmo URL, to meta, which doesn't know what project u were on [03:48:03] but there is some weird duplication between project and dbname. [03:48:15] please do clean that up... later :p [03:48:47] there's a reason we left it... escaping me right now, but I think there's some server-side code that is written for one, and some written for the other param. [03:49:29] (PS2) Awight: Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 [03:50:03] (CR) jenkins-bot: [V: -1] Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [03:50:08] (PS3) Awight: Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 [03:50:39] (CR) jenkins-bot: [V: -1] Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [03:50:45] (PS10) Awight: WIP QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [03:51:55] (CR) jenkins-bot: [V: -1] WIP QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [03:52:40] (PS11) Awight: WIP QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [03:53:11] well has to be cleaned to do away with the cache explosion [03:53:13] AndyRussG: ok this new head is the best we have for qunit testing the new code ^^ [03:53:30] 173249? K got it! [03:53:41] AndyRussG: it's harmless for now, afaik, cos dbname and project/language are 1-1 [03:53:51] (CR) jenkins-bot: [V: -1] WIP QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [03:53:53] yep, 7372a3abfdf39ed4 [03:54:03] It _does_ know what project ur on 'cause it gets project in there too [03:54:12] I know... [03:54:17] but it won't get project now, just the banner name, no? [03:54:50] We need to pass country and language because the banner actually will render differently on those [03:55:05] I think everything else can be omitted [03:55:40] M... we should check with Ellery maybe, before eliminating the extra params [03:56:06] currently, that's the only data we'll have to verify that our new allocations match the expectations [03:56:09] :( [03:56:33] No. [03:56:36] sorry [03:56:43] Only RecordImpression needs those params [03:57:10] And, we should really be telling Varnish to serve '' without hitting PHP. later [03:57:19] >_< [03:57:34] Hmm? telling varnish to serve '' ? [03:57:52] I'll document removed/added params in the commit message [03:57:54] Currently, we hit the PHP implementation of Special:RecordImpression, which returns zero bytes [03:58:03] sort of a despicable waste [03:58:04] Yeah I was thinking about banner rendering differences... [03:58:17] Aaaah right got it [03:59:51] Speaking of low-hanging fruit, anytime we get bored there's also the lack of indexes on the cn_assignments table... [04:00:51] oof [04:00:51] yeah [04:01:21] Which affects actual code paths. [04:01:31] I'll make a card for that [04:01:49] (also made one for the Varnish RecordImpression thing, just now) [04:02:28] How does that affect code paths? [04:03:10] Don't we query cn_assignments for every banner request? [04:03:26] Yes [04:03:33] yeah getCampaignBanners [04:03:36] eughh [04:03:38] But the code shouldn't change when we add indexes [04:03:40] Just get faster [04:04:12] yep! I meant, it's not just used in the admin UI [04:04:17] Ah yes [04:04:30] It's all, MySQL doing a bunch of internal greps right now, on the assumption that there would never be more than 10 campaigns [04:04:41] yes. row scan hell [04:05:13] We probably scan the historical stuff which is already filtered out. I don't have the heart to look :) [04:08:10] What about all these params and the unreviewed morass of banner JS code? So you're saying country and language have to remain on the request to banner loader? [04:08:47] Do banners ever look at device, and if so, where exactly do they git it from? [04:08:57] oooh I hope not [04:09:48] ya know... only language is necessary [04:10:14] I just realized, if banner code is peeking at any other environment, it's doing so from javascript which does not vary on anything before it is served. [04:10:48] oof. campaign name is also needed [04:11:02] I'm reading special/SpecialBannerLoader.php as it calls BannerRenderer [04:11:36] banners have this stupid legacy thing where they substitute {{{campaign}}} as part of a top-level CSS class. [04:11:49] <_< [04:11:49] Aaaah OK [04:11:50] >_> [04:11:55] I'm sure there's a reason for it ;) [04:12:12] Happily, that won't explode cache [04:12:20] yeah [04:12:27] Really just by getting rid of slots we're doing a lot [04:12:44] slots & country [04:12:46] Eventually should be testing the on-wiki JS uf course [04:12:59] * awight sharpens axe [04:13:18] I am pretty sure I heard of some community banner varying by country [04:13:42] I think fundraising banners do that--but only *after* they're loaded [04:13:50] But I don't know exactly where they're pulling the info from. If it's from some JS variable that's already in there due to RL or some other standard always-on mechanism, that's OK [04:13:58] I hadn't figured that out until... a few seconds ago when u made me talk it out [04:14:16] there's no such variable in the response... [04:14:31] The doozies would be.... something that is added server-side when the banner is rendered [04:14:46] we don't have that [04:14:58] and if somehow the banner JS were to have access to the params that were used on the request to fetch it, which I think it doesn't [04:15:04] it can't [04:15:17] K yeah I think that's the case for the latter [04:15:28] sorry, what [04:15:53] I mean, I think you're right, the banner JS can't get to the params of the request used to fetch it [04:16:04] luckily! [04:16:14] But regarding the former doozie, i.e. something added server-side, where is {{{campaign}}} getting there from? [04:17:08] AndyRussG: peek at BannerRenderer::ctor [04:17:50] whew, that's a rabbithole [04:17:53] K [04:18:10] but I'm still feeling unreasonably confident that we only need (language, campaign) [04:18:16] newly confident :) [04:21:19] Hmmm sounds good [04:21:34] (still let's aim for the middle ground betwix fear and confidence) [04:33:33] (CR) Ejegg: [C: 2] Basic QUnit tests [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172665 (owner: Awight) [04:33:44] ! [04:33:58] whoa.... [04:34:30] you bats. [04:34:36] philae lander back from hibernation! [04:34:44] reboot twice! [04:35:08] hehe I totally read that article thinking I would learn something interesting about robust software design. [04:35:16] "reboot again" was a pretty good LOL [04:36:20] * AndyRussG scratches head about inadvertent use of obscure references [04:37:09] Or did you mean reboot twice? [04:37:51] it was just a great punchline, if your software is crappy and it really has to work... make it so you can reboot [04:39:41] ah cool [04:59:58] AndyRussG: I'm getting some "allocation": NaN, fyi [05:00:21] probably bad fixture data, ignore me 4 a minute :) [05:00:53] Ah hmm! Could be a bug, lemee know if you find it relevant and have data :) [05:03:04] bad fixtures! [05:03:36] Hmmm OK--something that can't ever exist on the system then= [05:03:36] ? [05:03:52] yeah it would be garbage into setChoiceData [05:04:00] Ah hmmm [05:04:18] Mmm one thing is that it's assuming things are the correct data type [05:04:25] as sent in via json [05:05:15] If u want to take a quick look at how the provider is spitting it out you can play w/ the API, i.e. api.php?action=centralnoticebannerchoicedata&project=subscribing&language=fr&status=loggedin and the like [05:05:19] I was missing some of the campaign attributes. IMO it's not worthwhile to bake in distrust of the resource loader data module [05:05:26] awesome [05:05:42] K agreed [05:06:03] I mean, the main source of possible confusion is when we assume something's coming in as a number not a string [05:06:50] * awight emits squeaks [05:15:10] I wonder... if we could replicate meta's CN tables and Mediawiki: namespace on a test instance... [05:15:23] we could at least fiddle around with real banners and campaigns in a safe environ [05:15:24] we should. [05:16:14] I wonder... would that be hard? [05:16:44] I should have filed that request weeks ago for replicated CN tables on labs... [05:41:58] (CR) Ejegg: [C: 2] Implement banner= override test (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173662 (owner: Awight) [05:43:10] (CR) Awight: Implement banner= override test (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173662 (owner: Awight) [05:50:38] awight: should we continue to use $wgCentralBannerDispatcher and assume it'll point to Special:BannerRandom? [05:50:48] Or just hardcode Special:LoadBanner? [05:51:22] hrm [05:51:26] Hmmm I think I'll stick w/ BannerRandom and add in a TODO [05:51:43] less moving parts = more likelyhood of getting it right [05:51:45] that works [05:51:50] :) [05:51:58] a bit sleazy but I like it :) [05:52:37] We could change $wgCentralBannerDispatcher to point to Special:SleazePlease [05:53:58] ejegg's all code-reviewing on a 16-baud modem in a snowstorm that can't handle IRC and ssh at the same time--he's missing the party! [05:54:53] I almost emailed a poke about that, but it felt too hypocritical :D [05:55:15] I figure he's not long for this day, anyway [05:55:32] Mmm the healthy option [05:55:42] the only real rule around here is, no deploying w/o being in IRC [05:55:54] I did that once... [05:56:07] ahh hmmmm [05:57:59] Didja see this? [05:57:59] // If we have a logged in user; do not cache (default for special pages) [05:57:59] // lest we capture a set-cookie header. Otherwise cache so we don't have [05:57:59] // too big of a DDoS hole. [05:58:13] From SpecialBannerRandom L41 [05:58:34] Capture... set-cookie... processing [05:58:52] right [05:59:19] I wonder if we can just clear response cookies instead? [05:59:47] Don't we want to cache a bit, even for everyone? [05:59:51] I guess it's a card [06:00:33] Yeah we sure do [06:00:43] Don't know if there's some reason we can't control the set-cookie? [06:09:02] Blarg why can't I find where to add a new card not in the current sprint? I must be dumb, or spoiled by the slick CN admin UI... [06:11:51] baahaha [06:11:56] I think it's the default [06:12:05] there's this stupid button at the bottom [06:12:10] bottom left [06:12:12] it's well disguised [06:12:54] oh yeah, cryptic "Add card"! [06:13:30] ah they did fix the icon. It used to be this red and white rectangle... [06:13:50] universal language for "ugly css version of an index card with a colored post-it on one side" [06:14:20] Hmm sounds fitting, actually [06:15:23] I'm especially bitter, last night I tried to create four cards in four different tabs [06:15:34] There was session spillover like hell [06:15:45] ufff [06:15:48] and I deleted 2 (or 3?) while I was writing them, by simply hitting [06:15:52] unrecoverable [06:16:09] I'm a bit -happy due to vi [06:16:25] oh yeah that esc can really get you [06:17:29] I think I have useful qunit allocations tests now... [06:17:39] woo! \o/ [06:18:02] just debugging the first mismatch to see who's redhanding the monkey wrench [06:20:09] I guess it's a good thing we're adding tests... [06:20:20] ok it's test fail again :) [06:28:50] passing! [06:30:21] cool! [06:30:25] (PS12) Awight: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [06:31:02] (PS13) Awight: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [06:31:04] (PS4) Awight: Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 [06:32:14] (CR) jenkins-bot: [V: -1] QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [06:32:15] the branch head is the random= test now, but you can just rebase on top of https://gerrit.wikimedia.org/r/173249 still [06:32:17] (CR) jenkins-bot: [V: -1] Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [06:32:39] Hmmm [06:32:40] K [06:33:43] I did that cos the allocations tests pass, so you can stabilize that feature first, without worrying about random= [06:33:56] Ah OK [06:34:17] you could also rebase on top of the random= patch, if you want to live on the bloody edge [06:34:29] yeah that sounds good [06:34:43] so no bugs in the feature itself so far I guess? [06:34:53] nope! [06:35:00] weee! [06:35:07] K I'll work hard to get a few in there [06:37:04] It might make sense to merge your WIP bannercontroller.lib and the qunit tests, so we have a known good checkpoint... [06:37:12] up to you, of course! [06:37:50] Close to having it actually work but maybe also lemme know what's best on your end? [06:38:45] no preference. I've never worked like this before, with different people on tests + feature [06:39:10] I'm sort of baffled, and will ask QA gurus for advice tomorrow [06:39:27] hmmm [06:39:41] I was gonna say nothing's blown up yet, but that'd be slighly false [06:40:00] I want the lights to go meaningfully green for you as you work, but that means you have to stay rebased on my work branch. It's madness [06:40:17] Mmm I don't mind a rebase here and there [06:40:59] it seems intrusive... [06:41:08] OK i need to look like I'm taking my trip seriously :) [06:41:42] thanks! [06:42:21] 3rd and goal! [06:53:13] (CR) AndyRussG: Implement random= override test (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [07:12:23] (CR) Awight: Implement random= override test (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [07:14:29] I mean, don't re-calculate allocations, you'll get a stable order in possibleBanners [07:15:53] but there's no harm in having both tests... [07:16:20] I do think they're sensitive to different issues [07:17:31] Hmmm [07:17:32] OK [07:18:29] I guess it's just a silly desire for certainty... [07:18:48] that's a good point. false negative is not really ok [07:19:19] well, it could start a world war [07:19:22] Or avoid one [07:19:28] MTBF :) [07:19:31] no batteries included [07:19:46] we'll include a reboot button [07:19:49] that presses itself [07:20:13] btw I am listening to an East Coast station (WFMU) they are sounding quite sleepy [07:20:14] heheh after 100 million years it'll achieve consciousness [07:20:34] in that long we can reboot ourselves [07:28:58] (PS5) Awight: Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 [07:30:08] (CR) jenkins-bot: [V: -1] Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [09:53:41] (PS1) Awight: Schema migration adds the contribution_source table [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/173768 [13:50:50] (PS9) AndyRussG: WIP Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 [14:42:38] (PS10) AndyRussG: WIP Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 [14:59:23] (PS11) AndyRussG: WIP Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 [15:04:05] (CR) AndyRussG: "Appears to work!!" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 (owner: AndyRussG) [15:35:58] (PS12) AndyRussG: Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 [15:50:14] (PS13) AndyRussG: Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 [15:50:29] (CR) AndyRussG: "Rebase!" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 (owner: AndyRussG) [15:51:33] (PS14) AndyRussG: Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 [16:14:07] awight_foot: hey.. seems to be working finally :) also, snow! [16:23:23] AndyRussG: looking forward to reading + testing! [16:23:39] AndyRussG: what do you think about another noop deploy? [16:24:09] Hmmmm 8p [16:24:23] The global still protects server choice, and we could enable for test wiki only [16:24:26] ? [16:24:50] I dunno, I'm still hesitant unless real browser tests are working... [16:25:00] That said I do think the whole thing is pretty robust [16:25:45] But yeah my vote is for waiting a bit still, I think... :) [16:25:48] You can run the browser tests locally, following the README [16:26:20] Yeah! Just looking into all that... [16:26:46] I was gonna start with the QUnit ones that are already merged... [16:26:46] Ok, a bit would be Jan of course... [16:27:11] A couple hours? [16:27:39] Deploy before K4 arrives? [16:27:49] Haha [16:28:04] Seriously tho I see what you're saying... [16:28:16] Yes please wait until I have my popcorn, to deploy [16:29:07] K 1 hour to peruse the tests? [16:29:07] Having the code and tests in place should make code hibernation bearable, if we must [16:29:24] It won't die of isolation, at least [16:29:38] Humm [16:29:49] (Abandoned) Hashar: Jenkins job validation (DO NOT SUBMIT) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/46700 (owner: Hashar) [16:30:12] Are there deploy windows today? [16:31:46] Doesn't look tooo full [16:31:50] No windows yet. [16:32:20] I guess one can't just... "make" a spot? [16:33:08] as in add a row? [16:33:29] tomorrow looks busier [16:34:01] Yes, add rows! [16:35:50] K... for when? [16:41:30] Maybe 11-13 and 14-16:00 PST? [16:41:46] Giving us space for an optional noop deploy [16:42:51] Hmm... Won't the no-op-ness of it be just dependent on the config variables? We could just grab 14-16 PST in that case? [16:43:10] Though the other option is fine that's needed [16:47:55] awight: How about 12-13 PST for a deploy to test, meta and mediawiki, and 14-16 for a full rollout (with the config var still set to false, tho) ? [16:48:46] Sounds good [16:49:04] K :) here goes [16:49:16] Is that still the status of 1.25wmf8? [16:49:32] Huh? [16:50:21] I see a wmf8 train on Wednesday evening [16:54:41] Hi K4-713! [16:54:56] Hey AndyRussG! What's up? [16:56:34] Hey... well... we have a basically the switch to choosing banners on the client, frameworks for tests set up, just a few QUnit and browser tests not finalized [16:56:48] Ooooo. [16:57:11] Any deploys required? [16:57:31] * K4-713 waves at ejegg [16:57:42] * AndyRussG also sez: hi ejegg [16:58:08] awight (who said he'd be around today, was just on IRC but left a second ago) has suggested some no-op deploys to start [16:58:19] We still have the config variable that keeps the whole thing turned off [16:58:23] Heh. Okay. [16:58:55] I've got a checkin with Megan in a minute, and then... lots of other people. [16:58:58] Hi K4-713 [16:59:03] Yo. [16:59:04] Hi AndyRussG [16:59:11] Hey! [16:59:29] So we might deploy first to testing, meta and mediawiki around 12 PST, then everywhere in another slot from 14-16 PST [16:59:37] extremely useful comments on the JS version of that allocation calculator, AndyRussG [16:59:52] AndyRussG: Groovy. [16:59:54] Ah thanks ejegg [17:00:16] ejegg: Nice work with those tests! [17:01:28] I'm pretty happy that those exist. [17:02:01] Oh hey: AndyRussG, ejegg: Did you book travel stuff yet? [17:02:28] yeah! Apparently the client-side allocation code works with the test fixtures, as reported by awight, though that's not fully merged on git yet [17:02:29] If not, we should take care of that today. [17:02:40] Jeff_Green: You too. [17:02:41] K4-713: no haven't booked yet... [17:02:54] Dang. I thought that might happen. [17:03:24] Mostly because neither me nor my boss have done this before. :/ [17:03:34] Ah OK [17:03:43] yeah, I got my ticket [17:03:47] Woot. [17:03:54] ejegg: \o/ [17:03:54] and I'll be staying with my sister again [17:04:00] ejegg: Did you get it yourself, or did that come through us? [17:04:13] I wasn't sure how it had worked, other times either I've gotten messages from the travel folks or been cc'd on a message from a manager to the travel folks [17:04:22] ohai awight. [17:04:22] I got it myself, so I'll just roll it into the reimbursement form [17:04:35] AndyRussG: Yeah, that's totally my fault. [17:04:55] * awight looks panicked [17:04:59] K4-713: deploy, what deploy [17:05:20] Nobody said "deploy" with you here yet! Busted. :) [17:05:26] K4-713: I haven't. What are the dates, just the first week of December? [17:05:45] * awight beats self for squealing [17:05:58] Yeah. I'll send out an email thingy. [17:06:05] k.o. [17:06:46] K4-713: np, have had a lot on my mind w/ this CN change, also... :) [17:07:01] Understood! [17:07:25] K4-713: how're you BTW? :) [17:07:32] K4-713: you WF strange half-position today? [17:07:44] Blaaargh. Yes. [17:07:51] sorry [17:08:03] It's not completely unpleasant, but there's this huge hole in a part of my leg that normally moves. [17:08:17] ah. that was probably something you were previously using [17:08:17] So, trying to leave it alone is the challenge at this point. [17:08:21] Oh sorry to hear that [17:08:35] did you pack anything funny into the wound as a time capsule? [17:08:41] I should have. [17:08:43] I had room. [17:08:44] I guess no break dancing [17:08:50] ow! [17:09:02] (no pun intended) [17:09:06] haha [17:09:50] * AndyRussG tries to think of more puns, fails [17:09:53] ejegg: K4-713: Jeff_Green: any opinions on https://gerrit.wikimedia.org/r/173768 ? [17:11:10] awight: ejegg: K4-713 sed "Groovy" about the idea of a 12 PST initial deploy to meta, mediawiki and testing and a 14-16 deploy elsewhere [17:11:26] I did. I did say that. [17:11:34] don't forget your meds [17:12:37] awight: your internet connection wherever you are is reliable enough for this? We're all first blizzard of the year up here... [17:13:05] hehe. well I'm impressed by the well-buried cables, then [17:13:12] yeah, I'm at the office [17:13:32] Ah! I thought u were travelling [17:13:38] almost! [17:13:43] Ah K [17:13:46] at the first sign of something going wrong :) [17:14:15] * AndyRussG watches sagging snow-laden wires outside home... [17:18:08] Jeff_Green: trying to figure out my schedule today--are you feeling the contribution_tracking fun? [17:18:47] sure [17:18:59] no ops mtg today so my day is pretty open [17:19:13] Jeff_Green: oooh boy ok then [17:19:20] called my bluff... [17:19:36] Jeff_Green: it's that SQL chunk above... https://gerrit.wikimedia.org/r/173768 [17:19:44] yeah, reviewing [17:19:46] ok [17:20:15] first step we should test it on dev_drupal [17:20:27] and hopefully actually dev_drupal this time :-( [17:20:27] yes! [17:20:33] ah jesus [17:20:35] right [17:20:37] good luck [17:20:38] awight: so, what kind of performance differences do you expect from breaking the new columns out into a different table? [17:20:39] sigh [17:20:45] ejegg: a bit crappier [17:21:05] ejegg: there's really no gain, except to give us a tiny bit of decoupling today [17:21:15] if something goes wrong, we just drop the triggers. [17:21:26] ah, ok [17:22:05] AndyRussG: heads-up https://gerrit.wikimedia.org/r/173768 -- is there any other config I should be preparing? [17:22:19] for some extremely annoying reason, I can't get the clientbannerchoice var set on testwiki [17:22:26] I'm just lacking the syntax skills, I guess [17:22:38] awight: so the table name change is permanent? [17:23:11] or... hm [17:23:22] Jeff_Green: it's just a new table, with a bad name [17:23:39] i ask b/c we have db permissions specific to that table [17:23:43] awight: re: config vars, yes there is a new one in the no-longer-wip choose banners on client patch [17:24:01] to support the fantastic SPOF from payments without opening the write access to the entire db [17:24:03] Jeff_Green: we'll stick with whatever name we use [17:24:07] awight: ejegg: https://gerrit.wikimedia.org/r/#/c/173220/ [17:24:25] Jeff_Green: oh right god. I think the trigger is executed with the privs of the user that created it, however [17:24:38] dunno [17:24:59] also what happens with contribution_tracking_owa_ref ? [17:25:06] we also have permissions specific to that table [17:25:11] AndyRussG: I think that's the var in the patch, no? [17:25:27] awight: which patch? maybe u pasted the wrong URL? [17:25:28] Jeff_Green: what in tarnation is that. Nothing changed with that. I think it's deprecated [17:25:37] i have no idea [17:25:41] AndyRussG: oh yep wrong URL [17:25:47] AndyRussG: https://gerrit.wikimedia.org/r/173849 [17:25:48] thx [17:25:56] nvm the schema change :) [17:25:56] likewise! [17:26:08] ejegg: I'll also add you on the deploy slots we're taking out? [17:27:26] yes please [17:27:30] K! [17:28:16] awight: I think that's it for config vars... $wgCentralNoticeApiUrl is not needed, $wgCentralNoticeChooseBannerOnClient defaults to false, $wgCentralNoticeBannerChoiceDataCacheExpiry defaults to 5 min, and $wgCentralDBname should be already set--I assume? [17:29:45] yep [17:30:42] (CR) Awight: [C: -1] "Typo, see the inline comment." (2 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 (owner: AndyRussG) [17:32:06] Jeff_Green: lmk if I can do anything [17:33:42] https://wikitech.wikimedia.org/wiki/Deployments reserved [17:33:50] great! [17:34:21] awight: apparently I can't grant access to the new table before it exists [17:34:36] so I guess we do the step of creating the table, then grants, then prosper [17:34:45] that works! [17:38:21] ok, starting on lutetium-dev_drupal [17:39:17] awight: regarding where u said, "If we're not using it, that should be a second patch." (bannerController.js), you noticed that what we're not using it for yet is the previously-existing get banner for testing, right? We are using the new config var to get the banners chosen on the client, tho, line 184. (Apologies if you did notice...) [17:39:33] no i missed that [17:39:41] Ah OK [17:39:51] I see, thx! [17:39:53] Yeah I wanted to just leave existing working stuff alone as much as possible [17:40:03] np, likewise [17:42:03] (PS15) AndyRussG: Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 [17:42:09] awight: -- Backfill existing rows. started [17:43:23] Jeff_Green: elapsed time on that would be of interest [17:44:07] (CR) AndyRussG: Choose banner on client (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 (owner: AndyRussG) [17:44:29] (CR) Awight: Choose banner on client (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 (owner: AndyRussG) [17:45:06] awight,ok we'll see [17:45:42] AndyRussG: I'm thinking, the biggest risk here is that the choice data will be cached in a way we weren't expecting. [17:47:17] awight: we could try to get some cache-expert eyes on the patch, like maybe Roan or Krinkle, no? [17:47:31] Mmm aybe [17:47:34] worth asking! [17:47:51] They did give a thumbs-up for the design in principle [17:51:33] If there's a bug in the RL caching, we could get stuck with unchanging allocations forever... [17:51:42] just an observation :) [17:52:09] the wmf8 deployment will probably shake that out [17:52:47] AndyRussG: one more thing--can you add a CN version bump? [17:52:55] It'll be nice to have that visibility from Special:Version [17:53:23] awight: re: version, u bet [17:53:24] and += authors :p [17:53:36] I'm pretty sure the RL stuff doesn't get stale like that [17:54:24] We're probably good. I'm going through the scariest failures... But recovery is fine, we just hit the off switch and wait 15 min [17:55:37] (CR) Awight: [C: 2] ""It can't sink" ;)" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 (owner: AndyRussG) [17:56:13] Ah OK [17:56:14] (Merged) jenkins-bot: Choose banner on client [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173220 (owner: AndyRussG) [17:56:17] Woo! [17:56:40] I'll still ask in operations if anyone wants to take a peek, yea? [17:56:53] (PS14) Awight: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [17:57:04] (PS6) Awight: Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 [17:57:08] AndyRussG: yes please [17:57:26] (CR) jenkins-bot: [V: -1] QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [17:57:38] (CR) jenkins-bot: [V: -1] Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [17:59:31] (PS15) Awight: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [18:00:04] (CR) jenkins-bot: [V: -1] QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [18:09:42] I'm also gonna shout out on the mobile channel.... [18:09:54] K4|meetings: a reminder that today is the day GC is shutting down SSL in case you want to watch for anything [18:10:48] That's today? [18:10:50] Cool. [18:10:53] :/ [18:10:59] AndyRussG: oh just did! [18:11:31] right! I see :) [18:11:33] AndyRussG: actually, I shouted at jdlrobson and he disappeared. it's worth another shout. [18:11:44] awight first query 14:30 [18:12:50] Ah speaking of past and potential visitors to Peru [18:13:52] youch [18:17:46] It works on my desktop browsers with useformat=mobile enabled [18:17:54] FF and chrome at least [18:18:15] Lemme see if my kids' tablet can connect to my local install... [18:18:41] awight: the trigger syntax isn't quite right [18:21:52] Jeff_Green: ok running locally [18:23:16] Jeff_Green: what error are you getting? [18:25:20] awight: oh,nm. I was missing the delimiter lines [18:25:26] whew! [18:26:26] ok triggers applied to dev_drupal; [18:26:37] Jeff_Green: alright, I'll insert and update... [18:26:40] ha, now I will end everything everywhere with a ; [18:26:56] (PS1) Ejegg: Show algorthm toggle on Special:BannerAllocation [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173867 [18:27:11] running final backfill query [18:27:45] Jeff_Green: :) memory like an elephant [18:28:12] Jeff_Green: ah, that backfill locks contribution_tracking [18:28:21] Let's omit that one on production [18:28:33] at least until I find a less locky way to do it [18:28:48] it's ok to have a few of these contribution_source rows be wrong. [18:30:33] Jeff_Green: something's wrong with the update trigger, seems to be updating the wrong row [18:30:53] yep [18:31:01] I see... [18:32:37] (PS2) Awight: Schema migration adds the contribution_source table [extensions/ContributionTracking] - https://gerrit.wikimedia.org/r/173768 [18:32:59] Jeff_Green: can you reload the triggers from PS2 ^ [18:33:26] Jeff_Green: this was the mistake, https://gerrit.wikimedia.org/r/#/c/173768/1..2/patches/patch-contribution_source_table.sql,unified [18:35:59] ya, sec [18:36:40] (PS16) Awight: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [18:37:11] (CR) jenkins-bot: [V: -1] QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [18:37:42] i hate gerrit [18:38:47] (PS17) Awight: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [18:39:31] (PS7) Awight: WIP Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 [18:39:47] AndyRussG: if you want to poke at https://gerrit.wikimedia.org/r/173249 ... [18:40:01] (CR) jenkins-bot: [V: -1] WIP Implement random= override test [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173663 (owner: Awight) [18:40:16] Jeff_Green: wasn't our plan to trick Jenkins and Gerrit into moving in together? ... [18:41:27] ok retriggered [18:41:36] awight: OK! [18:43:12] Jeff_Green: I think we're good to go [18:49:30] awight: ok, so some questions.... [18:49:39] AndyRussG: please take another look at the config change... [18:49:40] Jeff_Green: yes [18:49:49] we know we have a 15 minute query that will block replication, I think that's fine [18:49:55] k [18:50:15] and the new table plus backfill doesn't disturb anything else [18:50:25] but what about the triggers? when can we safely do those? [18:50:36] I think we can create those live. [18:50:50] But I would have the "drop trigger" statements at yr fingertips in another window [18:51:00] ha [18:51:03] I'll watch the payments error logs, cos that's the most important point of failure [18:51:10] alright [18:51:14] ready to start then? [18:51:15] (CR) Ejegg: [C: -1] "Great tests! Ajax mock return should be a promise though." (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [18:52:05] (CR) Awight: QUnit tests for client banner allocations (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [18:52:10] Jeff_Green: lemme sit on the logs [18:52:37] Jeff_Green: ok I'm ready [18:52:56] awight: isn't there a wiki project that isn't used somewhere that is served banners by Meta? I think this one https://aa.wikibooks.org/wiki/Main_Page? Might be one to activate too, no? [18:53:15] awight: isn't there a wiki project that isn't used somewhere that is served banners by Meta? I think this one https://aa.wikibooks.org/wiki/Main_Page? Might be one to activate too, no? [18:53:18] AndyRussG: sure [18:53:26] creating table [18:54:05] :) [18:54:14] grants done [18:54:30] starting initial backfill [18:54:50] woo fire in the hole! [18:55:44] still looks good [18:55:57] AndyRussG: ok, updated the patch [18:57:10] AndyRussG: yeah thanks for suggesting that, cross-wiki stuff is an important piece to debug [18:57:38] K np... Also looking at ejegg's patch for Special:Allocation [18:58:10] also works nice so far [19:00:37] ejegg: wait, I don't think we need the $.ajax to return a Promise, cos we've avoided the only code path that assumes that interface. [19:01:10] yeah, but you don't want the test to break because we add some other reasonable ajax call in init [19:01:33] awight: +1'd the config patch, I don't have +2 there... [19:01:58] ejegg: mmm. well it's supposed to return an jqXHR also, why bother mocking that? [19:02:15] AndyRussG: great--for some reason the tradition in that repo is to self-merge :-$ [19:02:30] iiinteresting [19:02:36] * K4-713 squints [19:02:54] In Mex the word for that is "usos y costumbres" [19:03:14] awight: it only returns that for sync calls, which I would want to break tests! [19:03:26] ejegg: good point! [19:04:13] oh wait [19:04:48] nope, i'm wrong. [19:05:11] jqXHR just implements the promise interface [19:06:37] (PS18) Awight: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 [19:06:48] ejegg: it cleans things up... still worthwhile [19:06:57] cool [19:07:05] assuming the dangling callback doesn't break qunit on the CI server :-( [19:07:32] Jeff_Green: no errors yet [19:08:47] good [19:10:41] K4-713: is this already on your radar for, things that are not actually an error? "STOMP transaction has no place to go for status failed" [19:11:02] I thought I patched that. Maybe it didn't get deployed. [19:11:21] diff master..deploy? [19:11:36] oof [19:11:41] And yes. That's annoying as hell. [19:11:57] Also we shouldn't be logging that garbage. [19:12:08] awight: first backfill is done, 19318811 rows, 4 warnings [19:12:22] ... [19:12:35] I'm just going to go back to reading email now. [19:12:43] K4-713: lots of stuff. git log origin/deployment..origin/master [19:12:51] Jeff_Green: woot! can u show warnings though [19:13:00] (CR) AndyRussG: [C: 2] "\o/" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173867 (owner: Ejegg) [19:13:32] (Merged) jenkins-bot: Show algorthm toggle on Special:BannerAllocation [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173867 (owner: Ejegg) [19:13:35] awight: too late, I already logged out of mysql [19:13:49] Jeff_Green: no prob, I'm not worried yet :) [19:13:50] i didn't want to leave the root prompt open [19:13:59] ok. ready for triggers? [19:13:59] ty AndyRussG [19:14:00] awight: Well, I guess we should do a payments deploy sometime then. [19:14:09] Jeff_Green: ready [19:14:10] Also, why is it that every time I leave, the velocity goes up? [19:14:16] -_- [19:14:19] K4-713: :p you've set us up for success [19:14:36] ccogdill: heads-up, we're doing something slightly risky on payments [19:14:41] I should leave more. Need more sample data. [19:14:45] K4-713: how does deploying payments & civi tomorrow sound? [19:14:49] ccogdill: it might freeze up for a second, we'll let you know [19:15:00] Tomorrow is good. [19:15:04] word [19:15:09] I don't think there's any rush on that. [19:15:13] triggers done [19:15:17] Other than "we're annoyed". [19:15:22] risky, you say? [19:15:42] Danger is my guinea pig's middle name. [19:15:45] ...now. [19:15:45] awight let me know if anything actually bad happens :p [19:15:51] i love it [19:16:03] Jeff_Green: I don't see new ids [19:17:00] Jeff_Green: can you look at full processlist [19:17:34] Jeff_Green: ok drop the triggers! [19:17:41] ccogdill: turbulence. [19:17:46] awight: dropped [19:17:49] thx [19:17:58] should I be watching a particular gateway? [19:18:05] Jeff_Green: ok c_t recovered [19:18:17] ccogdill: I think we made it without donors noticing [19:18:22] whew that was quick [19:18:27] Jeff_Green: so... I wonder [19:18:37] something was causing contribution_source to read lock [19:18:39] ccogdill: I think they're trying to blow up everything. [19:18:54] Happily, it won't be subtle. :) [19:18:56] happy monday! … [19:18:57] we're just placing suitcases around the feet of the bridge. nothing to see here, yet [19:20:23] Jeff_Green: yeah I don't get it. Can you red-phone DBAsen to look at the triggers? [19:20:27] No rush [19:20:41] * awight grimaces at "red-phone...no rush" [19:21:11] Yeah, isn't that regular-phone? [19:21:21] atgo: pizzzacat: I need early foods. Anyone want to leave the building? [19:21:38] Oh hey. pizzzacat. [19:21:39] i've got a meeting with K4-713 in 10 [19:21:39] K4-713: black-phone all your friends, there's a party! [19:21:43] k [19:21:48] atgo: can I get you foods? [19:21:50] awight: ok so what's our current state? [19:22:02] awight sure! [19:22:05] will we be able to backfill what we're not trigger-collecting now? [19:22:09] Jeff_Green: We could try enabling the triggers for another few seconds, to see if that was some db settling thing after the backfilling [19:22:13] Jeff_Green: yeah [19:22:20] ok. one moment [19:22:23] oh hey y'all [19:22:36] Jeff_Green: but I'd like to get springle or someone to give a 3rd opinion about the trigger sanity [19:22:41] pizzzacat: What up? [19:22:42] awight I'm not in need of foods quite yet [19:22:46] Jeff_Green: It sure looked like a deadlock. [19:22:58] atgo: preferences? Tava? [19:23:13] K4-713 hey! how are you? [19:23:24] K4-713! [19:23:28] awight: what happens if the trigger is bad? does it actually block payments? [19:23:33] garghbargle. Is how. [19:23:35] Jeff_Green: yep [19:23:54] cos there's an implicit transaction around the statement which causes the trigger to fire [19:23:56] But! I can sit up today. [19:24:08] Without, you know... hurting myself. [19:24:22] ok. can we pull down banners long enough to test? [19:24:29] it's the little things, K4-713 [19:24:33] It really is. [19:24:37] Jeff_Green: it was actually ok just a minute ago [19:24:45] Jeff_Green awight is what you're doing goign to shut down payments or just the banners? [19:24:49] We didn't give any statements long enough to time-out [19:24:56] atgo: probably no downtime [19:25:12] but if it fails badly, it will take down paymetns. [19:25:15] * K4-713 giggles at the "probably" [19:25:16] but Jeff_Green is asking about pulling down banners :) [19:25:22] K4-713 :-/ [19:25:38] the concern is that we lead people unknowningly into a payment transaction that will faceplant partway through [19:25:48] ok... they sent emails to israel today [19:25:50] taking down banners just reduces the number of people who notice [19:25:53] ok [19:26:01] yeah we don't want to take payments down [19:26:03] damn the spof. :-) [19:26:07] seeeriously [19:26:12] Nobody ever *wants* to. [19:26:20] ok. so shall I fire up the triggers and we can watch processlist? [19:26:22] Jeff_Green: you know what the statement timeout is? [19:26:23] awight: K4-713: ejegg I can confirm IRL that the banner changes don't break the mobile version of the site, at least in my local setup, on Chrome on Android [19:26:25] Well... I did once. [19:26:28] Want to, I mean. [19:26:33] Jeff_Green: sure, and I'll watch the autoincrement [19:26:33] awight: i don't [19:26:37] * AndyRussG waves at atgo [19:26:41] hiii!! [19:26:42] Jeff_Green: seems to be > 60s :) [19:26:42] awight: my guess is longer than reasonable web timeouts [19:26:56] (CR) Ejegg: [C: 2] "Awesome tests! Trivial todo: jsDump->dump before QUnit 2.0" (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [19:27:10] Jeff_Green: are we doing it? [19:27:39] (Merged) jenkins-bot: QUnit tests for client banner allocations [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [19:27:50] awight: gimme 1 min to fire off an unrelated email [19:27:56] k [19:30:01] ccogdill: Er: Is iDeal broken? [19:30:10] it’s been off forms for awhile [19:30:15] same with BPay and Yandex [19:30:18] :/ [19:30:21] there’s a card for it somewhere… [19:30:26] 'course there is. [19:30:28] yeah #2047 [19:30:30] :) [19:30:34] https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/2047 [19:30:40] ah. you beat me to it ccogdill! [19:30:45] Okay, well... check the fundraising email list. [19:30:46] awight: ejegg: also works on the built-in Android Web browser [19:30:47] well I didn’t provide the link - so thanks! [19:31:06] what fundraising email list...? [19:31:13] AndyRussG: nice! [19:31:14] * K4-713 eyebrows [19:31:23] also K4-713 dario's using the room so i'm just going to grab headphones and find a place [19:31:37] Oh wait, never mind. It's wikimedia-l. [19:31:41] Even better. [19:31:50] I didn’t see anything from wikimedia-l about ideal... [19:31:52] is this recent? [19:32:00] Like, two minutes ago or something, yes. [19:32:04] ohh nevermind :p [19:33:18] awight: ok, ready? [19:33:26] Jeff_Green: yep. [19:33:35] atgomez: There is a fundraising-l, though. [19:33:38] K4-713: i'm in the hangout [19:33:42] oh.. i should get on that [19:33:43] coming [19:34:11] triggers up [19:34:37] Jeff_Green: how does processlist look? IDs are incrementing [19:34:57] i've seen a couple related queries stick around for a sec [19:35:15] Jeff_Green: on contribution_* ? [19:35:17] nothing 'stuck' per se [19:35:28] yeah, sec,I'll try to capture one [19:35:36] yeah it looks healthy wrt IDs [19:35:53] But I'm concerned we just introduced a flashback trigger in the SPOF [19:36:07] the files are *in* the computer [19:37:10] I guess the #1 rule of what we just did is, nobody is allowed to query the master contribution_* tables [19:37:13] ugh [19:37:54] ooh, something is copying to a tmp table [19:38:21] nooo [19:38:32] that would be unrelated, but... heinous and punishable [19:38:39] civicrm yeah [19:39:07] I can get a userid if you want to go give someone the evil eye :-P [19:39:41] nah it's the software [19:39:50] yeah [19:39:56] Jeff_Green: I'm pretty anxious about what just happened. [19:39:56] shall we run the second backfill? [19:40:03] nah, I'm too scared. [19:40:07] ok [19:40:20] i'll try to rewrite it so it's safer to run [19:40:36] meanwhile, my concern is that we'll get another deadlock as soon as the traffic goes up. [19:40:57] ganglia has a ton of mysql metrics fwiw [19:41:04] Jeff_Green: u see any DBAs I can ping? I don't know who they are, aside from springle [19:41:21] springle == they [19:41:25] ooo [19:41:37] * awight kicks a plastic facade [19:41:49] where is all this fundraising money going... [19:42:01] so question [19:42:16] is it infeasible to update that table asynchronously? [19:42:25] rather than piling pain onto top of a SPOF? [19:42:38] Jeff_Green: that's a freaking great idea. [19:42:51] cron job running every 5 min or something? [19:43:23] lemme ask ewulczyn and the-wub how much lag they can tolerate in the banner, landing_page, and payment_method columns [19:43:26] ^^ [19:44:14] we'll need a last_updated timestamp of course, which that stupid legacy table is lacking. one more alter. [19:46:28] Jeff_Green: the mysql metrics look fine [19:46:45] awight: ya [19:46:47] according to my "ran my finger over the list" approach [19:46:52] right [19:47:16] it's hard to the trigger query competing with civicrm for pain inflicting [19:47:39] Yeah maybe I should join on the other 62 allowable tables [19:48:23] Jeff_Green: are you around for the next 1/2 hour? In case this ship sinks, I need to fill my belly [19:48:30] yes [19:48:47] if there's a deadlock... everything will catch on fire. Just um drop the triggers [19:48:48] I'm around for anouther ~2.5h [19:48:52] kthnx bye :) [19:48:52] ha ok [19:49:46] meganhernandez: We just made that change to improve analytics query performance... [19:49:51] ugh [19:49:56] timing! [19:51:45] Jeff_Green: replication can be restarted? donno. [19:52:09] oh, well, i didn't stop it [19:52:39] probably should have...but since we weren't altering existing tables I didn't [19:54:23] awight|fud: deploy coming up in 5min [19:54:41] ejegg: deploy soooon [19:56:10] cool, sounds good [19:59:11] ejegg: awight|fud: also smoke-tested IRL IE10 on Win7, changes don't break anything and work in both config settings :) [19:59:22] at least apparently! [20:01:42] ejegg: awight|fud looks pretty food-status-ed... I think we did decide to go ahead and deploy and I that I mentioned the deploy slot... [20:02:22] ok, want to do a screen share? [20:02:32] yeah that'd be fantastic :) [20:02:36] also, need a deploy branch prepped? [20:03:24] yeah [20:03:46] I could try but I'm sure you're better and faster at that... [20:05:14] I can take over [20:05:16] it's up to you [20:05:19] AndyRussG: ^^ [20:06:03] awight: ejegg whatever you guys prefer! :) [20:06:45] just looking over git log - seems like a huge number of commits between wmf_deploy and master [20:07:20] ejegg: something's up with that merge point, yeah. I did a diff last time and it looked much more sane. [20:08:37] hmmm [20:08:56] maybe we should make a separate deploy for each new commit (jk) [20:09:40] s/merge point/branch point/ [20:09:47] or hmm [20:09:48] anyway [20:11:54] K have we decided who'll do the actual deploy? [20:11:55] ejegg: AndyRussG: sorry, what is our status? ejegg is preparing the deploy branch and AndyRussG is deploying? WMF! [20:11:59] jinx... [20:12:03] no [20:12:16] we're just about to flip a coin or something [20:12:27] Tails! [20:12:30] ...wait. [20:12:34] I'm not in this. [20:12:46] ejegg: btw we're talking about deploying wmf8 only, at first [20:13:00] K4-713: unless you'd like deploy... [20:13:08] and banner choice will be enabled only on testwiki [20:13:20] and aa wikibooks [20:13:27] I'm still on painkillers that clearly state I shouldn't operate heavy machinery. [20:13:28] yes, thx [20:13:37] I guess I don't know how much the cluster weighs. [20:13:41] :D [20:13:50] ok, cool. Just trying to get the merge right [20:13:58] K4-713: you should totally stay tuned for the fireworks though, they will look awesome! [20:14:05] Oh, I know it. [20:14:09] * AndyRussG hides [20:14:15] AndyRussG: I think you won the deploy seat :) [20:14:23] awight: I don't have rights [20:14:24] I can do the running around headless and screaming part. [20:14:28] AndyRussG: aooof ok [20:15:04] ejegg: all yours :) [20:15:48] ejegg: there's also a config change to deploy, https://gerrit.wikimedia.org/r/#/c/173849/ [20:15:59] those are self-merged just before you deploy. [20:17:00] OK [20:17:09] (PS1) Ejegg: Merge branch 'master' into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173907 [20:17:54] ejegg: you can say no ;) [20:18:10] I think I got this... [20:18:27] Let's screen share in a minute though! [20:18:35] yeah! [20:19:36] hey awight - is whatever you’re working on with payments impacting ecom again? I’m not able to get email results [20:19:56] ccogdill: checking... [20:20:02] I don’t need the results today (already got what was necessary) but wanted to make sure this is expected behavior [20:20:10] ccogdill: it should be fine [20:20:13] Shouldn't be. [20:20:18] ha [20:20:21] hm [20:20:23] AndyRussG: does that merge look good to you? [20:20:25] I mean: Not getting results. Is bad. [20:20:51] * awight wheels grandma around the corner :p [20:20:55] yeah it’s weird. I haven’t changed my query at all, and was using it earlier today. now it doesn’t return any results [20:21:04] Nothing at all? [20:21:09] Not even the old ones? [20:21:19] ccogdill: can you paste the query in the private channel (or here)? [20:21:27] yeah I’ll paste it here [20:21:38] ejegg: I think so... I was surprised not to see some patches, but then I remembered this is only in addition to the merge done last week... [20:21:54] so it looks like I can see results from really recent emails, but tested a couple from 10/17 and 11/13 and can’t see results for those. [20:22:05] hhhhhuh. [20:22:14] ccogdill: it would definitely not be related, but I can help debug. [20:22:25] here it is: /srv/br$ ./ecom -s 20140914000000 -e 201411180000000 --substring=sp4399 -g b -- raw [20:22:32] fff [20:22:47] ejegg: testing locally... [20:22:48] ccogdill: can you get the sql output? [20:23:18] I can't wait until ecom is something that nobody remembers. [20:23:29] awight this is all that gets returned : d/bi confidence test: [20:23:30] http://www.thumbtack.com/labs/abba/#&abba%3AintervalConfidenceLevel=0.95&abba%3AuseMultipleTestCorrection=true [20:23:31] clicks/bi confidence test: [20:23:32] http://www.thumbtack.com/labs/abba/#&abba%3AintervalConfidenceLevel=0.95&abba%3AuseMultipleTestCorrection=true [20:23:37] ejegg: works locally in both configurations [20:23:50] if you try ./ecom -s 20140914000000 -e 201411180000000 --substring=sp4740 -g b -- raw you’ll see what I’m supposed to get b ack [20:24:04] ccogdill: btw "-- raw" is definitely not a thing, it should be "--raw" or just leave it off [20:24:19] ccogdill: can you add --sqlonly to your command-line [20:24:25] AndyRussG: thanks! [20:24:47] (CR) Ejegg: [C: 2] Merge branch 'master' into wmf_deploy [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/173907 (owner: Ejegg) [20:24:50] that’s just what Peter gave me :p do I replace --sqlonly with —raw? [20:24:51] awight [20:25:02] ccogdill: yeah nvm about -- raw I don't care [20:25:16] just add the --sqlonly [20:25:35] okay [20:26:06] no difference awight [20:26:11] grr [20:27:04] I won’t need this to work until tomorrow so I don’t want to make you drop what you’re doing to look at this… [20:27:17] ccogdill: it didn't output SQL? [20:27:36] just the same thing again: d/bi confidence test: [20:27:37] http://www.thumbtack.com/labs/abba/#&abba%3AintervalConfidenceLevel=0.95&abba%3AuseMultipleTestCorrection=true [20:27:38] clicks/bi confidence test: [20:27:38] http://www.thumbtack.com/labs/abba/#&abba%3AintervalConfidenceLevel=0.95&abba%3AuseMultipleTestCorrection=true [20:27:48] it just gave me the sql. [20:27:53] ./ecom -s 20140914000000 -e 201411180000000 --substring=sp4740 -g b --sqlonly [20:27:54] oh I removed the raw [20:27:56] yeah [20:28:07] yeah I guess the "-- raw" is breaking things. looks like copy pasta [20:28:20] ccogdill: plus, I get actual results [20:28:23] but I don’t see email results here [20:28:33] AndyRussG: re: cache-expert eyes [20:28:37] ok no sorry, I'm running the "works" query [20:28:51] config: https://gerrit.wikimedia.org/r/#/c/173849/ [20:28:55] what’s that? :) [20:29:17] Hey Krinkle [20:30:05] ccogdill: fyi, ./ecom -s 20140914000000 -e 201411180000000 --substring=sp4399 -g b --sqlonly [20:30:44] so you’re doing that outside of the /srv/br folder? [20:31:12] no, inside of it [20:31:21] I’m getting no such file or directory [20:31:21] I'm just mentioning that it does dump the SQL [20:31:25] wat [20:31:28] cd /srv/br [20:32:25] yeah… I don’t know what I’m doing wrong :( [20:39:16] (CR) Krinkle: bannerChoiceData and bannerController.lib modules (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [20:50:31] (CR) Krinkle: "fixme, see inline." (8 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [20:52:22] awight: ejegg: cool! [20:54:36] (CR) Krinkle: bannerChoiceData and bannerController.lib modules (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [20:55:26] (PS1) Awight: bump CN version and authors [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173922 [20:57:13] (CR) AndyRussG: [C: 2] bump CN version and authors [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173922 (owner: Awight) [20:57:16] (CR) Awight: "recheck" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173249 (owner: Awight) [20:57:32] awight: thx for doing the version bump, sorry it slipped my mind.. [20:57:39] me too! [20:57:49] (Merged) jenkins-bot: bump CN version and authors [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173922 (owner: Awight) [21:01:05] Oooh, we moved standup. [21:01:34] where did we move it to? [21:01:40] Nowish [21:01:56] atgo: I may have to bounce abruptly if my phone rings. [21:12:30] sorry for arriving late and offtopic-ing so much! [21:16:45] AndyRussG: is it clear to you how to build getModifiedTime? It seems tricky... [21:17:07] awight: I think I saw an example there in one of the core RL classess.. [21:17:34] ResourceLoaderModule at least has a good docstring [21:17:57] I'm gonna try to deploy to betawiki, unless you have other things I can help with. [21:18:47] ccogdill: sorry to lose attention span, there! [21:19:05] ccogdill: Can you check that your time window and campaign name are correct? [21:19:18] no problem! [21:21:18] ccogdill: there's nothing in the database with banner like '%sp4399%' [21:21:33] yeah sorry awight, I did have to correct that. it’s 4739 [21:21:38] still not returning anything though [21:21:46] it just says “no such file or directory” [21:21:57] what does "pwd" give you [21:22:14] : /srv/br [21:22:16] also, there are no rows with banner like '%sp4739%' [21:22:24] ok, can you paste your commandline [21:22:53] : /ecom -s 20140914000000 -e 20141118000000 --substring=sp4739 -g b --raw [21:23:04] AndyRussG: Do we want the last modified time to be the last time anything changed in CN allocations? [21:23:24] I think I had too many 0’s in the -e date before so I changed that too, but neither 6 (current) nor 7 (what I sent before) seems to be working [21:23:46] ccogdill: "./ecom" [21:23:52] ejegg: hmmm do we have easy access to that? [21:24:10] The method should return the last mod time for a combo of language, skin, and debug mode flag, but doesn't say anything about varying with project or logged-in status [21:24:25] ccogdill: there's indeed nothing in the database for sp4379 [21:24:45] ah awight thanks, I think I missed that when I repasted your command earlier [21:24:55] ejegg: AndyRussG: it's gonna be difficult to get the last change [21:24:57] I got results this time - look a little different than they usually do but that’s fine [21:25:03] ccogdill: ok! [21:25:19] they probably look different cos you fixed the "-- raw" typo :) you can omit that [21:25:28] ah maybe [21:25:28] okay! [21:25:34] sorry for all the confusion, and thanks [21:25:40] no problem [21:26:01] oooh awight the difference is now the data is tab separated. whoa! awesome :) [21:26:09] awight: ejegg: well there is the logging table... [21:26:27] I [21:26:49] oh, but we also want to update last changed when we cross over a campaign start / end date [21:26:56] AndyRussG: I did a version of this algorithm earlier, it would be an annoying way to figure out the date [21:27:06] how about we just take the last */5 minute? [21:27:24] Or base it on the cache duration? [21:27:30] yeah [21:27:39] awight: ejegg: yeah sounds like a solid plan [21:30:54] well that was an embarassing code review! [21:30:56] * AndyRussG hides [21:31:43] AndyRussG: that was a very well-timed CR :) [21:31:53] also [21:32:12] FYI: group 1 Tuesday, 18 November 2014 All non-Wikipedia sites [21:32:13] (Wiktionary, Wikisource, Wikinews, Wikibooks, Wikiquote, Wikiversity, Wikivoyage, and a few other sites) [21:32:19] from https://www.mediawiki.org/wiki/MediaWiki_1.25/Roadmap [21:32:43] so we need to revert or accept deployment on the train [21:32:45] rollback or fix deadline [21:32:47] yeah [21:32:48] yep [21:32:55] K got it [21:37:57] actually it was not a well-timed. I should have asked last week :/ [21:39:39] awight: ejegg: so, remove also the memcached caching in the RL module? [21:40:07] AndyRussG: yes! [21:40:13] K [21:55:46] AndyRussG: ejegg: http://en.wikipedia.beta.wmflabs.org/wiki/Main_Page [21:56:00] it has a thing! [21:56:07] working in infrastructure - client mode [21:57:19] wait, I'm still seeing a Special:BannerRandom request [21:57:20] ejegg: awight! congrats!!! [21:57:30] It ain't there, it's Special:BannerLoader now [21:57:36] ejegg: could be cached [21:57:49] I'm seeing the BannerLoader request [21:58:00] AndyRussG: ejegg: once Andrew's next changes are merged to master, we can test on beta. [21:58:05] yep, cached [21:58:33] Ah of course the best thing is if there's no banner to show, often no extra request [21:58:52] Ah McCache burger [21:58:56] right on [21:59:42] There should be a banner--it's set to split allocations 33-33-33 [22:00:46] I got a banner, no fries [22:00:55] It says "two" [22:03:22] (PS1) AndyRussG: PLS DON'T MERGE multiple fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 [22:03:45] awight: ejegg: ^ addresses everything except the timestamp thingy [22:04:01] (CR) jenkins-bot: [V: -1] PLS DON'T MERGE multiple fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [22:04:03] almost [22:04:35] (CR) Awight: "+1" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [22:04:46] hey K4-713... all good with this? https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/2140 [22:04:55] looking... [22:05:00] AndyRussG: I'll fix the tests [22:05:15] awight: thx! [22:05:35] atgo: Oh, that thing. [22:05:39] Did they give a time? [22:05:45] they just said today [22:06:01] (PS1) Awight: remove deprecated global [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173983 [22:06:11] AndyRussG: just one line ^^ [22:06:23] Ah cool [22:06:32] K4-713: just forwarded you the email from them [22:06:42] * K4-713 wonders if they meant today UTC, or today anything else. [22:07:51] AndyRussG: good news is that the old and new js code are playing together nicely. Cached and fresh responses appear to behave the same. [22:07:55] (CR) Ejegg: "couple things you could delete" (2 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [22:09:12] ejegg: I can take the hot seat this time [22:09:20] unless you're enjoying the adrenaline :) [22:09:33] whew, i'll take you up on that [22:09:38] sure! [22:10:00] ejegg: yeah nothing like thinking you have to revert a deployment to get the humors flowing [22:10:25] (PS2) AndyRussG: PLS DON'T MERGE multiple fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 [22:10:56] (CR) jenkins-bot: [V: -1] PLS DON'T MERGE multiple fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [22:11:09] (CR) Awight: [C: 1] "deferring to PLS DON'T note" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [22:11:39] AndyRussG: want to squash that test fix into this commit? [22:11:55] Or we could merge and rebase upon... [22:12:06] it won't merge :) [22:12:13] ah it's backwards [22:12:18] I mean the other way round [22:12:19] right [22:12:27] (PS2) Awight: remove deprecated global [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173983 [22:12:41] oh i c, yeah eithe rway [22:12:55] K4-713: you out of popcorn, yet? [22:13:20] I'm on to the junior mints. [22:13:35] This is better than netflix. [22:13:44] more expensive though... [22:13:56] Not if you *are* netflix. [22:14:17] whoa [22:14:21] :) [22:14:31] K4-713 has become the OS [22:15:15] * K4-713 mutters something about the I/O tower [22:17:38] awight: ejegg: so for the getModifiedTime, we should quantize on 5-minute blocks? [22:17:52] yeah, sounds simplest [22:18:12] Works for me [22:18:40] yeah and I think they have to be absolute... so any two requests in a 5-minute period give the same result. Sounds like that's what u said. [22:21:12] ploof. that blizzard finally git him [22:21:18] oh no! [22:21:34] * awight considers pacing to the kitchen again [22:22:17] * K4-713 drops a junior mint between couch cushions [22:22:32] scared us for a minute, AndyRussG ! [22:22:41] * awight looks busy [22:22:52] K4-713: don't eat it!! [22:23:02] It was the suspense. [22:23:19] ejegg: awight: back [22:23:25] what a cheap laptop! The manufacturer said the battery should last several years [22:23:27] what was that, 2 hours? [22:23:36] heh [22:23:43] Oh well, live and learn, now I know to plug it in [22:23:48] We thought mothra got you. [22:23:56] and by that I mean, *I* thought. [22:24:32] * AndyRussG tries to think of a witty response that won't belie the horrible mothra-truth [22:25:22] flash challenge: a PHP expression for getting a quantized UNIX timestamp! Can rely on MW libraries [22:25:31] awight: ejegg: K4-713: ^ [22:25:39] AndyRussG: % ? [22:25:57] oooooooooooohh mothra [22:26:15] wfTimestamp( TS_MW ) % 500 maybe [22:26:47] nope other way around... [22:26:57] Call godzilla. [22:27:10] ...not related to the timestamp issue. [22:27:27] so rather the mothra issue? [22:27:28] $ts = wfTimestamp( TS_MW ); return $ts - ($ts % 500); [22:27:52] yep [22:28:26] Yay modulo. [22:28:38] That's my favorite operator, btw. [22:28:45] can even just floor( wfTimestamp() / 300 ) - looks like some modules use things like epoch + revision number [22:29:06] Oh there was some doc about hashMTime now that I remember seeing [22:29:09] but a real time is probably better practice [22:29:57] I thought hashMTime had to do with the actual file [22:29:59] * awight looks [22:30:57] ah, no it's if we implement a getModifiedHash() on our contents [22:31:00] future :) [22:31:36] There was some link between the two mentioned somewhere [22:31:56] if u implement getModifiedHash, you're supposed to use hashmtime. [22:32:08] includes/resourceloader/ResourceLoaderModule.php:439: * If your module provides a getModifiedHash() method, you'll need to call getHashMtime() [22:33:13] Ah OK [22:33:47] so $ts = wfTimestamp( TS_MW ); return $ts - ($ts % 500); ? [22:34:01] I liked ejegg's better, but ^^ should work [22:34:27] wait this'll cause cache runs [22:34:37] exactly every 5 minutes [22:34:41] We need to space those out [22:34:48] no I don't think we can space them out [22:34:55] or distribute them [22:35:21] I think this is how it's designed to work [22:35:37] there will only be one cache miss per 5 minutes [22:35:48] everyone else gets the cached version [22:36:42] awight: correct but all the cache misses will hit at exactly the same second [22:36:46] I mean will happen [22:36:52] Unless a miss can hit [22:37:06] that's how it would work if you updated a file though [22:37:15] so I assume it's designed for that? [22:38:15] Why don't we just add a random salt of 0-5 minutes? [22:38:24] No one will hate us for it, and they might love us [22:38:29] no we can't [22:38:35] each call in the 5 min needs to return the same [22:38:56] yeah scattering the lastModified time will make this object uncacheable [22:39:05] afai understand it [22:39:30] from the point of view of Varnish? But Varnish wouldn't know that we're not being deterministic [22:40:07] Krinkle: any input on this? ^^ [22:40:34] Being deterministic only matters if you care about it. It only gets called when Varnish calls it, and when that happens, it'll get a modified time somehwere between 0 and 10 minutes [22:40:43] I think file-backed RL modules have the behavior we've been talking about, where expiration of the object happens at a time. [22:40:50] Ah no I'm comletely wrong [22:41:01] I'd revise mine to 300 * floor( wfTimestamp() / 300 ) - looks like there is some code that compares modified times for multiple components. So, good to return a real, recent timestamp in case other dependencies come into play [22:42:15] : awight: ejegg: so for the getModifiedTime, we should quantize on 5-minute blocks? [22:42:18] : yeah and I think they have to be absolute... so any two requests in a 5-minute period give the same result. Sounds like that's what u said. [22:42:22] I don't understand these two lines [22:42:38] What do you mean by quantize in this context? [22:42:43] Krinkle: we want this custom ResourceLoaderModule subclass to expire every 5 minutes. [22:43:07] Why? Is there a random factor included? [22:43:09] but don't want cache runs exactly every 5 minutes, unless it's like, whatever, cache runs are fun [22:43:34] Why would you need to expire every 5 minutes? [22:43:37] Krinkle: it needs to expire frequently, because we're serving CentralNotice allocations data [22:43:55] Krinkle: it's a limited selection of banner choices to send to clients [22:43:55] ResourceLoader reavaluates module versions every 5 minutes, that is what the startup module does. [22:44:33] Unless the contents returned by getScript() change unconditionally every call (e.g. it contains a random subset or something) it should most likely not do any of that kind of logic with the timestamp and leave it to Resourceloader instead. [22:44:39] Krinkle: is there a way to make it just not use a version param when it fetches it? [22:44:53] No, that would not do what you want. [22:45:07] Krinkle: so we don't need to implement getModifiedTime ? [22:45:23] You do, the module is broken for all intends and purposes without that [22:45:40] Krinkle: folks will be changing allocation and expecting to see banners change quickly. But we can't just use the last banner / campaign edit date, because we want to expire when we cross a campaign start or end date too [22:45:55] ok. so what we're discussing is whether getModifiedTime should return the current time, rounded down to the last 5 minutes. [22:45:58] awight: So last time we spoke we architected how the new module would work (whether to serve all banners or not, how the caching works etc.) is this the implemetnation of that or is it something different? Assumign the same, did the approach change or not? [22:46:09] Krinkle: this is the same as we discussed [22:46:20] Because if it is, then the contents of the module is all relevant banners for that wiki/language/skin, right? And it picks client-side [22:46:26] Krinkle: what's your suggestion for what we return from getModifiedTime [22:46:35] so you wouldn't need to expire on any thing other than: banners or their config changed. [22:46:45] Krinkle: yes, and admins change the banners often. [22:46:55] also campaigns have expiry times [22:46:55] yes, people change gadgets all the time too. [22:47:07] and deploy updates to extensions and core. [22:47:17] But the timestamps are all accurate and finite there [22:47:19] Krinkle: that's a difficult calculation, it would be easier to expire every 5 min, until we have an algorithm in place to get the exact modified time. [22:47:19] so even if there are no changes made to the DB or by users, things have to change at certain times [22:47:32] No, never do that. That'll do no good. [22:48:03] Even if you don't have a way to implement a detection (e.g. aggregate revision timestamps and file em times), there is still a better way: version the hash of the script with ResourceLoade'rs hash method. [22:48:35] That's not great, and slightly less performant, but at leat it won't invalidate randomly and continuously for all users all wikis [22:48:39] especially with regards to bandwidth [22:48:42] for users [22:48:50] Krinkle: ok so let's say getModifiedTime never changes. we'll still serve new content every 5 minutes? [22:49:10] because that would means users waste their browser cache every minutes and readers will hit apache more often, too. [22:49:22] awight: No, getModofiedTime HAS to change whe the contents change [22:49:34] but you can incorporate hashtime inside modifiedtime [22:49:40] as one of the factors you include in your max() [22:49:43] or even the only one [22:50:12] wait, how does a version based on the output work? So we have to fetch and allocate each time, and then we know if it changed? [22:50:30] Krinkle: we're fixing a much worse situation, here. I think we're willing to accept reloading cache contents every 5 minutes. [22:50:52] what awight an ejegg both said... ^ [22:50:58] Right nwo the module is broken and doesn't reload at all. [22:51:13] Krinkle: yes clear that that must change [22:51:23] Implementing one based on contnet would be trivial to do and fix everything (itll never be stale, and not invalidate more than needed) [22:51:25] Krinkle: the legacy situation is that we serve banners from completely fragmented cache [22:51:36] Krinkle: we can easily hash the return value [22:51:41] With this change in CN architecture a large number of users will have one less round-trip per request [22:51:48] the only downside of using content-hash is that it's less peformant to compute and might validate too often (e.g. no-op changes) [22:51:49] Krinkle: but what AndyRussG said: how do we know the hashMTime, in that case [22:52:42] awight: OK, this is not what you'd do but what resourceloader would do for you: hash contents, see if we have it in memcached, if we do, return value from memcached at that key (which is a timestamp), if not in memcached, get now() and put it in cache and return it. [22:53:02] Krinkle: it looks like we can use the base class getHashMTime [22:53:16] so memcached contains keys like "resourceloadeR:modulename: requestcontext:" = timestasmp [22:53:35] Yeah, getHashMTime should be considered final. No need to override it. [22:53:42] Krinkle: great, this is very helpful [22:53:42] yet we still have to retrieve and allocate all banners before we know what the hash is [22:53:44] https://github.com/wikimedia/mediawiki/blob/c43234f78b4550babcb791aefa83d83b4de1e2ef/includes/resourceloader/ResourceLoaderEditToolbarModule.php#L71 [22:53:48] https://github.com/wikimedia/mediawiki/blob/555e0b4b3c517cfb565ad275d9600806cd3cd50a/includes/resourceloader/ResourceLoaderLanguageNamesModule.php#L68 [22:53:57] ejegg: yeah that's fine... [22:54:21] A few examples [22:54:54] https://github.com/wikimedia/mediawiki/blob/c24ef26d68100f4246ce4c5d3d195f25a2ecff0f/includes/resourceloader/ResourceLoaderFileModule.php#L511 [22:54:55] cool. We'll include the parent calculations [22:55:25] This one doesn't have a parent module, so no need to call parent [22:55:29] modules are empty by default [22:55:59] AndyRussG: u have enuf to implement? [22:56:01] Closest exampel is probably https://github.com/wikimedia/mediawiki/blob/555e0b4b3c517cfb565ad275d9600806cd3cd50a/includes/resourceloader/ResourceLoaderLanguageNamesModule.php#L68 [22:56:15] that one too has json data, a simple javascript wrapper, hashmtime [22:56:22] Yeah that one looks equivalent [22:56:47] * AndyRussG stares at the wall... [22:56:49] Uhh [22:56:51] hehehe [22:57:19] I wish I understood but I don't fully, but if you're fully onto this awight go ahead [22:57:20] AndyRussG: I think we just need the last two functions from includes/resourceloader/ResourceLoaderModule.php:439: * If your module provides a getModifiedHash() method, you'll need to call getHashMtime() [22:57:26] AndyRussG: sure [22:57:30] to avoid overhead from json-encode and variance from the javascript wrap, hash getChoices directly [22:57:50] liek getData in the language data module example [22:58:14] k [22:58:40] so every call is hitting the db for all banner config, but we'll make up for it by not json-encoding? [22:58:59] I know we're working against the clock sine the window to deploy a fix (so we can enable via config, Krinkle) is 1 hour from now [22:59:06] ejegg: I think calls only hit the db when there's a cache miss [22:59:11] so every 5 min, we redo the calculation [22:59:26] awight: Krinkle: ejegg has mentioned what I don't get [22:59:29] if it's unchanged, we return the older last-modified-time, and clients don't have to reload the data [22:59:42] it does seem like a benefit [22:59:43] ejegg: define 'every call' [22:59:58] awight: so we'll put the memcaching of getChoices() back in [23:00:04] this is one request globally every 5 minutes (from a backend varnish to a backend apache) users only hit varnish, which combines requests [23:00:12] yep. [23:00:15] ejegg: no [23:00:27] OK so every cache miss it will call getModifiedTime to see if it's changed since the last cache miss? [23:00:28] so it's very low energy and quite efficient [23:00:42] No, there will never be cache misses for the module, there can't be by design [23:00:45] Krinkle: aah, that makes sense now [23:00:53] however the startup manifest which contains the timestamps [23:01:15] .. that one expires every 5 minutes, calls getModifiedTime everywhere, and will eventually contain a new timestamp when a module changed [23:02:27] (PS1) Awight: Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 [23:03:05] (CR) jenkins-bot: [V: -1] Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 (owner: Awight) [23:03:41] how the... [23:04:18] still barfing on that global [23:04:18] and then the mw.loader client will end up making a request to a different url eventually (differnet &version=) and thus the user user to request it will bypass varnish cache and populate it [23:04:20] and any url with &version= in it is indefinitely cached (30+ days) [23:04:22] never expires [23:05:02] (PS3) Awight: remove deprecated global [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173983 [23:05:04] (PS3) Awight: PLS DON'T MERGE multiple fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [23:05:06] (PS2) Awight: Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 [23:05:14] AndyRussG: ok I'm hands-off yr patch now [23:05:18] Right on, my understanding solidifies [23:05:34] (CR) jenkins-bot: [V: -1] remove deprecated global [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173983 (owner: Awight) [23:06:00] AndyRussG: ayiaaa, one more thing, then [23:06:04] * awight curses tests [23:06:26] Krinkle: I did know about the 5 minutes for modules that don't have a version param. But in the current implementation RL fetches this module *with* a version param. Will that change now, then? [23:06:27] squashing things sounds like a satisfying resolution [23:06:36] (PS4) Awight: PLS DON'T MERGE multiple fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [23:06:38] (PS3) Awight: Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 [23:06:55] (Abandoned) Awight: remove deprecated global [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173983 (owner: Awight) [23:07:08] AndyRussG: that does sound important [23:07:55] Yeah! That's why I thought we were all good. 'Cause this module would in theory not have a version param [23:08:17] and 5-min caching would be handled Varnish-side [23:08:45] I think we were all good. but this makes it slightly nicer, and the browsers might not have to reload the CN data if it hasn't actually changed. [23:09:05] Hum [23:09:11] ethically speaking, yes all good [23:09:14] or mostly [23:11:02] (PS5) AndyRussG: Various fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 [23:11:21] AndyRussG: All modules have a version param. If they don't, they should be reported immediately and fixed. The only module that has a version param but is never requested with one is the 'startup' module. [23:11:31] AndyRussG: however this evile magick works, I did just change the allocations and got a new version param [23:12:22] so by design all module requests to load.php (except for the startup module and select legacy modules) are indefinitely cacheable. [23:12:23] Krinkle: awight: OK... [23:12:51] and will not and can't be purged. Instead the startup module discovers a new timestamps and outputs it in the json manifest, and next time mw.loader will make a requwest to a different url. [23:13:19] those two changes together are looking pretty solid as far as my current understanding goes [23:13:28] Krinkle: yes, thanks for pushing us. This will be more sane in the long run, than forcing reloads every 5 min. [23:13:38] Thanks [23:13:47] For today, though, I'm feeling less sane :) [23:13:57] Krinkle: is this json manifest somewhere on a local install that I can watch? just 2 debug...? [23:14:15] the json manifest is dynamically composed [23:14:21] it's on every mediawiki install [23:14:23] AndyRussG: I think it's this response: http://wiki.dev/load.php?debug=false&lang=en&modules=startup&only=scripts&skin=vector&* [23:14:27] awight: want to return a constant hash value when chooseBannerOnClient is false? [23:14:27] It's the modules=startup request [23:14:41] ejegg: ah good call. mmmfph [23:14:51] AndyRussG: For your curiousity, refer to https://www.mediawiki.org/wiki/ResourceLoader/Features later. I wrote it up pretty well I hope :) [23:14:52] excellent aye [23:15:04] Always welcome questions and feedback to improve it, naturally. [23:15:29] It's essentially a text version of our conference talks about ResourceLoader. [23:16:19] Krinkle: OK thanks... Yes for curiosity and some handy job-loss-avoidance skills ;p I have seen it but it's been a while, and hadn't ever checked it out in detail [23:17:16] (PS4) Awight: Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 [23:17:27] AndyRussG: It's more than you 'need to know' to use it, but it can be helpful to avoid implementing more than needed. It provides almost everything for you. [23:17:46] cool! [23:17:46] ejegg: That might be a problematic tweak. It looks like we'll be continue returning the last modified time *before* we turned off the client choice global. [23:18:22] (CR) AndyRussG: Various fixes to CNBannerChoiceDataResourceLoaderModule (2 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [23:18:43] oh, right, return a constant 1 from the modifiedTime instead then. [23:18:50] until the switch is thrown [23:19:50] I'm fine with garbage in here though, with the switch off--it's probably better to have static garbage than garbage that's still changing as the allocations are modified. [23:20:00] we'll see [23:20:08] meanwhile... we don't have much more runway [23:20:13] yah [23:20:14] there's a SWAT deploy in 40 min [23:20:23] it looks very full, I don't want to step on that [23:20:32] (CR) AndyRussG: "Thanks!!" (10 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [23:20:53] (CR) Ejegg: [C: 2] Various fixes to CNBannerChoiceDataResourceLoaderModule [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [23:21:55] awight: i think you were right about the pitfalls of doing the check in the hash - let's just move that check to getModifiedTime [23:21:56] (PS5) Awight: Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 [23:22:05] ejegg: k [23:22:36] (CR) Krinkle: Various fixes to CNBannerChoiceDataResourceLoaderModule (2 comments) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/173980 (owner: AndyRussG) [23:22:45] ejegg: actually, how about we just continue invalidating cache, as allocations change... [23:22:55] no. ok lemme do this right [23:23:55] ejegg: awight: let's roll back on test.wikipedia, that's the only one with this activated that has any amount of traffick [23:24:12] AndyRussG: I'm headed forwards! [23:24:13] We don't have time to do it right today. [23:24:14] heeehehehe [23:24:18] (CR) Krinkle: bannerChoiceData and bannerController.lib modules (1 comment) [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/172299 (owner: AndyRussG) [23:24:29] AndyRussG: I was planning to push this to testwiki and mediawiki only [23:24:54] AndyRussG: I'm glad to defer to better judgement, though. [23:24:56] we could do that, but trying to get that out in 35 minutes is risky [23:25:13] This has been great. We learned a huge amount and didn't destroy anything [23:25:48] I wish I had a spidey-sense for incoming Krinkle reviews so I didn't +2 or deploy anything that was about to be found wanting [23:25:53] (PS6) Awight: Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 [23:25:55] (CR) jenkins-bot: [V: -1] Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 (owner: Awight) [23:26:05] (PS7) Awight: Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 [23:26:30] TIL ejegg can sense incoming code reviews... that's useful! [23:26:48] I said I wish! [23:26:52] well... there it is ^^ [23:27:37] oh, that should work! [23:27:58] (CR) Ejegg: [C: 2] Implement ResourceLoader last-modified methods [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/174001 (owner: Awight) [23:28:51] (PS1) Awight: Merge remote-tracking branch 'origin/master' into HEAD [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/174003 [23:28:58] (CR) Awight: [C: 2] Merge remote-tracking branch 'origin/master' into HEAD [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/174003 (owner: Awight) [23:29:32] (Merged) jenkins-bot: Merge remote-tracking branch 'origin/master' into HEAD [extensions/CentralNotice] (wmf_deploy) - https://gerrit.wikimedia.org/r/174003 (owner: Awight) [23:29:40] AndyRussG: ejegg: if we do this... there will be until 11:00 PST tomorrow to get it reverted before the train comes [23:29:52] Let's roll [23:29:54] otherwise, that would be a relatively nice way to push it out [23:30:22] if you're both OK with it....OK... [23:31:38] AndyRussG: I'm just doing the testwiki/mediawiki deploy... that much I'm comfortable with [23:31:52] There is all night to test it and decide if we want to take it off the train :) [23:31:58] OK [23:32:09] That said: I'll be on a plane ;) [23:32:09] There are more silly mistakes in the new version of the RLModule that Krinkle just pointed out, but they're only in the API code path so no worries for WMF setup [23:32:18] k [23:32:58] ejegg: can you put this on yr plate? https://integration.wikimedia.org/ci/job/mediawiki-core-qunit/32198/consoleFull [23:33:06] that QUnit fail makes me uneasy [23:33:16] although--it seems that CN QUnit is not being run! [23:33:45] Match PHP parser? [23:34:06] oof I'm gonna fry for this... killed Jenkins in order to submit [23:34:10] ooof [23:35:58] AndyRussG: ejegg: deployed. [23:36:04] alright! [23:36:09] * AndyRussG falls off chair [23:36:30] OK.. Deployed to testwiki and mediawiki? [23:36:36] yep [23:37:10] and we have a stale version on aa.wikibooks and .... meta? [23:37:22] I don't think so... checking [23:37:31] I deployed to 1.25wmf8 [23:37:46] https://www.mediawiki.org/wiki/MediaWiki_1.25/Roadmap [23:38:19] AndyRussG: ejegg: I'm going to prepare a wmf7 patch for just in case. [23:40:29] AndyRussG: How about I set mediawiki to client choice... [23:40:35] Otherwise, I don't think we can test this [23:41:11] awight: mediawiki is a big site... [23:41:15] :) [23:41:25] * awight is cracking under the suspense [23:41:46] timestamps are looking good on beta [23:42:13] I'm truthfully very, very bowled over at ur deploy skill... but couldn't we deploy to aa.wikibooks instead? [23:42:14] oh, but that's not cross-wiki [23:42:28] AndyRussG: I don't know how to deploy to only some servers [23:43:33] AndyRussG: yeah I don't think that's a thing. We do have the option of deploying the code to the remaining servers however (wmf7) and leaving config off. [23:44:44] awight: what about just the group 1 wmf7's--Wiktionary, Wikisource, Wikinews, Wikibooks, Wikiquote, Wikiversity, Wikivoyage [23:44:57] and then turn the config on selectively for aa.wikibooks? [23:44:57] Lemme ask in operations [23:45:10] K thanks! [23:48:24] oooh [23:48:38] How goes? [23:48:41] AndyRussG: Let's break wikipedia? [23:48:56] no [23:48:57] That good, huh? [23:49:01] opposed [23:49:33] :) [23:49:34] :) [23:49:41] jinx again! [23:49:45] ...:) [23:49:49] I felt left out. [23:50:26] well, our options are to a) deploy to wmf7 with config disabled b) revert wmf8 after testing tonight, and c) allow wmf8 to go out with the train, still config disabled [23:51:08] B seems to imply that you don't know how things are going to shake out yet. [23:51:25] b vs c in fact [23:52:01] I feel I'd go with don't do a), test som more tonight ad decide whether b or c. [23:52:08] sure! [23:52:12] :) [23:52:15] So, it's more like: If testing looks good, let it out? [23:52:43] we'll still need to enable via config, but that's simple. currently, it will be enabled on aa-wikibooks, tomorrow by 12:00 PST [23:53:05] K4-713: yes. and it's already out and enabled on beta... [23:53:10] and the disabled changes will be causing subtle newness on everything but wikipedia [23:53:24] AndyRussG: btw, I noticed an important detail on https://www.mediawiki.org/wiki/MediaWiki_1.25/Roadmap [23:53:26] Sounds like a solid plan. [23:53:35] it's also out and not enabled on meta and mediawiki [23:53:36] wikipedia is on the train Wed the 19th [23:53:48] Remind me to get you guys a beer. [23:53:48] K important to keep in mind! [23:54:07] AndyRussG: I still vote for enabling on mediawiki... [23:54:17] it's a simple cleanup if there is spill [23:54:28] and it gives us a live target for testing, right away. [23:54:36] OK [23:54:37] Yeah [23:54:39] <_< [23:54:40] >_> [23:54:42] doing so. [23:54:46] * K4-713 nods [23:57:02] awight: it's not on meta, correct? [23:57:48] shouldn't be [23:58:13] OK [23:58:41] That one's not doable seaprately I guess [23:58:56] (thinking of ejegg's porcelean on the UI) [23:59:16] ehh, that's an afterthought