Thursday, 2020-11-19

corvus++00:03
*** tosky has quit IRC00:14
*** ikhan has joined #zuul00:35
*** webknjaz has quit IRC01:01
*** webknjaz has joined #zuul01:02
*** Goneri has quit IRC01:29
ianwsean-k-mooney/fungi : https://86c241e7a0127c842c18-9c306790d1324e3f8d887bee10e35650.ssl.cf5.rackcdn.com/763281/1/check/zuul-build-dashboard-opendev/2018ad2/npm/html/t/openstack/build/00ff397ca5374a0b9441036d43ee3416/log/controller/logs/screen-n-cpu.txt02:03
ianwshould be a deep link to the stie with the fix at the file we were looking at; probably worth a good double check to make sure02:03
*** hamalq has quit IRC02:09
*** piotrowskim has quit IRC02:20
fungi"not found"02:34
fungii've never had much luck deep-linking into the draft builds02:35
clarkbya you have to got to npm/html/ then search for the build uuid 00ff397ca5374a0b9441036d43ee3416 in the builds list02:36
clarkbthen you should be able to navigate to that path02:36
fungiyeah, that's what i'm (slowly) doing02:36
*** ikhan has quit IRC02:39
*** ikhan has joined #zuul02:39
fungidefinitely seeing the lines which lack severities now02:40
fungistill have to scroll all the way to the bottom to find the horizontal scrollbar though, i guess that's not fixed in master yet02:41
ianwyeah ,this was independent of the scrolling issues02:46
ianwmy opinion on that is that we should wrap the HTML view of the logs, and leave fixed width up to a raw view of the logs.  to me, that's consistent with what i've checked github and gitlab do by default.  but ... i many be a minority opinion on that02:48
*** zenkuro has quit IRC02:59
*** bhavikdbavishi has joined #zuul03:02
*** bhavikdbavishi1 has joined #zuul03:11
*** bhavikdbavishi has quit IRC03:13
*** bhavikdbavishi1 is now known as bhavikdbavishi03:13
*** bhavikdbavishi has quit IRC04:00
*** bhavikdbavishi has joined #zuul04:01
*** bhavikdbavishi has quit IRC04:27
*** bhavikdbavishi has joined #zuul04:27
*** vishalmanchanda has joined #zuul04:30
*** ianychoi has joined #zuul04:36
*** evrardjp has quit IRC05:33
*** evrardjp has joined #zuul05:33
*** bhavikdbavishi1 has joined #zuul05:55
*** bhavikdbavishi has quit IRC05:56
*** bhavikdbavishi1 is now known as bhavikdbavishi05:56
*** Phoenikzz has joined #zuul06:01
*** saneax has joined #zuul06:10
*** hamalq has joined #zuul06:25
*** sanjayu_ has joined #zuul06:37
*** saneax has quit IRC06:40
*** slaweq has joined #zuul07:01
*** bhavikdbavishi has quit IRC07:14
*** bhavikdbavishi has joined #zuul07:35
*** jpena|off is now known as jpena07:42
felixedelcorvus, ianw: Could you give me a short update on the current logviewer page issue? I find it hard to follow in the IRC history. Just one small comment: The state after https://opendev.org/zuul/zuul/commit/b4b5b9fd58dd5d5aeb9d32331e4882d7ef5faf06 was merged is the one where the layout is completely broken due to the scrolling "fix". So we shouldn't use that as reference.07:46
*** bhagyashris|off is now known as bhagyashris07:55
*** hashar has joined #zuul08:00
*** rpittau|afk is now known as rpittau08:03
*** sugaar has joined #zuul08:04
*** jcapitao has joined #zuul08:09
*** hamalq has quit IRC08:28
avasstobiash: memory usage is still stable just below 3Gb, maybe disconnecting from zookeeper was causing those memory issues08:30
*** nils has joined #zuul08:30
*** tosky has joined #zuul08:44
tobiashavass: could be, we have fixed one memory issue in that area but since zk disconnects are not really handled at all there might be more memleaks lingering around when a zk disconnect happens09:04
*** hamalq has joined #zuul09:29
*** holser has joined #zuul09:33
*** hamalq has quit IRC09:34
openstackgerritzbr proposed zuul/zuul master: WIP: Improve summary build layout  https://review.opendev.org/76333310:05
*** hamalq has joined #zuul10:07
*** hamalq has quit IRC10:11
*** hamalq has joined #zuul10:27
openstackgerritMerged zuul/zuul master: web: remove optional match on systemd regex  https://review.opendev.org/76328110:30
*** hamalq has quit IRC10:32
*** bhavikdbavishi has quit IRC10:54
*** hamalq has joined #zuul11:09
*** hamalq has quit IRC11:14
*** hamalq has joined #zuul11:30
*** zenkuro has joined #zuul11:31
*** hamalq has quit IRC11:35
*** hamalq has joined #zuul11:51
*** bhavikdbavishi has joined #zuul11:52
*** bhavikdbavishi1 has joined #zuul11:55
*** hamalq has quit IRC11:56
*** bhavikdbavishi has quit IRC11:57
*** bhavikdbavishi1 is now known as bhavikdbavishi11:57
openstackgerritSlawek Kaplonski proposed zuul/zuul-jobs master: [multi-node-bridge] Add script to configure connectivity  https://review.opendev.org/76265012:02
*** hamalq has joined #zuul12:12
*** hamalq has quit IRC12:16
*** wuchunyang has joined #zuul12:18
*** wuchunyang has quit IRC12:22
sshnaidmcan parent job be paused with zuul_return in post playbook? Works for me only for run playbooks12:28
*** holser has quit IRC12:29
*** jcapitao is now known as jcapitao_lunch12:30
*** hamalq has joined #zuul12:34
*** jpena is now known as jpena|lunch12:37
*** hamalq has quit IRC12:39
*** zenkuro has quit IRC12:42
*** zenkuro has joined #zuul12:43
*** ikhan has quit IRC12:53
*** rlandy has joined #zuul13:01
*** rlandy is now known as rlandy|rover13:01
tobiashsshnaidm: it can only pause after the run phase13:03
sshnaidmtobiash, ack, thanks13:04
*** jcapitao_lunch is now known as jcapitao13:07
*** rpittau is now known as rpittau|brb13:16
tobiashzbr, ianw, corvus: the ansi render change has a huge performance impact in our system. We have some jobs that produce ~40MB of json log and with that rendering the build page increased from 5s to 60s13:18
tobiashI also tried the re-ansi patch from tristanC (https://review.opendev.org/762759) and that fails with that job with 'too much recursion'13:19
zbrhmm...13:20
zbris this rendering happening all at once when the json is loaded or when it is displayed.13:20
zbrsomething is really fishy because I am sure that 40mg json would not load in 5s even without ansi.13:21
zbrtobiash: any link to such a job?13:21
tobiashin our private deployment13:21
zbrthat reminds me of the moment some people were complaining about jenkins console not loading, when they did cat the logs to stdout...13:22
tristanCtobiash: is there ansi code in the json?13:23
zbrtristanC: stdout/stderr lines are inside the json. that is where zuul is displaying them.13:23
tobiashnot that I know of, the failing task is a huge bazel log which has ~20MB13:23
zbrbut if someone did not disable stdout on ansible task that can produce this amount of data, it will still f*** the client, regardless if is ansi or not.13:24
zbrhow much stdout can someone produce until you count it as an DDOS for the CI system?13:24
tristanCtobiash: I can have a look at removing the recursion from re-ansi13:24
zbrtristanC: i guess that tobiash can produce you a test/benchmark suite :D13:25
avasstobiash: I think we might have the same problem13:26
zbri think it should be easy to make the ANSI rendering optional, at least user could enable/disable it. could prove a workaround and easy way to debug.13:28
zbrin fact we could make the renderer a dropdown and allow multiple behaviors.13:28
tobiashwe could also skip it if the output is above a certain threshold13:29
tristanCzbr: i also found that react-ansi fold is not working on https://zuul.opendev.org/t/zuul/build/8dfc41d53fc04e79ba6eb047ff935a14/console13:29
avassyep that 8Mb log took a long time to render13:29
zbrouch,... my Chrome is on its knees13:30
zbrclearly we need to do something about it. not acceptable13:31
*** jpena|lunch is now known as jpena13:32
zbri wonder if this has anything to do with extra code generated for the line numbers.13:32
zbrtristanC: do you know how to make a benchmaker for this case alone? it should be relevant as a worst-case scenario. (8MB).13:34
avasssurprisingly firefox seem to handle it better than chrome13:34
pabelangerzuul-maint: morning, I would like to request 0.0.1 tag of zuul-regsitry. I understand a lot of folks might be using the docker image, currently we are still consuming pypi artifacts.  The release would help us run zuul-registry (hopefully) today13:35
*** holser has joined #zuul13:35
*** zenkuro has quit IRC13:37
*** zenkuro has joined #zuul13:37
avassand ram usage spikes a lot13:39
*** hamalq has joined #zuul13:40
zbrhuge difference between chrom (30s)  and firefox (11s)13:41
zbr11s would probably count as acceptably for me, for this size, but clearly not 30.13:41
zbrwhat is worse is that chrome become sluggish even after loading it, trying to select lines and you will see how slow is moving13:42
zbrthis makes me think that it may be related to number of DOM nodes.13:42
avass43 seconds for that 8mb log on firefox for me, lots of color in it13:43
*** hamalq has quit IRC13:45
zbrcurrent implementation is also poor as it does use inline styles instead of classes.13:45
*** Goneri has joined #zuul13:47
avass4min10 seconds on chrome13:47
zbrtristanC: wow! you implementation loaded it in ~3-4s13:49
zbrclearly it does not produce line numbers, but i could live without them, at least for a while.13:50
tristanCzbr: that's suprising, the code is not even optimized. I think it could load even faster by replacing the recursion with an accumulator13:54
zbri may be missing something as I saved the file and is only ~1MB, and my expection was to be much bigger.13:58
fungiwould this be impacting the log view too, or just the summary/console views?14:00
zbrafaik, we did not touch the log-view, yet.14:02
corvustobiash, zbr, fungi, tristanC: i think we should go ahead and revert the ansi patch and continue working on this in review; we know that the current state is a performance regression from folks, and additionally, if we are going to release v4 in a couple of weeks, i don't want to release it with a half-implementation of ansi (ie, we need all the issues i raised on the change to be addressed)14:06
avassYep it's a bit unusable for a lot of people here at the moment, I'm surprised no one told us14:07
corvusfelixedel: of course, sorry -- i think the main problem with the log viewer page right now is that you can't use the left/right keyboard keys to scroll horizontally (but i believe you could in the distant past)14:08
corvusi'll prep a revert14:08
zbri am afraid that this will make the adoption impossible for two reasons: nobody has full ANSI implementation, nobody, and second: that seems to be a problem only on very high log sizes.14:08
corvuszbr: i'm not sure i understand 'nobody has full ansi implementation'14:09
zbrthere is not one ANSI specification, ANSI itselt has a huge number of extensions, variations and terminal behavior varies a lot from one terminal to another.14:09
zbrsaying "full ANSI implementation" is adding an impossible to achieve goal.14:10
zbrone could always find something that will not work14:10
corvuszbr: oh, are you quoting me?  that's not what i meant by "full ansi implementation".  i meant that the implementation within zuul needs to be complete.  for example, support for the log viewer page is missing.14:11
zbrmaybe we should start by setting some measurable goals, including performance.14:11
zbri propose something else: making the ANSI renderer configurable.14:12
corvusi think simple ansi color support is a decent start.14:12
corvuszbr: i don't think configurable is a good solution here14:12
zbrlike we have the auto-reload14:12
zbrwhat i am trying to explain is that without testing it in the wild we will not be able to find bugs. like the performance ones reported recently.14:13
corvusat least, not if the only reason to do it is because the code isn't performant.14:13
corvuszbr: i'm saying it can be tested while in review14:13
corvusand all of the issues i raised can be addressed and tested while in review14:13
avasszbr: those aren't very large logs for us :)14:13
corvusthe whole point of zuul's workflow is you don't have to merge broken changes just to test them14:13
fungiyeah, i'll admit when i +2'd it i only performed a cursory check of the draft render to make sure it actually did interpret the color sequences, i didn't think to try benchmarking it against various build results14:14
corvusso anyway, we found some issues, we'll back it out, and fix them, and then merge it14:14
zbrtristan patch does not seem to have the performance issue: https://review.opendev.org/#/c/762759/14:16
*** bhavikdbavishi has quit IRC14:17
zbri think that before doing more changes we should agree on what kind of behavior we want and what would be supported or not.14:19
zbrfirst: a maximum limit on number of lines to render, that applies to pure text also, even without ANSI.14:19
openstackgerritJames E. Blair proposed zuul/zuul master: Revert "Enable ANSI rendering via react-ansi"  https://review.opendev.org/76338014:20
corvuszbr: "no limit" is my answer to that.14:20
zbrsomeone i have the impression that some try to find any kind of reasons to revert ANSI related changes.14:22
zbrwe know very well that such a change can have a performance/memory impact, is normal. I asked to set some reasonable limits for evaluating what would be considered an acceptable cost or not.14:22
zbror else anyone can produce a DDOS sample change just to prove that in some cases it does not work.14:23
corvuszbr: i thought you just suggested a limit to the number of lines that zuul renders in general.14:23
corvuszbr: i didn't know you were asking for a limit for a specific test case.14:24
zbrcorvus: not necessarly, i am sure you will find some kind of limit logical, if I feed your browser 200mb .... you may not be happy.14:24
corvuszbr: i actually don't care14:24
tobiashI think a limit where above we fall back to the old rendering would be ok for me14:24
zbrbut we can easily make a decision to fallback to plain if count(lines)>5k.14:25
corvuszbr: i think that ansi rendering should be nearly as fast as the current rendering14:25
zbrcorvus:tell this to those that created alacritty terminal.14:26
corvuszbr: if we find the speed acceptable, that's fine.  i just don't think there should be a limit to the usefulness of zuul as a log viewer.  it's on the user not to produce or view logs larger than their browser can handle.  just like today.  if you want to load a 500mb file, we'll load it and render it.14:26
zbrfor the moment I think setting a fallback to plain is very easy to implement and should sort the loading issue.14:27
corvusi don't think that's how we should start14:28
zbri am not sure why tristanC patch has a -2 on it.14:28
corvusi think you should start with "make it as fast as it can be"14:28
corvusand then, when you have achieved that, if there are still issues, we can look into a cutoff or something14:28
* zbr someone needs a prize for setting goals that are not measurable14:28
corvuszbr: it seems whenever you say 'someone' you are referring to me obliquely.  that seems rude.14:29
corvuszbr: i'm trying to provide actionable advice to you14:29
zbrwhile i do not want to offend anyone, i personally find "make it as fast as it can be" requirement offensive.14:30
corvuszbr: how is that offensive?  tristanC has suggested a method which is faster than the current system and believes that it can be made faster.  so it sounds like investigating improving the performance is a route which could lead somewhere.14:31
tristanCfwiw i have a test case that reproduce the performance issue reported by tobiash here: https://softwarefactory-project.io/r/2010914:31
corvusso my suggestion is that you work on that to improve it.  i'm sorry i don't have hard criteria for what would be an improvement, but it's also not my responsibility as a reviewer to create detailed specifications for your changes.  but i think now that you've been made aware that performance is a concern, you should take that feedback, measure performance, evaluate whether it can be improved.14:33
zbrcorvus: would an increase of 20-30% load time seen as acceptable for under 20.000 lines?14:38
zbri do agree that 30s instead of 12s is not acceptable and this is what i seen on Chome. I do have a reference file to look at now.14:38
corvustobiash, avass: ^?  thoughts14:39
*** yolanda has quit IRC14:40
tobiashI'd be ok with a penalty of 20-30% (with our 40MB logfile)14:41
tobiashbut I'd also be ok to not ansi-render a log >5MB or so14:41
avassI think our users wants the ansi rendering and I agree that not producing too large log files to begin with is better, but I'm not sure if we can directly influence that in this case14:41
zbrthank everyone, these numbers are very important14:41
tobiashbut if we manage a penalty of lower than 20% or so I don't think there is a need to make such a switch14:42
avassI think it should work, at least as a starting point since 40s/2m,10s is way too much as it is at the moment14:42
avassthose logs are probably going to grow as well, but I'll try to see if we can reduce the sizes of those logs or at least split it into multiple tasks somehow14:43
corvusi'd like to either avoid the switch or make it as high as possible -- there's no correlation between log size and ansi usage (if anything, ansi logs are likely to be bigger!) -- it's purely a tradeoff for technical implementation reasons, so if we want to improve the ux, we should try to make it universal (within our ability to do so)14:44
avassI also have way too much to do at the moment :(14:45
corvusso maybe we aim for 20-30% penalty, and then find out at what size it gets very slow (very slow == 5 seconds? 10?) then add a cutoff for that size14:45
corvusby cutoff i mean disable ansi14:46
avassI think it would help if it could render it progressively somehow14:46
corvusthat's something to explore; with that we need to keep the 'ctrl-f' use-case in mind, but it's possible that "scroll to the bottom to render everything before searching" is a reasonable compromise14:47
zbrcorvus: i totally agree with keeping the search in page usable, very important feature.14:49
zbrI need feedback on this change (left is new, look around space and guid): https://sbarnea.com/ss/Screen-Shot-2020-11-19-14-49-10.png14:50
zbrif you click the guids and copy text it will copy the entire text, ellipses are added by browser, the full value is inside the page.14:51
*** rpittau|brb is now known as rpittau14:51
avassit doesn't have to block it from rendering until the user scrolls down, if it could split the log into chunks and render each chunk in order I think it could feel more responsive14:52
avassbut that might be confusing since ctrl-f won't work until all chunks are rendered14:53
corvuszbr: lgtm14:54
corvusavass: maybe with a spinner that would be ok14:54
corvuszbr: you're still planning on moving the times over too, right?14:55
zbrthis will allow me to move the time fields to first columns without making it worse than it is now).14:55
corvus++14:55
zbryes, but I will move the time when I move the artifacts.14:55
corvusmakes sense14:55
zbri am trying to do them in easy to review parts14:56
corvusi think this could all be one change, but whatever works for you14:56
zbri was bit disappointed that my A+B  proposal around the branch and pipeline were not popular as they would have removed two rows from view.14:56
zbrand I do think that the colored label is more visible than a list item anyway.14:57
zbrmaybe I will make a POC to show it after I do the rest of them.14:57
corvussounds reasonable14:57
zbrthe most visible part of the page is the green line14:57
zbr(well red for failures)14:57
zbrwe could even use colors to distinguish between pipelines. same kind of approach could be used for displaying the branch.14:58
zbrevery branch that is not master could get a different color, making hard to confuse something run on default branch (master/main) from somethign else.14:59
openstackgerritzbr proposed zuul/zuul master: Improve summary build layout  https://review.opendev.org/76333315:00
*** bhavikdbavishi has joined #zuul15:01
tristanCtobiash: fwiw i think https://softwarefactory-project.io/r/20109 should fix the recursion error, i'll cut a 0.2.0 release shortly15:04
tobiashtristanC: cool, then I can test it locally15:04
openstackgerritTristan Cacqueray proposed zuul/zuul master: web: replace react-ansi component with re-ansi  https://review.opendev.org/76275915:09
tristanCtobiash: here you go^15:09
tristanCit is still not optimized though, i just tweaked the recursion to use an accumulator and trigger the TCO15:11
fungizbr: using only colors to differentiate is bad for accessibility, but if we're coupling color with text that seems acceptable15:12
tobiashtristanC: are you sure that this is right? https://review.opendev.org/#/c/762759/7..8/web/yarn.lock15:16
tobiashthat disagrees with the package.json15:16
tristanCoops, forgot to commit the yarn lock15:16
openstackgerritTristan Cacqueray proposed zuul/zuul master: web: replace react-ansi component with re-ansi  https://review.opendev.org/76275915:16
*** tosky has quit IRC15:18
tobiashtristanC: is that expected to not produce black console like background?15:20
tristanCtobiash: yep, this should be set by the parent component15:22
tobiashtristanC: so it actually looks like without the ansi patch if there is no ansi stuff in the text?15:22
tristanCand i'm not sure we should do black by default, it's less accessible than white background15:22
*** tosky has joined #zuul15:22
tobiashI just want to verify that my local test uses it ;)15:23
fungithe black background will probably be more appropriate with colorized text, unless the foreground palette is shifted to be distinguishable on it15:23
tristanCtobiash: it shouldn't interfer if there is no ansi code15:23
tobiashlooks like it loads as fast as with no ansi15:24
fungibut i honestly don't care all that much which background color it ends up with as long as non-colorized text is readable, i don't personally expect to be looking at a lot of logs with embedded ansi color sequences15:24
corvusyeah, i suspect that a dark bg (probably not black) would be okay and a survey of the literature would be helpful15:25
tristanCfungi: a better palette would be a nice addition15:25
*** tosky has quit IRC15:26
corvusfungi: want to take a look at https://review.opendev.org/763380 ?15:26
openstackgerritzbr proposed zuul/zuul master: Build summary: moved artifacts to middle column  https://review.opendev.org/76339515:27
tristanCcorvus: https://ux.stackexchange.com/questions/53264/dark-or-white-color-theme-is-better-for-the-eyes has some link that indicate light background are better15:29
tristanCs/better/more accessible/15:29
tobiashtristanC: I think I know why that renders so fast, it renders only the last line15:29
corvustristanC: nice, looks like some good material linked there15:30
tristanCtobiash: oh my :-)15:31
fungiwhen i was younger i knew folks who swore "troglodyte mode" (turn off the lights, invert the terminal colors, wear sunglasses) significantly reduced eye strain, but i could never get used to it personally15:31
avassfungi: wait, with invert terminal color you mean a dark room with a super bright screen?15:37
zbrselling PC glasses was indeed a good business15:41
openstackgerritDavid Moreau Simard proposed zuul/zuul master: DNM: Test zuul-stream-functional with up-to-date ara  https://review.opendev.org/69462215:49
*** tosky has joined #zuul15:50
tobiashcorvus: looking at this ^ do we still use ara somewhere in zuul or is that obsolete with current zuul-web?15:52
dmsimardo/ I don't think we should merge that at all but I wanted to show someone what it would roughly look like15:53
tobiashdmsimard: no offense, that just reminded me about that topic ;)15:54
dmsimardthe current implementation of ara in zuul is unfortunately outdated and it's since then diverged between 1.x and the zuul-web/zuul-json callback15:56
zbronce i finish the summary page changes, I will be very happy to focus on removing the popup from the console,... every time i click it it gives me motion sickness.15:58
zbrthat should have being just an expand option, not a popup.15:58
dmsimardfwiw I see many opportunities to collaborate but I don't feel like ara should be "hardcoded" in zuul at all15:59
tobiashwe get an error in our logs about ara in every playbook zuul executes: Ansible output: b"'ansible.plugins.callback.ara_record' has no attribute 'CallbackModule'"15:59
tobiashso I wonder if we should fix that or just remove ara from zuul15:59
dmsimardthat's an odd error, there's no such thing as ansible.plugins.callback.ara_record16:00
*** vishalmanchanda has quit IRC16:00
dmsimardara_record is in fact an action plugin which I don't believe zuul enables because it doesn't add the action plugins path to ANSIBLE_ACTION_PLUGINS16:01
tobiashansible skips that plugin then, so nothing serious, but spams our logs16:01
avassI think it should be possible to configure ara with the ansible_callback section instead of hardcoding it16:01
avassmaybe it needs an update to handle callbacks that aren't builtin though16:01
dmsimardavass: yeah, I've seen those bits and indeed, it's only for whitelisting callback plugins that ship with ansible16:02
dmsimardanother issue (and a facepalm is appropriate here) is that the ara callback picks up config from the [ara] block, not [callback_ara]16:03
tobiashzuul explicitly adds the ara callbacks btw: https://opendev.org/zuul/zuul/src/branch/master/zuul/executor/server.py#L86516:03
dmsimardthat's part historical because that's how it was in 0.x and [callback_*] was not a thing in past ansible versions16:03
avassI think when this was last discussed the idea was to handle it when zuul had support for ansible collections16:04
dmsimardthat's a rabbithole :)16:05
dmsimardpart of the problem with collections is that they do not manage python dependencies16:05
dmsimardso if you have ansible plugins that require certain python deps to be installed, you need to manage the installation separately16:06
pabelangerexecution environments from ansible are to fix python deps16:06
pabelangerthey will also use bindep for OS package management16:06
pabelangerthat is what I am testing now16:06
dmsimardpabelanger: realistically not everyone is going to be using execution environments though16:06
avassyeah I started working on it here: https://review.opendev.org/#/c/723071/6 and that would work the same the environment varaibles for python deps do16:06
pabelangerdmsimard: true, but moving forward that is basically what people want to support16:07
dmsimardmoar containers16:08
pabelangerhas anyone started work to enable 2.10 support in zuul jobs16:08
pabelangererr16:08
pabelangerzuul it self16:08
pabelangerthe good news, if we wanted, we could ship our own stripped down ansible version now16:09
pabelangerbut, that would be a lot of work to manage ansible16:09
tobiashpabelanger: wip: https://review.opendev.org/75745216:09
tobiashnot fully functional yet, feel free to take over if you want16:10
avassI think it would be reasonable to have a couple of default installed collections so it's easier to use 2.1016:10
pabelangeravass: if you pip install ansible 2.10, you shouldn't need to manually install any collections16:11
tobiashansible is ansible-base plus all the collections that were builtin earlier16:11
pabelangerright16:12
tobiashat least what I've understood16:12
avasspabelanger: I think I had to install the crypto collection16:12
pabelangerand ansible-base is becoming ansible-core16:12
pabelangeravass: yah, it is possible some collections are missing, depending on if they didn't get packaged in time16:12
pabelangerI'm not sure what got removed16:12
tobiashpabelanger: I think the 2.10 change still has problems with the plugin hooks since they can now be namespaced by the collection name16:13
openstackgerritTristan Cacqueray proposed zuul/zuul master: web: replace react-ansi component with re-ansi  https://review.opendev.org/76275916:13
pabelangertobiash: yah, that is possible16:13
tristanCtobiash: i think i got this, just forgot to return the accumulator at the end of the document :-) fwiw here is the fix in 0.2.1 https://softwarefactory-project.io/r/#/c/20112/1/src/Ansi.re16:15
openstackgerritPaul Belanger proposed zuul/zuul master: WIP: Support ansible 2.10  https://review.opendev.org/75745216:16
*** evrardjp has quit IRC16:17
tobiashtristanC: ok, so that makes 3.5s with legacy, 60s with the current ansi and 7s with your ansi in my local testing16:19
*** wuchunyang has joined #zuul16:19
tobiashso penalty is ~100% with with my 40MB logfile acceptable for me at least16:20
*** hamalq has joined #zuul16:20
avassyep that sounds like it should work16:20
avassand could probably be improved by not rendering everything in one go16:20
tobiashI tested only loading the task summary so far though16:21
tristanCtobiash: the trick is that we can't simply look for escape sequence because js string are unicode, thus we have to call codePointAt for each characters. There may be some optimization to split the sequence (and avoid cutting through emoji are extended character set), but that may be too premature16:22
tristanCi can have a look to speed things up though16:23
*** wuchunyang has quit IRC16:24
tobiashconsole tab is 7s no ansi vs 14s new ansi vs browser freeze old ansi16:24
*** hamalq has quit IRC16:25
tristanCalso the implementation supported nested escape sequence such as `<bold>text <red>text</red> text</bold>` which doesn't seem popular, dropping nested style could improve processing speed too16:26
tristanCsupports*16:27
fungiyeah, ansi handling is hairy, i've implemented my own in python as well, you have to work on the stream as a bytestring because ansi escapes aren't valid utf-8 encoding so you can't just treat the data as a string, and also you need a state machine because it's possible for a sequence to set, say, red color and then never set back to unstyled, so you'd have an effectively unterminated span in the resulting16:27
fungihtml. as a result you can't render later data in the stream without scanning everything which comes before it and remembering prior state16:27
zbrimho, nesting should not be supported, we should just flat it.16:28
fungiyou can't really do 4-bit color if you don't support composition of escape codes, because it's implemented as 3-bit color plus a bold bit in separate values16:29
fungii suppose you could assume that streams will always either set the color and bold within one escape sequence instead of in separate sequences, but i don't know that can be assumed16:31
zbrwhat i wanted to say is that the final outcome should not nest html elements. each time a new color starts, the previous one should end.16:32
tobiashtristanC: I've added my quick test results to your change16:32
fungiansi color doesn't have concepts of "nesting" or "containers" because it's literally just commands saying "now change the text color to red" and "now change the background color to green" and "now set the font to bold" and "now unset all styles"16:33
fungizbr: so if you have a sequence which says "set text color red" and then later "set font style bold (to get bright red instead of dark)" the original span with color=darkred should be closed and a new span with color=lightred should be started?16:34
openstackgerritMerged zuul/zuul master: Revert "Enable ANSI rendering via react-ansi"  https://review.opendev.org/76338016:35
zbrfungi: when doing the conversion we clearly need to keep the state, but when a change occurs, we can just close the previous span and start a new one mentioning all styles that are to be applied to the new one.16:36
zbrthis means that you may setup background color once per line in ANSI but the final html may have multiple sequential spans that will all mention the background color.16:36
zbrand each span will be a section that has the same style, closing it only when style changes.16:37
fungialso i'm not so sure about actually interpreting \E[1m as a literal sgml strong/bold but rather as a color shift16:38
fungiif you treat it as actually bold font then you only have 3-bit color not 416:38
fungiwhen you mention "once per line" are you assuming all color values will be reset at a newline, not carried over like the terminal would do?16:39
fungior does setting a color in one line get carried through into subsequent lines until you change it?16:40
avasstobiash, tristanC: yep that's a lot faster. but the colors are a bit unreadable16:40
zbravass: i already started working on replacing the colors16:41
fungipresumably that's doable with some simple classes in css16:41
avassand I see a couple of '[m[K [Knote: [m[K' that doesn't get rendered16:41
fungiavass: any idea what the raw byte representations for those are?16:42
*** jpena is now known as jpena|off16:42
zbrfungi: yes, css classes, but not as easy as you may think.16:43
zbrhttps://github.com/pycontribs/ansi2html/blob/master/tests/produce_headers.txt16:43
zbras you can see there are lots of classes to generate16:44
avassfungi: something like this: 1b[01;36m1b[Knote: 1b[m1b[K16:52
*** rpittau is now known as rpittau|afk16:52
avasscomparing to the current ansi it doesn't seem to do anything at all, maybe it's just ignored by react-ansi16:53
fungihuh, wonder what [K is doing in there16:54
fungi\E[K i mean16:54
avassyeah I'm not sure16:54
fungiK is 0x4b...16:55
tristanCavass: the default color can be improved indeed, here is how they are defined: https://github.com/softwarefactory-project/re-ansi/blob/master/src/Ansi.re#L3516:56
avasstristanC: dim yellow  became light magenta, and there's some magenta on red background as well :)16:58
tristanCavass: \E[K is not matched yet, it seems like this means to kill the rest of the line, and i wonder how we should interpret this in console log, only \E[1K is matched16:58
fungiavass: K in a csi sequence is "erase line"16:59
tristanCavass: i know they are not ideal :-)16:59
fungier, "erase in line"16:59
avassuh I mixed taht up, the yelow stayed yellow but it's bright16:59
fungiavass: but if there is no value supplied before the K then it's erase from here to the end of the line16:59
avassfungi: yeah that's what I assumed, but I'm not sure why it would need to do that17:00
*** hamalq has joined #zuul17:01
avassoh I think cmake could be printing it's progress, then erasing that to overwrite with logs17:01
fungiavass: some command line tools do that to maintain an updating status line17:01
avassyeah exactly17:01
fungito avoid scrolling the buffer17:01
zbrdocker build new TUI is cool, but it may prove a nightmare for CI usage, see https://asciinema.org/a/37399017:11
zbrbut AFAIK, this should happen only on interactive terminals, and it should avoid rewriting for non ttys.17:12
zbravass: fungi tristanC: my first two changes on the summary page are ready for review: https://review.opendev.org/#/q/topic:ux/summary+(status:open+OR+status:merged)17:17
avasszbr: I hope that it shows more lines if there's an error17:19
avassand to be honest I feel more comfortable if it didn't hide loglines like that17:20
avasszbr: I have a very strong feeling people are not going to understand that you can still copy the entire uuid if they're hidden like that17:22
zbrWe cam easily add a tooltip hint. My plan is to add a button near it once I get a response from upstream17:23
zbravass: see https://github.com/patternfly/patternfly-design/issues/95617:24
avassI think it could work if there was a button to copy17:24
zbrI tried adding the copyclipboard element but is too bulky.17:24
avasszbr: can you clarify 'reduce spacing between list items'?17:25
zbris visible in screenshot, it removes extra spacing between them in order to make total height lower17:26
avassoh there was a screenshot17:26
zbrin first comment, i did not want to include personal links into commit message17:27
zbrimho we do not need to document the copy, anyone that did a double click and copy will see the full text.17:28
avassI like the first change, except that I expect that some people are going think that you can copy the entire uuid is unintuitive.17:29
avassI feel like the second change makes the information a bit too dense but maybe it's because I'm not used to it17:29
avassbut that's just all the information on the left hand side, having the artifacts visible is great17:31
avassI think I would have swapped the artifacts and the information on the right hand side17:32
*** jcapitao has quit IRC17:33
corvusi think we need the clipboard copy button; i agree otherwise it's doubtful people will understand that the whole thing is there17:38
corvusof course, copying the uuid is kind of an advanced user workflow; maybe it's not important?17:40
avassthat's true17:41
pabelangercorvus: clarkb: I looked into nodepool release notes and think we are safe to tag afe86884d291cf873b855a76e84ad209e0560ab2 as 3.14.0. Looking to pick up fixes for https://review.opendev.org/752724/ and recent nodescan changes for FIPs mode17:41
avassin that case I would probably but them below the timestamps or somewhere else less important, but yet easily accessible17:42
corvuspabelanger: thanks; i can probably do that in a few hours17:42
pabelangercorvus: cool, thanks. Would that be the same for zuul-registry 0.0.1?17:42
corvuspabelanger: i reckon so -- is everything set up for that now?17:43
pabelangercorvus: it should be yes17:43
corvusk17:43
pabelangercorvus: actually, do we also want to tag docker image too?17:43
pabelangeror just latest17:43
corvuspabelanger: i think yes tag docker too17:44
pabelangerkk17:44
pabelangerlet me get that change up17:44
corvusk.  biab.17:44
*** hamalq has quit IRC17:45
*** hamalq has joined #zuul17:45
openstackgerritPaul Belanger proposed zuul/zuul-registry master: Add upload-docker-image release job  https://review.opendev.org/76341917:47
pabelangercorvus: ^should be right, copypasta from zuul / nodepool job17:48
pabelangercorvus: also for your review queue, I was hoping we could support something like https://review.opendev.org/761756/ in zuul. For zuul.a.c, we often have to manually delete tags that upstream repos manually delete or worst retag with different sha117:51
fungijust a heads up, for gerrit users here who aren't following repo-discuss, all gerrit versions 2.14 and later have urgent security updates published in the past 24 hours: https://groups.google.com/g/repo-discuss17:53
clarkblater meaning >=2.1417:55
*** hamalq has quit IRC17:56
*** hamalq has joined #zuul17:56
*** sanjayu_ has quit IRC18:08
corvusswest: why did you abandon 761756?18:18
corvuspabelanger: ^18:18
pabelangerunsure right now, was going to ask to restore it if you were okay with approach18:19
corvuspabelanger: see comment on 41918:20
pabelangercorvus: good point18:21
openstackgerritPaul Belanger proposed zuul/zuul-registry master: Add upload-docker-image release job  https://review.opendev.org/76341918:22
*** bhavikdbavishi has quit IRC18:30
corvustristanC: ^ can you +3 that?19:02
tristanCcorvus: i left a comment as i can't tell what the jinja/yaml is actually doing19:10
corvustristanC: i wrote that :(  it's in all the zuul repos.  the comment above tries to explain what it does.19:10
tristanCcorvus: oh so the &imagetag anchor is used in another file perhaps?19:12
pabelangeryah, left comment. It is copypasta19:12
corvustristanC: oh! i get it, sorry, yeah we don't actually need the anchor there19:12
corvusit's in the zuul/zuul one because it is used in multiple places19:12
corvusbut it's a singleton here, so the anchor is not strictly necessary19:13
corvusi see now you have 2 issues really19:13
corvusso yeah: a) the anchor isn't necessary, i could take it or leave it here.  b) the jinja is ugly: i don't disagree, but i also don't want to drive changing it right now because it's well established and we know it works and there's a comment above explaining it.19:14
tristanCalright, i didn't realized that was copypasta, perhaps a note to indicate where this is coming from would be useful for future maintainance19:14
corvus++19:15
corvus'this cantrip is used in all zuul repos' or something19:15
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: added lgtm with basic docs  https://review.opendev.org/76342819:15
mnasercorvus, pabelanger, tobiash and other github-interested folks, i added a scaffolding of lgtm that we setup in our zuul here ^19:16
mnaserit works fine for us right now except comments inside code review are not parsed (so only real comments)19:16
mnaserand counts from most recent commit, etc19:16
mnaserit doesnt have much testing, and the docs are minimal at best.  i know folks were interested in using something like this, i am ENOTIME to actually shape it into something shippable19:17
mnaserbut anyone can feel free to take over the patch and land it to zuul-jobs (or make it more of a native zuul feature) or whatever y'all think is best :)19:17
pabelangermnaser: how does lgtm enforce number of reviewers? Is that config at app level per repo?19:17
mnaser(sorry, didn't mean to do the whole "throw code across the wall" but i am quite sucked into a few things but this is better than nothing)19:18
mnaserpabelanger: it does not actually, it's similar to gerrit's "trusted system"19:18
mnaserthe same way anyone can single approve inside gerrit, you can do inside this19:18
corvusmnaser: thanks -- this way at least it's there if someone wants to pick it up, or maybe you can get back to it in $time :)19:18
pabelangermnaser: ack, that could be handled at branch protection level too19:18
pabelangerbut not sure how lgtm app plays with that19:19
mnaserpabelanger: correct -- ah one more thing i should have added is you need branch protection too seutp19:19
pabelangerbut, thanks!19:19
mnaserits not even an app, it purely is a pipeline19:19
pabelangerI will hack on it for sure19:19
mnaserlet me include a screenshot19:19
tristanCcorvus: i'm not sure if you are familiar with this web site: https://matrix.yaml.io/, but it seems like that anchor syntax is not fully supported: https://matrix.yaml.io/details/ZH7C.html19:19
mnaserpabelanger this is what our branch protection rules look like with it https://usercontent.irccloud-cdn.com/file/1hpeRoM5/image.png19:20
pabelangermnaser: ah, thanks!19:20
pabelangermnaser: why no gate check?19:20
corvustristanC: do i understand that you're saying that "perl-tiny.json" doesn't implement it?19:20
mnaserpabelanger: i should probably add it there, probably in my debugging, because the gate was a tricky one get to enqueue19:21
pabelangermnaser: kk19:21
mnaserlet me add the gate pipeline19:22
mnaserpabelanger: oh the pipeline is very simple, its the github branch protection that enforces it doesnt merge/queue before check and lgtm are passing19:22
tristanCcorvus: there are other test cases too, what i'm saying is that such features may break non libyaml based parser, so if an anchor is not needed, then it sounds better to not use it19:22
pabelangermnaser: I also wonder if you could add /lgtm trigger in zuul pipeline, to then enqueue job into lgtm pipeline19:23
tristanCcorvus: it's the first time i ever see an anchor starting on a new line for a string19:23
corvustristanC: i guess i don't understand that page then, because my interpretation is that the only one that doesn't support it is yaml::tiny for perl19:23
pabelangermnaser: but again, thanks! I'll hack on this for sure to test19:23
corvustristanC: i understand the sentiment, however as a rule we use anchors fairly extensively in the zuul project's .zuul.yaml files, so i don't think we should adopt that practice generally.   i agree that it's not necessary, but i don't think it's worth fretting over since, after all, it made copy-pasta easier19:25
ianwcorvus: web things; were you ok with the final state reached in https://review.opendev.org/#/c/763126 for the build/buildset pages -- that stacks on felixedel's original to make both the name and status clickable, and removes the search icon19:25
pabelangermnaser: oh, I think I am understanding. There is no lgtm app on github you install, you either use existing zuul github app (or create new one) and the job in the lgtm pipeline does the magic19:27
corvusianw: yes.  left a comment on there.  do you think we can squash those?19:29
ianwcorvus/felixedel: i am happy for that stack of 3 (base work, clickable links, remove icon) to be squashed if felixedel is; the basic stuff is all his work19:30
tristanCcorvus: i wonder if that extensive usage of anchor and merge in zuul.yaml could be a motivation for a new zuul `vars` object to be used for sharing variables between jobs19:32
corvusianw: sorry my comment was on 76258819:32
corvustristanC: could be?  but there's a reason we're using anchors here in that the only duplication is deep inside a data structure which is otherwise not duplicated19:33
corvusso i mean, there's a real danger it ends up looking like yaml anchors19:34
tristanCcorvus: i meant something that could work accross file and projects19:34
openstackgerritMerged zuul/zuul-registry master: Add upload-docker-image release job  https://review.opendev.org/76341919:35
ianwcorvus: i can try an underline in a follow-on and we can compare.  i did originally and i thought it didn't look very good19:35
corvusianw: sgtm.  i thought there was a chance of that (thus the +2 with comment)19:35
ianwcorvus: while talking web stuff, another that hasn't had much comment is a title-bar for the tenants page @ https://review.opendev.org/#/c/756941/19:36
tristanCianw: there is also https://review.opendev.org/759969 to fix filter accross tabs (reported by dmsimard)19:37
ianwtristanC: oh sorry i thought we fixed that.  maybe i just confirmed the problem, i definitely remember playing with that.  will review19:38
corvuswe *just* added the localstorage (cc zbr)19:38
corvusi guess the difference with the old cookie one is that the cookie only mattered when you loaded the page, and now this updates in real time across tabs?19:39
ianwsomebody posted like a gif or a recording of it happening, was that for this change?19:41
corvusianw: i don't think that's necessary, you can confirm by visiting zuul.opendev.org19:42
ianwhttp://eavesdrop.openstack.org/irclogs/%23zuul/%23zuul.2020-10-27.log.html#t2020-10-27T20:46:0319:43
ianwthis is the conversation i'm thinking of19:43
ianwand https://imgur.com/IjTf9om is the gif i'm thinking of19:43
corvusianw: thanks for the refresher, that saved a lot of typing :)19:45
corvustristanC: lgtm19:45
corvuspabelanger: commit ea4b756f70a41e51c7dc0aed7f17df31da461c91 (HEAD -> master, tag: 1.0.0, origin/master, origin/HEAD, refs/changes/19/763419/2)19:46
corvuspabelanger: that look right to you?19:46
pabelangermnaser: okay, so /lgtm is +1 in gerrit, and /approve is +2 right?19:46
pabelangercorvus: zuul-registry, lgtm19:47
corvuspabelanger: and for nodepool: commit afe86884d291cf873b855a76e84ad209e0560ab2 (HEAD -> master, tag: 3.14.0, origin/master, refs/changes/36/762836/1)19:48
corvuszuul-maint: ^ anyone else want to double check those release shas for zuul-registry and nodepool?19:48
pabelangercorvus: lgtm19:49
mnaserpabelanger: /lgtm is like +2 in approve, /approve is like workflow19:51
pabelangerah right19:51
pabelangerthanks19:51
openstackgerritSimon Westphahl proposed zuul/zuul master: Prune git tags on fetch  https://review.opendev.org/76175619:53
swestcorvus: pabelanger: ^ restored it. not sure if we need to add a fallback for older git versions.19:55
pabelangermnaser: for github app, are you sharing you zuul.conf github app key, or did you create a new one?19:56
mnaserpabelanger: yes that is correct wrt lgtm :)19:57
mnaserpabelanger: and same app in our case19:57
pabelangerpart of me thinks a 2nd key is the way to go, as not to expose it on node19:57
pabelangeror some how expose the ability for a job to zuul_return zuul comment on PR / change19:58
*** hashar has quit IRC19:58
openstackgerritPaul Belanger proposed zuul/zuul master: WIP: Support ansible 2.10  https://review.opendev.org/75745220:07
mnaserpabelanger: btw the job is actually a 0 node job :)20:10
mnaserso its quite fast20:10
pabelangermnaser: yah, we do that for unlabel-on-push jobs20:11
corvuspabelanger: if it's zero-node, it may be relatively safe to use the same secret.  i mean, a different one may be better.  just pointing out that writing a secret out to the executor isn't the same exposure potential as to a node.20:12
pabelangercorvus: yup, agree20:13
pabelangerI'm not sure we have exposed control plane secrets into our zuul yet20:14
*** wuchunyang has joined #zuul20:21
*** wuchunyang has quit IRC20:26
mnasercorvus, pabelanger: having said that, i think with github you can use different certs for the app20:38
mnaserso you can revoke specific ones20:38
mnaseryes, you can have multiple secrets for teh same app20:41
mnaseralso obviously we have lgtm inside a trusted repo too20:41
corvusmnaser: can you expand on that last comment?20:42
corvus(i don't fully understand what's in a trusted repo)20:43
mnasercorvus: sorry, config-project is the right term :)20:43
mnasermy brain thinks untrusted project => opposite is trusted :p20:43
corvuswell, that part i understood :)20:43
corvusi meant i don't understand what specifically is in that repo20:43
mnaserah, yes, the pipeline / job / secret / etc20:44
mnaserso we simply 'attach' that extra repository into config-projects and it starts working20:44
corvusi think the only thing you need in a config project (which runs in the "trusted" execution context ;) is the job definition+playbook.  (ie, not the role, that can be in an untrusted project like zuul-jobs)20:44
corvusmnaser: oh i see, you bundle up the those 4 things as a unit in a purpose-build git repo which you attach to whatever tenants want that feature20:45
corvusmnaser: ++20:45
fungithat's an interesting approach to modularity20:45
mnasercorvus: right, yes, so i don't have to worry about any weird things being introduced into this equation20:46
corvusit's a good approach20:47
mnaserideally a nicer thing to do would be20:47
mnaserallow us to also use zuul_return in a way to post the comment (but we still need api keys to get the comments for private repos)20:48
mnaserif we can get all the comments fed in (which might start to be asking for a lot) then this can be entirely native without creds20:49
corvusmnaser: iiuc the bit missing from zuul_return is ability to leave a top-level pr comment (only line comments are currently supported)?20:51
mnaseri can honestly imagine zuul_return leaving a commenet can introduce a lot of really interesting use cases20:52
mnaserlike for example things like terraform users who want a plan left as a comment, and if its added in a generic way, it'd work regardless if you use gerrit/github/gitlab/etc20:52
corvusmnaser: ^ can you confirm my understanding of what you're suggesting?20:52
mnasercorvus: well that would help with _one_ part of it, but not all of it (im thinking a way to actually parse all the comments of a change)20:53
mnaserso i can for example loop over zuul.change.comments20:53
corvusmnaser: that latter as a pipeline trigger or requirement?20:53
mnasercorvus: as a job variable20:53
corvusmnaser: gotcha20:54
corvusmnaser: both of those seem reasonable and good ideas at first glance20:55
mnasercorvus: yeah, and with both of these, i think it would entirely eliminate the need for app creds to be present in the job20:55
openstackgerritSlawek Kaplonski proposed zuul/zuul-jobs master: [multi-node-bridge] Add script to configure connectivity  https://review.opendev.org/76265021:01
*** nils has quit IRC21:23
openstackgerritIan Wienand proposed zuul/zuul master: web: Add optional link prop to title-with-icon and results  https://review.opendev.org/76347122:04
ianwcorvus / felixedel: ^ that makes things underlined, and is probably more react-y overall22:05
corvusianw: thx22:13
corvuspabelanger: https://pypi.org/project/zuul-registry/1.0.0/ exists22:26
corvuspabelanger: https://hub.docker.com/r/zuul/zuul-registry/tags also looks correct22:27
corvuspabelanger: you got it in one!  awesome!  thank you :)22:27
corvusi think that's a new record score for "release job golf" :)22:28
corvusi just pushed nodepool22:29
*** armstrongs has joined #zuul22:39
*** armstrongs has quit IRC22:45
*** Goneri has quit IRC23:10
*** hamalq has quit IRC23:53
*** hamalq has joined #zuul23:54

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