Wednesday, 2024-01-17

-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 905848: Ignore soft dependencies when getting parent jobs https://review.opendev.org/c/zuul/zuul/+/90584810:46
-@gerrit:opendev.org- Bernhard Berg proposed: [zuul/zuul] 905700: Add a zuul unreachable variable to indicate if a host node is unreachable https://review.opendev.org/c/zuul/zuul/+/90570012:00
-@gerrit:opendev.org- Zuul merged on behalf of Simon Westphahl: [zuul/zuul] 905848: Ignore soft dependencies when getting parent jobs https://review.opendev.org/c/zuul/zuul/+/90584816:56
@fungicide:matrix.orgmild concern about the state of the `tox` abstract job in zuul-jobs (or `tox-siblings` role) which came up in a discussion in the #openstack-tc channel on oftc... i did not realize that adding depends-on to a change would automatically act as if the project that change is associated with getting effectively added to required-projects. `tox-siblings` uses that as a cue to install the project from source instead of the latest release on pypi, which would mean that a change in project "a" can depends-on a change in a dependency "b" and merge the change for "a" if the change for "b" merges even though without depends-on the job would test with the released version of "b" instead, deadlocking further runs for "a" until "b" gets a new release on pypi. is that really the case?19:36
@fungicide:matrix.org * mild concern about the state of the `tox` abstract job in zuul-jobs (or `tox-siblings` role) which came up in a discussion in the #openstack-tc channel on oftc... i did not realize that adding depends-on to a change would automatically act as if the project that change is associated with is effectively added to required-projects. `tox-siblings` uses that as a cue to install the project from source instead of the latest release on pypi, which would mean that a change in project "a" can depends-on a change in a dependency "b" and merge the change for "a" if the change for "b" merges even though without depends-on the job would test with the released version of "b" instead, deadlocking further runs for "a" until "b" gets a new release on pypi. is that really the case?19:37
@jim:acmegating.comfungi: it did not do that in this change: https://zuul.opendev.org/t/zuul/build/da00f7b1b5824197984ebb6711e88db5/log/zuul-info/inventory.yaml#14419:49
@jim:acmegating.comfungi: so to be clear, i believe the answer to "is that really the case?" is "no".19:49
@fungicide:matrix.orgthanks. Clark found an example where it seemed to: https://zuul.opendev.org/t/openstack/build/5eda057f8cb74be99534739252758610/log/zuul-info/inventory.yaml#241-25019:50
@clarkb:matrix.orgthat one also sets required to false19:50
@clarkb:matrix.orgbut I didn't notice that initially. That said I don't think siblings handling checks that flag19:51
@clarkb:matrix.organd I'm not sure it should?19:51
@jim:acmegating.com`    projects: "{{ zuul.projects.values() | selectattr('required') | list }}"`19:51
@jim:acmegating.comfrom siblings ^19:51
@jim:acmegating.comit does and should19:51
@fungicide:matrix.orgyes, not doing so would create the deadlock loophole i was concerned about19:51
@clarkb:matrix.orgcorvus: aha I missed that because I wasl ooking in the python library code not the tasks19:52
@fungicide:matrix.orgthanks corvus ! i am far less worried now ;)19:52
@clarkb:matrix.orgthe reason I'm not sure it should is that whether or not a project is required is insufficient info to avoid fungi's concern19:52
@clarkb:matrix.orgyou can require the project and install it from releases from pypi and then break in the same scenario19:52
@fungicide:matrix.orgif a project is required then it will always be tested with the source branch state19:52
@clarkb:matrix.orgit isn't actually adding any safe guards other than you have to do extra work to make depends on work with siblings. But maybe that is sufficient to avoid this problem in more situations19:53
@jim:acmegating.comyeah but that's a permanent job configuration/design issue, not a transient one from a casual depends-on19:53
@fungicide:matrix.orgso consistency is maintained even after the depended-upon change merges19:53
@clarkb:matrix.orgok thats a good point. You can still trip but every job has the problem and it won't change19:53
@jim:acmegating.com(this sort of goes to why some repos have two jobs, some non-voting, etc)19:53
@clarkb:matrix.orgs/every job/every build of the job/19:54
@clarkb:matrix.orgside note, I wonder if we should move logic like that into the library code. It will run faster too I think19:54
@clarkb:matrix.org> <@fungicide:matrix.org> if a project is required then it will always be tested with the source branch state19:55
ya the issue would be specifically for a depends on, but I guess even then you'd have to depends on something from a different branch to break
@fungicide:matrix.org23.253.56.45 is the held keycloak node20:14
@fungicide:matrix.orgi probably don't have more time to dig into it today (or tomorrow for that matter), but may be able to pick it back up again on friday assuming nothing catches fire in the meantime20:15
@fungicide:matrix.orger, wrong channel, sorry!20:15

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