[00:35:21] ottomata: milimetric: there's some upstream work at the W3C happening around Beacon API that may be of interest for our EventGate: https://github.com/w3c/beacon/issues/72 [01:09:37] cool [11:42:08] anyone here willing to merge a dotfiles puppet patch? https://gerrit.wikimedia.org/r/c/operations/puppet/+/742946/ [11:42:35] <_joe_> majavah: gimme 3 minutes I'll take a look [11:48:30] <_joe_> majavah: done! [11:48:41] thanks! [11:50:02] <_joe_> we should maybe have the git ps1 stuff in the global /etc/profile.d [11:50:17] <_joe_> as a function [11:50:25] <_joe_> same with the kube env stuff [11:51:08] <_joe_> I'll try to think of a nice interface so that we can stop all having the aliases everywhere and just have something like [11:51:16] <_joe_> wmf_add_git_to_ps1 [11:51:38] i like that [11:53:32] <_joe_> oh then nevermind [11:53:46] :D [11:54:01] <_joe_> (I should underline for the other people that we are joking) [13:08:20] volans: what's your favourite way of dealing with line length issues in python? 😇 [13:11:01] e.g. https://phabricator.wikimedia.org/P17940$17 [13:20:49] uck [13:20:59] kormat: I use 120 chars usually and then either split with nromal string concatenation [13:21:14] something = ( "this " + "that " + "the other thing" ) then pass that in [13:21:15] or adopt black (and all that that entails) in your project and let it decide for you [13:21:21] or without the + [13:21:25] i am using black [13:21:28] and I hate it [13:21:45] kormat: so what's the problem? It should take care of it [13:22:46] volans: black doesn't touch it [13:23:53] black just seems super chill about it [13:25:07] > you can pass --line-length with a lower number. Black will try to respect that. However, sometimes it won’t be able to without breaking other rules. In those rare cases, auto-formatted code will exceed your allotted limit. [13:25:19] so black: doesn't care. flake8: angry [13:29:13] feh. added ` # noqa` to the end of the line. [13:30:09] because you don't want to split it? [13:30:23] volans: all options seem bad. 🤷‍♀️ [13:30:31] it's 99 chars [13:30:33] for me it's not too long [13:30:52] that's fine for this specific example, sure. [13:32:05] yeah, I think that example's fine [13:32:35] But we already know I have terrible python taste :) [13:32:37] that's why I didn't get why a #noqa was needed :) [13:33:57] black's default line-length is 88, and they suggest setting flake8 to be the same [13:34:14] yes but you can tell black to use a different lenght [13:34:30] i'd rather not waste time faffing around with changing both tools configs when it will still sometimes fail anyway [13:34:30] is 1 of the like 2 things they allow you to configure :D [13:34:32] haha [13:35:01] <_joe_> I realy want to spend some energy on such fundamental engineering problems too. How can I contribute? [13:36:04] <_joe_> I'll just note 88 is an unfortunate number to choose [13:36:24] <_joe_> and given it's not 1980, 100 or 120 are more reasonable line lengths [13:37:05] _joe_: patch setuptools to understand gzipped install_requires, thus shortening the line length issue kormat's having. HTH. [13:39:12] fiiiine, fine fine. 100 it is. [13:41:17] apergos: re: black, i really don't care about what style it produces. i want to outsource having to think about it. gofmt was such a wonderful idea. [13:41:56] oh I don't hate that, I hate having to figure out how to split these lines every time [13:42:02] I think I have my length at 100 [13:42:21] * Emperor isn't entirely convinced robot-friendly rigid style is 100% awesome in all circumstances [13:42:22] still irks me every time I run into it though [13:42:50] apergos: ahh, ok [13:43:07] I use pylint and sometimes I will ignore a thing it flagsd but I try to comply most of the time. [13:43:23] Emperor: the style will certainly be be suboptimal in some cases for sure. but it's _such_ a waste of brainpower handling formatting manually. [13:46:33] yeah, that. we're reducing toil on all fronts, and then we end up wasting time on silly CI checks which are meaningless with todays's displays... [13:49:06] <_joe_> moritzm: we all know you still use your laptop on console set to strict vt-100 emulation though [13:49:30] who here is still using xterm [13:49:34] speak up, don't be shy [13:50:04] <_joe_> apergos: X if for the bourgeois, moritzm works on the text-only console [13:51:17] that reminds me I should really find out what the state of Wayland and screensharing is these days [13:52:42] and even a framebuffer console has 200 chars width these days... [13:54:25] I have the odd xterm to launch emacs from :) [13:58:05] 👀👀 [14:09:06] <_joe_> wait you use emacs in *X mode*? [14:16:48] Yeah, I'm hipster like that :) [15:15:21] 78 chars is the canonically correct max line length for a source code file [15:15:57] <_joe_> with 6 empty colums at the start of the line, yes [17:43:04] ooh, a conversation about stupid line length limits. [17:44:23] * dancy joins the "why do we torture ourselves like this?" camp. [17:44:26] <_joe_> dancy: you need to move to europe, clearly [17:44:45] come to the dark side, we have cookies! [17:44:48] <_joe_> those tend to happen early in our days, when people still care about little silly things [17:45:13] <_joe_> happy to know you're in my camp :D [17:45:30] <_joe_> I hope for your sake you never have to contribute to spicerack then :D [17:45:42] ohdear [17:46:54] dancy: welcome to the camp :) [17:51:15] * dancy hands around some marshmallows [17:51:51] on the line length debate: I'm not in favor of strict-80 (or some lesser value), but I do think one should consider side-by-side diff tools and readability if there's lots of long lines, etc [17:52:33] I'm not sure what a good value would be, but I would hazard a guess closer to ~100-120 as a rule of thumb (but allow for rare style violations where it makes more human sense) [17:52:46] but yeah, I can't care enough to debate it heavily :) [17:53:14] Nod. [17:54:17] I also consider greppability [17:58:26] greppability is also a great argument for monorepos :) [17:59:12] I used to have a script for grepping a keyword across a bunch of various WMF repos, but I let it rot a bit lately. [18:02:38] bblack: you mean https://codesearch.wmcloud.org/search/ :-P [18:32:20] i know the tech dept meeting going on, but is it possible to find someone to give me a +2 on a quick dns change? https://gerrit.wikimedia.org/r/c/operations/dns/+/742991 [18:33:54] dwisehaupt: yeah I can push it [18:34:38] thanks. [18:36:01] cool. updating dns. thanks again. [18:36:32] I'm already running it :) [18:36:50] it will play out though, no real harm in concurrent runs [18:37:02] (worst case we both get some lock failures, but all the hosts end up updated) [18:40:13] ha. :) [22:07:50] topranks: I have a question regarding https://wikitech.wikimedia.org/wiki/Incident_documentation/2021-11-23_Core_Network_Routing - specifically why it did not impact cache hits and cache misses from end-user traffic. If I understand correctly, the routing loop was for routers that control internal cross-dc traffic, so external entry to us was unaffected. However, since the Incinga alert fired about one DC reaching another, I wonder how [22:07:50] come Eqsin cache misses e.g. didn't fail to reach Eqiad or some such. [22:08:43] I suspect it might be that the reason is that we use local subsets for that, and that (maybe?) apart from Incinga alerts (and maybe WMCS?) we never use public IPs to talk internally. [22:08:54] Heh [22:09:02] I just deleted what I was writing [22:09:22] Yes that’s it. The server subnets themselves are distributed using the OSPF protocol [22:09:36] So traffic between internal servers was unaffected [22:09:47] * Krinkle doesn't know what OSPF is [22:10:03] Icinga picked it up because it actively monitors the public service IPs [22:10:33] ack, and WMCS wasn't affected and/or we're reasonably sure nothign else does/should use these IPs that way? [22:10:50] But it is doing so from eqiad, whereas no real traffic goes from eqiad to say eqsin public service IPs [22:11:50] WMCS I don’t believe so. If they have something targeting remote DC public addresses directly then maybe. But I haven’t heard that they do. [22:12:13] OSPF is just another routing protocol like BGP [22:12:28] Ah right, if the routing loop were in another DC I guess it might have been more noticable, although still very limited if at all since it would require a use case for Eqiad services to hardcode a public IP elsewhere. [22:12:32] https://en.m.wikipedia.org/wiki/Open_Shortest_Path_First [22:13:09] Yes, if WMCS services target our domain names they’d be pointed to the local instance, and would be ok. [22:13:24] right, there'd be no reason to specifically target another PoP. [22:13:27] So you’re right, it’d likely need hard-coded IPs to be affected [22:13:55] thx, that slightly increases my confidence in the summary I'm writing :) [22:13:56] No. Obviously that’s what Icinga does - for good reason. But wouldn’t make sense for other things. [22:14:35] Np. If you want me to double check anything or get more stats etc just let me know [22:14:44] Thanks! [22:14:49] My alternate theory would have been that it only affected "BGP traffic" (if that's a thing?) which I was unable to reconcile with the Icinga alert. [22:16:32] I’d more phrase it that it affected “BGP Routes” (and thus traffic that followed those routes). [22:17:36] you did phrase it like that indeed, but I couldn't quite figure what that meant [22:17:59] I'll make a small edit to the impact line which I then copy to the excellence monthly. [22:18:23] Ah no problem. Yeah to be honest I was lucky here. In many organisations, maybe ours down the road, we wouldn’t be using two separate protocols. [22:18:47] We got away with it cos the important stuff didn’t depend on BGP. [22:19:10] Ah, so it's not inherent to networking per-se that 10.x uses OSPF and open web uses BGP. [22:19:25] I was about to conclude that as something I learned today :) [22:23:00] No not at all [22:23:11] The wider internet only uses BGP. [22:23:37] But internally you can run a protocol like BGP or OSPF, both have pros and cons. Or a combination of both. [22:24:25] Right, yeah, I knew BGP as being used for routing on the open web. I didn't know there were (multiple) options for internal routing. I assumed it was only BGP there as well. Thanks [22:27:48] BGP started as an inter-domain routing protocol, i.e. it was designed for the big bad internet, and connections between different organizations who may not trust each other. But it's come to be used widely for all sorts of networks, big and small, since then. [22:39:43] topranks: ok, I've edited it now to state "For about 12 minutes, Eqiad was unable to reach our Singapore cache cluster via public IP addresses due to a BGP routing error." - does that still accurately and fully represent things? [22:51:08] Yes I believe it does. [23:28:39] Krinkle: sorry we should rephrase that, it wasn't just Singapore that was unreachable from Eqiad. All remote POP public IP addresses (codfw, ulsfo, esams, eqsin) were unreachable. [23:45:36] topranks: ack, fixed.