Wednesday, 2022-09-14

-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed: [zuul/zuul] 856317: Add option to include returned data in MQTT reporter https://review.opendev.org/c/zuul/zuul/+/85631701:05
-@gerrit:opendev.org- Ian Wienand proposed: [zuul/zuul] 855309: zuul-stream: Add variable to disable writing streaming files https://review.opendev.org/c/zuul/zuul/+/85530901:20
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 857421: Trace merge requests and merger operations https://review.opendev.org/c/zuul/zuul/+/85742104:59
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 857421: Trace merge requests and merger operations https://review.opendev.org/c/zuul/zuul/+/85742105:02
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 857421: Trace merge requests and merger operations https://review.opendev.org/c/zuul/zuul/+/85742108:45
@clarkb:matrix.orgRe ansible slowness this whole document has been useful for understanding what is going on, but this section in particular seems important. https://docs.ansible.com/ansible/latest/dev_guide/developing_program_flow_modules.html#ansiballz-framework I half wonder if we are generating some very large zipfile due to transitive imports of module utils.15:22
@clarkb:matrix.orgI'm not sure any of that is actionable, but gives good background for anyone trying to better understand how this works under the hood15:22
@clarkb:matrix.organd I half wonder if ansible 5 has regressed in performance around this stuff. Though it is entirely possible I've just managed to notice recently and its been an issue all along. I know we've looked into this in the past for similar reasons15:25
-@gerrit:opendev.org- Alfredo Moralejo proposed: [zuul/zuul-jobs] 857730: Use AFS mirrors for extras-common in CS9 https://review.opendev.org/c/zuul/zuul-jobs/+/85773015:36
@clarkb:matrix.orgDoing some local testing to do some expectation setting running 2 command tasks to capture `date +%s.%N` for time measurement and 5 file copies in a loop of a 91 byte file takes just under 4 seconds. Which is inline with what corvus was measuring at about half a second per task15:51
@clarkb:matrix.orgthe difference between enabling and disabling pipelining for that is minimal. Makes me wonder if it is enabeld by default unless you use become or something. Or maybe disk io is negligible with the size of the files being used here15:52
@clarkb:matrix.orgUsing the ansible task debugger (did you know ansible has a task debugger?) I was able to essentially put a breakpoint in place and grab the ansiballz base64 encoded zip files containing the python code for executing the copy module16:10
@clarkb:matrix.orgthe base64 file is 129kb, decoded it is 97k zip file, and inflating the zip file results in a directory structure about 440kb16:11
@clarkb:matrix.orgnothing crazy16:11
@clarkb:matrix.orgAn interesting thign I see in my debug output is a lot of sftp of files which implies to me that pipelining isn't enabled even though I'm running with ANSIBLE_SSH_PIPELINING=1. Elsewhere on the internet people claim copy with pipelining is slower than without pipeling though. https://stackoverflow.com/questions/43438519/check-if-ansible-pipelining-is-enabled-working16:17
@clarkb:matrix.orgI'm going to see if I can't reproduce those results by actually enabling pipelining16:17
@clarkb:matrix.orgUsing ANSIBLE_PIPELINING=1 updates the debug output to say pipelining is explicitly enabled. Maybe it needs to be enabled globally and per connection separately?16:20
@clarkb:matrix.orgI still see it using sftp tocopy the file I want to write which makes sense given that is probably much quicker than streaming it through stdin to the python process. I wonder if that is the fix for the slowness others have reported half a decade ago16:21
@clarkb:matrix.orgAnd now that pipelining is actually enabled the runtime goes to just under 3 seconds instead of just under 4 seconds for the same set of tasks. An improvement if not a large one16:22
@clarkb:matrix.orgcorvus: in the zuul test suite when we set self.executor_server.verbose = True do you know where that ansible logging is written to or how I can check its contents from within a test? In local by hand testing of ansible setting ssh_connection.pipelining does not actually enable pipelining and this is what zuul does.16:42
@clarkb:matrix.orgcorvus: setting connection.pipelining to true or defaults.pipelining does enable it16:42
@jim:acmegating.comClark: i think it would be in the executor debug log; you can use a contextmanager to capture that output16:59
@jim:acmegating.comClark: (mostly those are enabled in tests so that the debug output is visible to humans if the test fails)16:59
@jim:acmegating.comClark: oh, actually, look at test_job_output_failure_log as maybe the best way to deal with log output in tests17:00
@jim:acmegating.comi think i like that better than the context manager17:00
@clarkb:matrix.orgthanks17:01
@clarkb:matrix.orgcuriously if I run `ansible-config init --disabled -t all > ansible.cfg` the resulting output does show ssh_connection.pipelining as defaulting to ANSIBLE_PIPELINING17:01
@clarkb:matrix.orgit almost appears that we aren't overriding that via the ansible.cfg file for some reason when I run it locally17:02
@jim:acmegating.comClark: (with self.assertLogs was the context manager i was thinking of, but as i said, i think the logger attachment may be better since it still outputs as normal)17:02
@clarkb:matrix.orgBut ya I'd like to have the zuul test suite check it against how zuul is configured17:02
@clarkb:matrix.orgIf I run `ANSIBLE_CONFIG=/home/clark/.ansible.cfg ~/tmp/ansibleenv/bin/ansible-config dump --only-changed -t all` ansible shows my config is different (separately it is weird to me that i have to explicitly set ANSIBLE_CONFIG to the default lookup path I don't understand that either). But when I run it I don't get pipelining. If I set connection.pipelining or defaults.pipelining in the same file then it works17:08
@clarkb:matrix.orghttps://github.com/ansible/ansible/issues/76572 I'm reading this now17:10
@clarkb:matrix.orgI'm 99% sure this is our issue17:11
@clarkb:matrix.orgUnfortunately I have no idea how to parse https://github.com/ansible/ansible/issues/76572#issuecomment-115774370017:12
@clarkb:matrix.orgIf no backport was done does that mean ansible 5/2.12 is just broken forever?17:13
@clarkb:matrix.organd the issue is locked so I can't even request clarification17:14
@clarkb:matrix.orgI'm going to make sure my local ansible install is up to date I guess17:14
@clarkb:matrix.orgwhat I have installed is from august 15 (2.12.8) which is newer than the last update on that issue so I think they really didn't fix ansible 517:15
@clarkb:matrix.orgbut 2.12.9 exists so I will update to that and retes17:15
@clarkb:matrix.orgNevermind. Ansible 5.10.0 is what wants ansible-core 2.12.8. There doesn't appear to be an ansible 5 release that does 2.12.9 so I think this was just never fixed in ansible 5. Joy17:17
@jim:acmegating.comClark: good thing we're about to move to 6? :)17:18
@clarkb:matrix.orgI guess? I'm frustrated that upstream thought this was small enough to just ignore17:18
@clarkb:matrix.organd their versioning is completely indecipherable so I can't make sense of what I need to get the update17:19
@clarkb:matrix.organsible-base is apparently different than ansible-core and ansible?17:19
@clarkb:matrix.orgI'm going to update to ansible 6 and retest as ansible base hasn't updated since january17:19
@jim:acmegating.comi think ansible-base was a one-time/transition thing17:20
@clarkb:matrix.orggotcha. fwiw the code appears to be in what I think is ansible-core17:21
@jim:acmegating.comyep17:21
@jim:acmegating.comhttps://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-changelogs17:21
@clarkb:matrix.organsible 6 does fix it17:21
@clarkb:matrix.orgIs there any reason we can't fix this for 5 too in zuul by adding it to the defaults section? I know we support other connection types and they may not want to use pipeling?17:22
@clarkb:matrix.orgI can write that patch and try to add a regression testing by checking ansible debug output for the pipelining string, just not sure how safe that change is17:23
@jim:acmegating.comClark: is this so bad that we need to?  i mean, we're literally adding ansible 6 as soon as opendev finishes restarting...17:23
@clarkb:matrix.orgcorvus: I don't think we should move openstack until they release though17:23
@clarkb:matrix.orgso we'll live with this for about another month or so likely17:24
@jim:acmegating.combasically, if it works but is a bit slower in some cases, i'm not convinced we should open the can of worms by moving it to defaults17:24
@jim:acmegating.comif the long-term fix is going to merge in a couple days17:24
@clarkb:matrix.orgya I think that is fair17:24
@clarkb:matrix.orgsince it will affect everything17:24
@clarkb:matrix.orgkubernetes, winrm etc17:24
@clarkb:matrix.orgI would happily leave a comment on that issue asking ansible to backport the fix17:25
@clarkb:matrix.orgBut I'm not allowed ot17:25
@clarkb:matrix.orgcorvus: this is good for the zuul messaging around updating to 6 though. "Update to 6 to get pipelining back which should make your jobs faster"17:25
@clarkb:matrix.orgI guess what they are saying is ansible 5 is EOL. I thought they did more overlap than that17:32
@clarkb:matrix.orgIt is odd that they never did an ansible 5 release with 2.12.9 though17:32
@clarkb:matrix.orgor maybe they did and pip is being too smart for me preexisting isntall17:33
@jim:acmegating.comafaik, there's no overlap between ansible releases; i'm not even sure whether there will be overlap in ansible-core in the future or not...17:36
@clarkb:matrix.orgthey did release 5.10.0 after 6.0.0 but only a week later17:36
@clarkb:matrix.orgwhich is pretty close to no overlap17:37
@jim:acmegating.comit's going to make for fun zuul releases17:37
@jim:acmegating.comzuul-maint: the opendev restart is finished (thanks Clark !) and most of the servers are running master now (some executors are a few commits behind, but those commits aren't relevant to executors, or even to opendev).  so how does this look for a zuul release tomorrow?  commit a4fdfba1e3f07d554d6625413154c804d3c64d6f (HEAD -> master, tag: 6.4.0, origin/master, gerrit/master)20:09
@fungicide:matrix.orga4fdfba as 6.4.0 lgtm!20:34
@clarkb:matrix.orgSame here20:39
@clarkb:matrix.orgcorvus: now that we've got a commit selected any concern with me approving changes? I was going to look at ianw's web cleanup21:24
@iwienand:matrix.orgClark: am i parsing things right that you've found our recent regression in speed on things like system-config are an ansible 5 bug?21:26
@clarkb:matrix.orgianw: very strongly suspected yet. TLDR is that ansible 5 isn't respecting our ssh_connection.pipelining=true config so we are running all ansible 5 without pipelining21:27
@clarkb:matrix.org * ianw: very strongly suspected yes. TLDR is that ansible 5 isn't respecting our ssh\_connection.pipelining=true config so we are running all ansible 5 without pipelining21:27
@iwienand:matrix.orggreat find!  would explain a lot21:28
@clarkb:matrix.orgthe only workaround with ansible 5 as is is to enable pipelining globally for all connections that support it. Which is potentially problematic for users21:29
@clarkb:matrix.orgso we're going to push towards ansible 6 instead (which is what the next release brings)21:30
@clarkb:matrix.orgat this point ansible 6 should be present in opendev. We can probably work to start converting the zuul tenant over21:32
@clarkb:matrix.orgcorvus: ^ is the best way to do that to just rip the bandaid off and fix what breaks? If so I guess after the release is made?21:32
@jim:acmegating.comClark: i'd like to wait until we're happy enough with opendev that we actually make the 640 release (tomorrow) before we approve all the things22:05
@jim:acmegating.commostly so it's easier to do a brown-bag release if we need to22:05
@jim:acmegating.comClark: seems like we can do a test change to run ansible 6... then yeah, maybe after the release change the zuul tenant default22:06
@clarkb:matrix.orgack. I've just been +2'ing things. Now got the giant console datalist chnage in front of me22:06
@clarkb:matrix.orgcorvus: ianw the deeplinking behavior was the thing that is difficult to test right? And iirc ianw tested that locally?22:08
@jim:acmegating.comyep, that's my recollection.22:08
@iwienand:matrix.orgyeah i did test the modal comes up when i pasted in a permalink from my localhost:3000 site.  i mean, someone else should check, but it worked for me :)  but also none of those bits about matching the path have really changed either22:09
@jim:acmegating.comi'm happy with a self-certification on that :)  i agree it seems unlikely to break -- just didn't want it to be missed.22:10
@jim:acmegating.comClark: https://review.opendev.org/854046 and child are the deprecation removal changes needed after 640 and before 70022:19
@jim:acmegating.comthe ansible2 removal change still needs to be written22:19
@clarkb:matrix.orgianw: some questions/comments on https://review.opendev.org/c/zuul/zuul/+/85455622:38
@jim:acmegating.comClark: re your last comment: unless we're sure that gets optimized out (a compiler *could* do that, i don't know if it *does*) then i agree that's worth an update).22:50
@clarkb:matrix.orgcorvus: some languages like haskell will lazily evaluate things like that only when they are needed. It makes debugging fun and I doubt that the javascript engine in our brwosers does it, but it is possible22:52
@jim:acmegating.commodern JS JITs are so powerful i would not put anything past them :)22:54
-@gerrit:opendev.org- Zuul merged on behalf of Alfredo Moralejo: [zuul/zuul-jobs] 838450: Update gpg key file for extras-common in CS9 https://review.opendev.org/c/zuul/zuul-jobs/+/83845023:10
@iwienand:matrix.orgClark: sure i can refactor a bit23:15
@iwienand:matrix.orgClark: if you have the sample site up and can find a better way to pad on your high dpi screen i'm all ears :)  i think we have agreement from upstream to be able to pass a disable flag via props to the button, and then we can hide it with css -- but it will require an update to PF23:17
@iwienand:matrix.orghttps://github.com/patternfly/patternfly-react/issues/7950#issuecomment-123989512223:17
@clarkb:matrix.orgianw: to be fair this is all because I'm half blind and linux high dpi support is not great23:18
@clarkb:matrix.orgIt doesn't bother me too much and I'm assuming things are aligned on your displays23:18
@clarkb:matrix.orgIf I change my default zoom to 100% instead of 110% the problem persists so it isn't that23:19
@iwienand:matrix.orgif you can inspect the padding box, currently it's setting marginRight: 'var(--pf-c-data-list__item-control--MarginRight)'23:20
@iwienand:matrix.orgactually, it's mroe likely to be the23:21
@iwienand:matrix.org <span style={{display: 'inline-block', minWidth: '40px'}}23:22
@clarkb:matrix.orgthere are a bunch of empty divs after the script23:23
@clarkb:matrix.orgbut looking for that particular row now23:23
@iwienand:matrix.orgpossibly i could put a disabled button in there to pad it out.  which is more or less what upstream would do, except not hacky23:23
@iwienand:matrix.orgthe other option is to rewrite the whole thing as a table :)  but i think that just trades one problem of padding this out for a bunch of other problems, most of which i don't even know are problems yet :)23:24
@clarkb:matrix.orgianw: the item control thing for the drop down is 30x30 and the explicit shift is 40x2823:27
@clarkb:matrix.orgI think its that 10 pixel difference that causes the problem23:27
@iwienand:matrix.orginteresting; i wonder why it doesn't have minWidth:40px like mine does23:28
@iwienand:matrix.orgis there any clue what css variable it's using?23:28
@clarkb:matrix.orgianw: the thing you added is margin-right: var(--pf-c-data-list__item-control--MarginRight);23:29
@iwienand:matrix.orgi added a <span minwidth=40px> to simulate the button and then set the margin-right on that23:30
@clarkb:matrix.orgThe other thing is   margin-right: var(--pf-c-data-list__item-control--MarginRight);23:30
@clarkb:matrix.orgso they are both using the same margins but with different sizes of internal objects?23:30
@clarkb:matrix.orgthe actual toggle is 36x2723:31
@clarkb:matrix.orgCan we maybe wrap your span in class="pf-c-data-list__item-control" to have it render similarly?23:34
@clarkb:matrix.orgsupposedly the minimum for ^ is 30px23:34
@clarkb:matrix.orgif I change your 40px to 30/31/32px it is close (super hard to tell if exact on this display23:36
@iwienand:matrix.orgyeah, that might have the width ... i'm having a poke now23:36
-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed:23:44
- [zuul/zuul] 855293: Add tracing tutorial https://review.opendev.org/c/zuul/zuul/+/855293
- [zuul/zuul] 855096: Tracing: implement span save/restore https://review.opendev.org/c/zuul/zuul/+/855096
-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed on behalf of Simon Westphahl:23:44
- [zuul/zuul] 856523: Add span for builds and propagate via request https://review.opendev.org/c/zuul/zuul/+/856523
- [zuul/zuul] 857421: Trace merge requests and merger operations https://review.opendev.org/c/zuul/zuul/+/857421
-@gerrit:opendev.org- Ian Wienand proposed:23:44
- [zuul/zuul] 857793: web: refactor console item generation https://review.opendev.org/c/zuul/zuul/+/857793
- [zuul/zuul] 857794: web: better non-expandable console padding https://review.opendev.org/c/zuul/zuul/+/857794
@iwienand:matrix.orgClark: could you try 857794?  that may be a better thread to pull on23:44
@clarkb:matrix.orgI'll look just as soon as I finish the logo chang ereview. Related to the logo change review is this the sort of thing I should give as feedback to the foundation design team?23:46
@clarkb:matrix.orgsomething like logos shouldn't contain extra whitespace around them to make ease of web dev simpler?23:46
@jim:acmegating.comswest: tristanC ^ that's a fairly significant rework of the tracing api -- it sets a global tracer and relies on that so that we don't have to pass around as many objects, and also moves even closer to using the otel api as designed.  that's a bit more rework of existing changes than i normally like to do, but i think that's the best way to review it (adding the api all at once so it can be reviewed as a unit rather than a series of changes that each undo the last).  i squashed several changes together to accomplish that.23:47
@jim:acmegating.comClark: i don't think that file came directly from the foundation design team23:47
@clarkb:matrix.orgcorvus: ah23:47
@clarkb:matrix.orgianw: heh I just realized I need to wait for CI to build the previe wsite for me. But ya I'll check the result sof that change in my browser23:48
@iwienand:matrix.org> <@jim:acmegating.com> Clark: i don't think that file came directly from the foundation design team23:49
in the original commit about the logo it says it came from https://www.openstack.org/brand/openstack-logo/logo-download/ and had its viewbox slightly adjusted. but where that came from i'm not sure
@iwienand:matrix.orgTo me it seems logical to give the logos without any whitespace and let the users figure that out.  but I bet someone has been paid big $$$ to figure out the exact amount of whitespace that the brand standards require :)  But in the Zuul logo case I don't think it's an even padding; so it doesn't feel intentional23:51
-@gerrit:opendev.org- Ian Wienand proposed:23:58
- [zuul/zuul] 857794: web: better non-expandable console padding https://review.opendev.org/c/zuul/zuul/+/857794
- [zuul/zuul] 857795: web: console: make magnifying glass also clickable https://review.opendev.org/c/zuul/zuul/+/857795
@iwienand:matrix.orgClark: sorry -- new version may be better23:59

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!