IRC logs for #buildstream for Friday, 2020-05-29

*** phoenix has joined #buildstream00:10
*** phoenix has quit IRC00:25
*** phoenix_ has joined #buildstream00:25
*** phoenix_ has quit IRC00:28
*** phoenix has joined #buildstream00:34
*** phoenix has quit IRC00:38
*** Amelia8605 has joined #buildstream01:55
*** Amelia8605 has quit IRC01:58
*** Harper4216 has joined #buildstream04:55
*** tristan has quit IRC04:56
*** Harper4216 has quit IRC04:57
*** tristan has joined #buildstream05:25
*** Serenity2190 has joined #buildstream05:57
*** Serenity2190 has quit IRC05:59
*** phildawson has quit IRC07:03
*** tristan has quit IRC07:11
*** benschubert has joined #buildstream07:22
*** jude has joined #buildstream07:30
coldtomthanks so much juergbi!08:06
juergbiyw08:10
*** tpollard has joined #buildstream08:23
traveltissuescan someone have a look please https://gitlab.com/BuildStream/bst-plugins-experimental/-/merge_requests/11508:42
traveltissuesty08:44
*** santi has joined #buildstream08:51
*** slaf_ is now known as slaf09:16
*** tristan has joined #buildstream09:22
*** tpollard has quit IRC09:28
*** tpollard has joined #buildstream09:30
*** ChanServ sets mode: +o tristan09:44
traveltissuesthe cache for bst-plugins-experimental seems to be full: https://gitlab.com/BuildStream/bst-plugins-experimental/-/jobs/572806134#L446 does anyone have access to clear it?10:04
tristantraveltissues, the "clear runner caches" button ? ... sure sec10:05
tristancache is reset now10:06
traveltissuesthanks10:06
traveltissuesi don't have permissions for that button10:06
tristanYup, just was wondering for a sec if it might be a different cache, like an artifact server or smth10:06
tristanbut yeah logically it must be a gitlab cache you mean :)10:06
tristanSo, still no decision about what semantics to use to allow multiple junctions in the same project, and no opinions at all about the artifact cache configuration spaghetti yet either...10:09
tristanbenschubert, juergbi ... cs-shadow seems to have expressed ambivalence about the name of `target` (by my reading of https://gitlab.com/BuildStream/buildstream/-/merge_requests/1937#note_348934212)... shall we go with `inherit` rather than `link` ?10:10
* tristan otherwise rummages through the milestone for something to "do" over the weekend...10:11
benschuberttristan: I'm fine with that10:11
benschubertif you're looking for things to do, I'll appreciate reviews on https://gitlab.com/BuildStream/buildstream/-/merge_requests/1943 :)10:12
tristanoh sure !10:12
traveltissuestristan: both 'inherit' and 'link' are overloaded terms imo but 'link' especially so10:12
benschubertfor the multiple junctions and artifact cache, I need to take a moment to sit down and go through it, not sure I'll manage before monday though :/10:12
juergbitristan: inherit to me sounds a bit more like include semantics, which is not the case10:12
juergbiit's not a separate junction/subproject instance10:12
juergbiit is the same10:13
tristanjuergbi, honestly, that has never been clear to me from the word `target` either; I'm not sure it's that important that the user sees it as "the same junction" or "using that remote junction configuration to define this one"10:14
tristanIt would be better if that was clear, agreed10:15
juergbithe behavior would be different for these two scenarios10:15
juergbiso using the wrong term here is misleading, imo10:15
juergbiit would then be a conflicting subproject10:15
tristanMmmyeah, the docs are not really clear about that differing behavior either10:16
tristanI.e. does it make any difference to the end user that internally, element instances are not duplicated ?10:16
tristanOr is it mostly just important that "both junctions are configured exactly the same" (which is what the docs have been saying)10:16
juergbiwell, yes, as long as the config must be identical, it should indeed not be relevant10:17
juergbihowever, inherit without ability to change anything also sounds like the wrong term to me10:17
tristanThat's the caveat I pointed out in my last email10:17
juergbiyep10:17
benschubertfair point10:18
benschubertmaybe dumb but... "use" ?10:18
juergbion its own that word also doesn't seem that clear, imo10:18
traveltissues'intersection'?10:18
tristanBut, the reason I still like it better than other options, especially link; is that the inability to "merge" is mostly important at project authoring time (you'll get errors if you try anyway)10:19
tristantraveltissues, I like intersection for other things honestly, and I don't think it works here10:19
tristantraveltissues, for instance, the intersection of elements to include / exclude with using `--except` parameters on the command line10:19
traveltissuestrue10:19
traveltissuesi forgot that's already a thing10:20
tristanit's not a keyword anywhere but still I think it is a useful term10:20
jjardontristan: can you be an apache project but still hosted in gitlab?10:21
traveltissuesultimately a single word config key is going to have a certain ambiguity that needs to be clarified by the docs, i think you're just trying to decide which is least ambiguous, not which is unambiguous10:21
jjardontristan: can you be an apache project but still be LGPL?10:21
tristanSo "use" is a bit empty, less clear... "link" is bit ambiguous, however, at least expresses "this thing is a link: junction.bst"10:22
tristanI would prefer a verb honestly10:22
tristanjjardon, (A) I think it's not problematic, (B) No I believe not.10:22
traveltissueswell does it express a 'union' of elements?10:22
* jjardon noticed announcements were made about joining apache but not about implications license-wise10:23
tristanjjardon, regarding (A) it's still not clear what will happen, we hope we can keep using gitlab wherever we're physically hosted, though10:23
benschubertjjardon: AFAIK we'll need to move to their infrastrucutre, but that's not something that needs to be done right away and we can have a trnasition period, and they do use GitHub + Jenkins10:23
benschubertbut I don't have the whole context either, others would be able to answer better10:24
tristanwould be smoother to stay with gitlab rather, but we'll see what happens then10:24
tristanI'd really like to figure out the name here... :-S10:24
tristantraveltissues, I think it's a configuration of a junction, which might have an impact on elements, but only indirectly (and not even necessarily related to elements)10:25
tristanYou can use junctions just for includes or just for plugins10:25
juergbitristan, benschubert: in a way I'd like `kind: link` with `target: ...`10:25
tristanjuergbi, Yeah I see what you mean10:26
juergbibut I think we said we don't want to support it for non-junction elements10:26
tristanWell10:26
tristanWhat is a junction anyway10:26
tristanHmmm10:26
juergbiI wouldn't mind generalizing this10:26
tristanRight, actually a link is imperfect because... what if a link can link other things, not just a junction10:26
tristanHmmm10:27
juergbiyes, if we have a 'kind: link' it should really work with any element10:27
tristanLike a junction-link10:27
juergbithat's another option10:27
juergbikind: junction-link10:27
juergbitarget: foo.bst10:27
jjardonbenschubert: github is ok but not gitlab? Do you know who can know more about this?10:27
tristanRight, would you see a 'kind: link' being useful for anything other than a junction, though ?10:27
benschubertjjardon: sander most definitely would know or point to the right persons10:28
jjardonbenschubert: what about the licensing?10:28
juergbitristan: conceptually, yes. although it can trivially be handled by a stack with a single element right now10:28
juergbie.g., you could have c-compiler.bst10:28
juergbithat links to gcc or clang depending on project option10:29
tristanMyeah, that seems covered by stacks10:29
tristanI'm weary of adding multiple angles to the same problem10:29
benschubertjjardon: don't know for sure, but I don't know any Apache project that doesn't have the apache license10:29
tristanjuergbi, although interestingly it seems like a good approach seeing as; the alternative is to have an option which makes all other options invalid10:30
tristanHmmm10:30
jjardonmmm, I think those are important things to clearly state, if this is actually happen10:30
juergbiyes, I really like the clarity of kind: link10:30
benschubertjuergbi: agreed10:31
jjardonbenschubert: I guess the only one that knows for sure is Sanders?10:31
tristanI was just thinking, maybe "link-to: target-junction.bst" would be good, but "kind: link" is really warming up10:31
tristanOr I'm warming up to it rather ;-)10:31
tristanjuergbi, benschubert; does a "link" element allow linking to local elements too ?10:31
tristan(or junctions)10:32
juergbiyes10:32
benschubertjjardon: I don't know. Probably Neil too10:32
tristanYeah I'd think10:32
tristanthe junction target does not currently10:32
juergbioh, right, I thought it did already10:32
benschubertyeah, a link seems nice to me too, that way you can alias elements, without having a 'stack' in a middle10:32
jjardonbenschubert: Neil? from GNOME?10:33
traveltissuesi see your point about the use of 'union' and i'd like to say that junctions are sets which are larger than one item but that's not helpful10:33
traveltissuestristan: ^10:33
benschubertjjardon: as from the email about it: CC: Neil McGovern, Executive Director, GNOME Foundation10:33
tristantraveltissues, I think this `kind: link` so far is really the nicest semantic, what do you think ?10:34
traveltissuesit makes sense to do that yes but i doesn't clarify that you're disallowing non-junctions (if i read that correctly)10:34
jjardonah, he probably would know about the gNOME rules, not sure about the Apache ones :) I will ask in the thread10:34
tristantraveltissues, this way the junction documentation can recommend using a link to a subproject junction10:35
tristantraveltissues, to accomplish the same as what `target` currently does10:35
tristantraveltissues, and no, it has to work with any element too10:35
tristanit's a general all purpose "link"10:36
traveltissuesah, ok then i think that's fine10:36
traveltissuescan someone take a look please https://gitlab.com/BuildStream/bst-plugins-experimental/-/merge_requests/11410:38
*** cphang has joined #buildstream10:41
*** cs-shadow has joined #buildstream10:53
benschubertthanks tristan !10:54
*** tristan has quit IRC11:01
*** Julia7011 has joined #buildstream11:10
*** Julia7011 has quit IRC11:12
*** Nevaeh1974 has joined #buildstream11:23
cphangTyvm benschubert juergbi and tristan for the help and assistance around https://gitlab.com/BuildStream/buildstream/-/issues/1310 and https://gitlab.com/BuildStream/buildstream/-/issues/1318, once both issues close would it be possible to consider a  new 1.93.4 dev tag?11:24
*** Nevaeh1974 has quit IRC11:24
juergbiplease note that the main fix for the latter is in buildbox-common11:24
juergbiand not merged yet11:24
cphangright ofc juergbi, would you consider a 0.0.9 tag for buildbox-common?11:25
juergbishould be possible, yes, but let's first finish/merge it11:27
cphangjuergbi,  is there an issue to track against in buildbox-common? The MRs in buildbox you linked to in #1318 all appear to have been merged?11:28
WSalmonjuergbi, i thought it was https://gitlab.com/BuildGrid/buildbox/buildbox-common/-/merge_requests/27811:29
juergbiNo, I don't think there is an issue. I've linked to the buildbox-common branch from #1318 but I haven't opened an MR yet11:30
juergbihttps://gitlab.com/BuildGrid/buildbox/buildbox-common/-/commits/juerg/grpc-retry11:30
juergbiWant to make sure the changes really make sense first11:31
juergbiand it causes an issue with casd tests that needs to be resolved11:31
juergbiI can open a WIP MR if that helps with tracking11:31
cphangjuergbi, no rush, if the MRs going to be up eventually then we can wait, as you pointed out you've already linked to the branch in #131811:33
cphangI was curious why we would only retry on UNAVAILABLE, in principle we would want to retry for FAILED_PRECONDITION and ABORTED as well?11:36
juergbithat's one aspect that requires a closer look11:37
juergbiaccording to https://grpc.github.io/grpc/cpp/md_doc_statuscodes.html FAILED_PRECONDITION should not trigger a blind retry11:38
juergbiUNAVAILABLE should always be retried (with backoff)11:38
juergbiat least for idempotent operations11:38
juergbifor ABORTED it may make more sense to retry at a higher level, i.e., in buildstream11:39
WSalmonhttps://gitlab.com/freedesktop-sdk/infrastructure/freedesktop-sdk-docker-images/-/commits/willsalmon/bst2-buildbox-fix juergbi do we think this should fix that cache issue?11:52
juergbiyes, I think so11:53
juergbiat least assuming it won't ever need more than 10 retries11:54
WSalmonBrill, i apprecate its to the best of our knowlage11:54
WSalmonright, i am hoping that that should push the "mean time before failure" from the ~1hr to ~10hr which combined wiht the build order fix should resolve this for FD11:55
cphangjuergbi, in principle I agree, although what gets returned can be a bit subjective, at least with my experience with buildbarn. FAILED_PRECONDITION is in particular very context specific11:56
juergbiwhich is why we should not blindly retry in that case11:56
juergbimaybe there are selected operations where retry still makes sense11:56
juergbibut e.g. for remote execution failed precondition may happen if a blob was already expired11:57
juergbiin that case it doesn't make sense to retry Execute, we have to first reupload missing blbos11:57
juergbii.e., retry the whole job in BuildStream, not the individual gRPC call in buildbox11:57
juergbiwell, Execute doesn't go via buildbox (yet), so maybe not the best example11:58
cphangYeh I'm thinking within the context of FindMissingBlobs, is there a client side context upon which if the server returns FAILED_PRECONDITION, the client shouldn't repeat the FindMissingBlobs call?12:00
*** tpollard has quit IRC12:16
*** tpollard has joined #buildstream12:16
*** Emilia7128 has joined #buildstream12:23
juergbicphang: when would FindMissingBlobs fail with FAILED_PRECONDITION?12:25
*** Emilia7128 has quit IRC12:25
cphangSo I'm thinking of a scenario where the REAPI connects to a storage backend (say an S3 bucket) that is transiently unavailable. In principle that would be a bad but recoverable system state, and would justify a FAILED_PRECONDITION.12:32
*** phildawson has joined #buildstream12:33
cphangI would note that Buildbarn doesn't return FAILED_PRECONDITION in this scenario. I'm just thinking of the potential behvaiour of other REAPI server implementations, though I could be wrong on this.12:33
cphangand then there's DEADLINE_EXCEEDED calls as well?12:35
juergbiaccording to the documentation the server should return UNAVAILABLE, not FAILED_PRECONDITION if the client should simply retry the call12:58
juergbiI think we should aim to following the spec before adding workarounds for hypothetical non-compliant servers12:59
juergbiI'm not sure about DEADLINE_EXCEEDED, have to take a look12:59
traveltissuesare there any objections to https://gitlab.com/BuildStream/bst-plugins-experimental/-/merge_requests/11413:49
traveltissuesty coldtom14:05
traveltissuesi'd appreciate a review on https://gitlab.com/BuildStream/bst-plugins-experimental/-/merge_requests/113 too14:14
traveltissuescan someone with access please clear the bst-plugins-experimental cache again, https://gitlab.com/BuildStream/bst-plugins-experimental/-/jobs/573279754#L162114:26
juergbitraveltissues: I've triggered a docker clean for the permanent runners14:35
traveltissuesthanks14:36
*** cs-shadow has quit IRC14:43
*** CTtpollard has joined #buildstream15:03
*** tpollard has quit IRC15:03
*** Julia7275 has joined #buildstream15:21
*** Julia7275 has quit IRC15:22
*** tristan has joined #buildstream15:26
*** jude has quit IRC16:19
*** cs-shadow has joined #buildstream16:48
*** Piper5383 has joined #buildstream17:11
*** Piper5383 has quit IRC17:12
*** CTtpollard has quit IRC17:22
*** cphang has quit IRC17:28
*** santi has quit IRC17:32
WSalmonbenschubert, juergbi cphang https://gitlab.com/BuildStream/buildstream/-/issues/1310#note_35208902317:54
*** philn has quit IRC19:30
*** philn has joined #buildstream19:33
*** cs-shadow has quit IRC20:28
*** benschubert has quit IRC20:30
*** Isabella7743 has joined #buildstream21:16
*** Isabella7743 has quit IRC21:18
*** jude has joined #buildstream21:34
*** jude has quit IRC21:59
*** tpollard has joined #buildstream22:08
*** tpollard has quit IRC22:09

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!