IRC logs for #buildstream for Monday, 2019-03-25

*** nimish2711_ has joined #buildstream00:17
*** nimish2711 has quit IRC00:18
*** nimish2711_ is now known as nimish271100:18
*** swick has quit IRC01:08
*** nimish2711 has quit IRC02:04
*** nimish2711 has joined #buildstream02:06
*** nimish2711 has quit IRC02:21
*** nimish2711 has joined #buildstream02:30
*** nimish2711 has quit IRC02:58
*** swick has joined #buildstream04:43
*** tristan has joined #buildstream06:30
*** mohan43u has joined #buildstream06:40
*** alatiera has joined #buildstream07:12
*** user_ has joined #buildstream07:20
*** alatiera_ has joined #buildstream07:30
*** alatiera has quit IRC07:30
*** alatiera_ is now known as alatiera07:31
*** user_ has quit IRC07:32
*** toscalix has joined #buildstream09:05
*** toscalix has quit IRC09:06
*** toscalix has joined #buildstream09:06
*** rdale has joined #buildstream09:28
gitlab-br-botjuergbi approved MR !1239 (mablanch/629-remote-execution-test->master: Add remote execution tests to the CI pipeline) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/123909:36
*** tpollard has joined #buildstream09:40
*** raoul has joined #buildstream09:48
*** jonathanmaw has joined #buildstream09:59
benschubertIs there a way of completely disabling the cache cleanup mechanism of BuildStream?10:03
benschubertLike, I'd rather have it crash than start cleaning10:03
*** ChanServ sets mode: +o tristan10:06
tristanbenschubert, for hacking/testing purposes ?10:06
tristanbenschubert, that can be pretty easy to comment out I think10:06
benschuberttristan: because it's quicker to remove the whole cache manually, in order to not clog my CI for 30h+ :)10:07
tristanHmmm10:07
benschubertgah, that would be less ideal10:07
tristanNo I thought you were trying to look at the bug which is that we have stack traces when we hit the limits10:08
tristanfor which commenting out code might be a decent approach :)10:08
benschubertah right, that's something else that I should end up looking at x')10:08
benschubertBut no here is rather that in its current state the cache cleanup is putting too much strain on my CI10:09
tristanAborting on reaching the cache limit might be a decent option ? I only wonder if it is going to really be relevant after improving cache cleanup10:09
benschubertafter improving, definitely (?) not, before that, it seems a pretty decent stop gap solution10:09
tristanI guess the question is... if we have performant cleanups, would that option still be relevant ?10:10
benschubertbut then it's a specific use case10:10
benschubertprobably not10:10
tristanIt would be preferable to avoid adding API surface that we don't want to keep around, but of course, I sympathize with the situation10:11
Kinnisonbenschubert: does the cache help your CI?10:11
benschubertI guess I'll trigger the cache cleanup with smaller limit in the meantime :)10:11
benschubertKinnison: it does reduce the time by approximately 50% yes, but I can just cleanup earlier10:12
tristanSo for this kind of stop-gap thing, I wonder if environment variables might be a decent approach10:12
tristanWe don't expose any env vars in public API, and it might send better messaging (to ourselves) that "this stop-gap hack can be removed when foo is implemented"10:13
tristanThat is, *if* we really judge that we need a stop gap10:14
benschuberttristan: I have a workaround now, I think it might be better concentrate on the root cause instead :)10:14
tristanI certainly agree10:14
gitlab-br-bottristanvb merged MR !1256 (tristan/backport-update-state-changes-1.2->bst-1.2: Tristan/backport update state changes 1.2) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/125610:22
gitlab-br-bottristanvb closed issue #919 ('bst build <elem>' does not assemble all required elements in some circumstances) on buildstream https://gitlab.com/BuildStream/buildstream/issues/91910:23
*** toscalix has quit IRC10:26
*** toscalix has joined #buildstream10:27
benschuberttristan: oh by the way if you have time: https://gitlab.com/BuildStream/buildstream/merge_requests/1253 was that what you had in mind?10:35
benschubertfor the double lookup in the plugin table10:35
tristanbenschubert, Looks quite perfect to me10:36
benschuberttristan: then to marge it goes! thanks!10:36
tristanbenschubert, Honestly, I dont think running buildstream with `python -O` is a valid way to run BuildStream anyway, but the extra line doesnt hurt10:37
tristanAs we discussed, we'd probably need a bunch more changes for assertion disabling to be ummm, safer10:37
benschuberttristan: I agree, however, it's common practice in some production environments to do it, so I'd rather be safe than sorry :)10:37
tristanRight, we probably need some flagship issue to conform to that practice10:38
tristanI'll file one now10:38
tristanbenschubert, I suppose that can be changed somehow from a system integration perspective ?10:39
tristani.e., for us... people launch `bst` as a CLI tool, we dont really have ways to launch it with python10:39
*** lachlan has joined #buildstream10:40
benschuberttristan: would be possible, but very hacky, and could break in many cases, so I guess no :) (Basically, entrypoints can be shell scripts, but then you need a LOT of work to template them correctly to handle all edge cases on how python is installed (RHEL/Windows/venv/conda/etc)10:41
tristanI'll open an issue anyway just to say that there is one10:42
tristanEven if we never change that10:42
gitlab-br-bottristanvb opened issue #971 (BuildStream does behave correctly with assertions disabled) on buildstream https://gitlab.com/BuildStream/buildstream/issues/97110:51
raoulTristan, juergbi, are you happy with !1214? Keen to finally get it over the line10:51
gitlab-br-botMR !1214: Remote source cache https://gitlab.com/BuildStream/buildstream/merge_requests/121410:51
tristanThere, filed #971, just to say that we know about it - I'm really ambivalent as to whether it gets done or not :)10:52
tristanraoul, I think juergbi reviewed the bulk of it, I have only responded to a few questions10:53
tristanI am happy if juergbi is happy with it, if you want me to look at the whole thing, that'll take more time :)10:53
juergbiI expect it to be ready to be merged10:54
raoulShould I hand it over to marge or do you want another quick look over?10:54
tristanOne question - Does this have src-pull in a separate queue from fetch ?10:55
tristanI suspect that it doesnt, and I don't mind that much10:55
juergbino, src-push is separate, src-pull is part of fetch10:55
tristanHowever I do feel that splitting those up would be desirable10:55
tristanI dont think that it should block the patch, though10:55
*** lachlan has quit IRC10:56
raoulAs in seperate queues for pulling from a remote source cache and fetching from the original source?10:56
juergbihm, doesn't this burden users with complexity that they normally don't care about?10:56
tristanJust, feel that it would be desirable to treat these as separate operations, this would probably make scheduler logic more powerful and easier to reason about10:56
tristanI.e., the question of whether to fetch or pull, under what circumstance, I dont think it is in the domain of the queue itself, which should "just do a thing"10:57
tristanjuergbi, users ?10:57
juergbiseparate queue would normally be exposed to the UI10:57
*** nimish2711 has joined #buildstream10:57
tristanThat is true, but it would be more consistent and honest about what is happening10:58
tristanOn the flipside, I don't think it's something users should have to care about10:58
tristanThat said, I dont have very strong feelings about this10:59
juergbiyes, not sure10:59
juergbiI think it should be consistent with CLI commands10:59
juergbii.e., we should split the queues only if we also want to split 'bst source pull' from 'bst source fetch'11:00
tristanWhich is why I only wanted to raise this as a side note, I think the architecture is more consistent with them separate11:00
tristanjuergbi, I dont really agree with that honestly11:00
gitlab-br-botmarge-bot123 merged MR !1225 (juerg/partial-cas->master: Initial support for partial local CAS) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/122511:00
tristanI think the user asks "Do this thing" and BuildStream does a number of operations it needs to do11:00
tristanjuergbi, part of that is driven by project/user configuration (is there an artifact/source cache to interact with ?)11:01
tristanpart of it is driven by what activity the user asked for11:01
tristanI wouldn't look for symmetry between CLI commands and queues11:01
juergbiI think it could be confusing to use the same word 'fetch' for two different meanings11:01
*** lachlan has joined #buildstream11:02
tristanThat I can agree with :)11:02
juergbiso if the fetch queue only fetches from the original source11:02
juergbi'bst source fetch' shouldn't pull from the source cache11:02
juergbianyway, as you wrote, we shouldn't block the MR on this11:03
tristanNo no11:03
juergbiso let's marge it11:03
tristanMarge it baby !11:04
tristanAs an aside, there is certainly a big difference in what you get from a source cache and an actual fetch, and a user may very well want to distinguish11:05
* tpollard would like Patty & Selma bots11:05
tristanHaving a fully fetched repo means you can switch revisions (as long as it's not a tarball, but its a VCS repo), and have the confidence of being able to do so without blocking on network11:05
tristan(and of course workspacability)11:05
raoulI kinda now see the fetch stage as getting the sources into the local source cache, which to do it should be checking configure remote source caches too so I'm not sure about splitting it up, though I can definitely see points about making the logic easier to reason about11:06
juergbiyes, it certainly makes sense to think about this aspect some more11:08
*** tristan changes topic to "BuildStream 1.2.5 is out ! | https://gitlab.com/BuildStream/buildstream | Docs: https://docs.buildstream.build/ | IRC logs: https://irclogs.baserock.org/buildstream | Mailing List: https://mail.gnome.org/mailman/listinfo/buildstream-list | Roadmap: https://wiki.gnome.org/Projects/BuildStream/Roadmaps"11:38
gitlab-br-botmarge-bot123 merged MR !1253 (bschubert/fix-double-lookup->master: plugin.py: Don't make a double lookup in the plugin table to get one) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/125311:45
gitlab-br-botmarge-bot123 closed issue #440 (Should we implement a (remote) CAS-based SourceCache?) on buildstream https://gitlab.com/BuildStream/buildstream/issues/44012:29
gitlab-br-botmarge-bot123 merged MR !1214 (raoul/440-source-cache-remotes->master: Remote source cache) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/121412:29
*** lachlan has quit IRC12:31
*** lachlan has joined #buildstream12:31
*** tristan has quit IRC12:35
*** nimish2711 has quit IRC13:00
*** tristan has joined #buildstream13:03
*** nimish2711 has joined #buildstream13:05
gitlab-br-botjuergbi merged MR !1239 (mablanch/629-remote-execution-test->master: Add remote execution tests to the CI pipeline) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/123913:29
KinnisonThank you to those who have taken the time to review !1257 as James and I inch it toward non-WIP13:38
gitlab-br-botMR !1257: WIP: YAML New World Order https://gitlab.com/BuildStream/buildstream/merge_requests/125713:38
gitlab-br-bottpollard opened (was WIP) MR !1252 (tpollard/945->master: Add initial TestArtifact() abstraction class to testutils) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/125213:55
*** phildawson_ has joined #buildstream14:02
*** phil has quit IRC14:03
gitlab-br-botjuergbi opened (was WIP) MR !1232 (juerg/partial-cas-remote->master: Initial partial CAS support for remote execution) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/123214:07
*** phildawson_ has quit IRC14:40
*** phildawson_ has joined #buildstream14:40
gokcennurluhas it ever been discussed why we can't build junctions/why do they always fail?14:40
juergbigokcennurlu: do you mean why `bst build somejunction.bst` is not supported?14:43
gokcennurluyes14:43
juergbijunctions point to a project, not to a single element14:44
juergbiuntil recently there was no concept at all of building a whole project14:44
gokcennurluyep, OK, I guess I expected to be a no-op.14:44
gokcennurluinstead of hard failing14:44
gokcennurluso the reason I am asking is that; I maintain two small integration repositories and one junctions to the other14:44
gokcennurluI was trying to do something like `bst source track *.bst && bst build *.bst`, simple bash script for a simple CI14:46
juergbiwith the recently landed default target support, you can simply drop the target argument14:47
juergbithe default is to track/build all elements, automatically excluding junctions14:47
juergbi(for the build where it's not supported)14:47
juergbiand this will also work with subdirectories, unlike shell expansion14:48
gokcennurluwould that auto-fetch the junctions if there were not fetched yet?14:48
juergbiauto-fetch is the default for junctions, iirc14:48
juergbiat least for bst build14:49
jennisJust did a quick test in doc/examples/junctions (`bst build`), auto-fetch is default :)14:50
gokcennurluthank you a lot Jürg and James :)14:50
jennisAhhh, but the source track probably requires the fetch14:51
gokcennurluJames sorry, I meant `fetch` there ! it should be ok :)14:52
jennisahh nice, ok14:53
Kinnisonjuergbi: If you could have a quick look at the two threads you opened on !1257 I'd appreciate input so I can try and unWIP it later14:58
gitlab-br-botMR !1257: WIP: YAML New World Order https://gitlab.com/BuildStream/buildstream/merge_requests/125714:58
Kinnisonraoul: ^^14:58
gitlab-br-botadds68 opened issue #972 (Integrate BuildStream into an IDE) on buildstream https://gitlab.com/BuildStream/buildstream/issues/97214:59
raoulWas just looking :)14:59
juergbiKinnison: not quite sure what further to add. in one you replied that you haven't reached a decision yet and in the other I've already replied again14:59
Kinnisonjuergbi: aah I see you've replied :)15:00
* Kinnison will split the cache removal out15:00
*** rdale has quit IRC15:50
*** rdale has joined #buildstream15:56
*** nimish2711 has quit IRC16:17
*** nimish2711 has joined #buildstream16:21
tpollardIs there plans to add benchmarking feedback to MR CI?16:23
tpollardI'm in the realm of update_state and I know it's a problem point16:24
*** lachlan has quit IRC16:39
*** toscalix has quit IRC16:44
*** lachlan has joined #buildstream16:45
gitlab-br-botLaurenceUrhegyi closed issue #629 (Remote-execution testing (technical debt)) on buildstream https://gitlab.com/BuildStream/buildstream/issues/62916:49
*** lachlan has quit IRC16:52
*** lachlan has joined #buildstream16:55
benschuberttpollard: we would like to, however, we need to find a right balance to not slow down too much the rest. Would you have some ideas?16:56
benschubertAlso, what are you looking at around _update_state()?16:57
tpollardbenschubert: if the benchmark can run as a seperate job in parallel with the rest of the runners and is of a similar timescale, then it could be beneficial?16:58
laurencethere is a hacky way for devs to test their branch against master for performance already, tpollard, as jennis mailed about16:58
tpollardbenschubert: some of the follow up for !95516:58
laurenceof course, it's not in the CI16:58
gitlab-br-botMR !955: WIP: bst fmt: Add basic functionality https://gitlab.com/BuildStream/buildstream/merge_requests/95516:58
tpollardsorry, I mean the issue https://gitlab.com/BuildStream/buildstream/issues/95516:58
laurenceand it's not guaranteed same environment, and doesn't force you to push your results for public analysis16:59
tpollardtpollard: yep I'm aware thanks for mentioning it though16:59
benschuberttpollard: if we could run it in a reasonable time scale (like a test job) it would be awesome yep! However, the results would be kind-of flaky. Another Idea we were thinking about would be to have Marge run it before merging and fail if it's too slow unless told otherwise, but again, that's hacky17:01
benschuberttpollard: ok, you might want to sync with jonathanmaw , he's working in splitting up _upadte_state() and doing finner grain updates, to make sure you don't clash too much17:02
WSalmonjuergbi, tristan i have been looking at utils.safe_copy/copy_files and it seems to do everything that the local plugins staging function is doing, i am guesing that the code removed from https://gitlab.com/BuildStream/buildstream/commit/d76af9df32c6164a2e1e61861dd53f27a4fa358c is just code that used to be needed but isn't now. given that the pipe line passes, https://gitlab.com/BuildStream/buildstream/pipelines/53516652 i am thinking that ether17:11
WSalmonthe code is not needed or we need a new test.17:11
WSalmonis this right?17:12
juergbiWSalmon: the utils functions don't do chmod, afaict17:16
juergbihowever, as CAS doesn't store permissions, the use of source cache might have made this redundant17:16
gitlab-br-botwillsalmon opened MR !1260 (willsalmon/simpletest->master: Refactor local source to use the shinny new code in utils) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/126017:17
juergbithe source-determinism test should catch missing chmod17:17
juergbimaybe raoul could also take a quick look and confirm this is no longer required17:19
juergbior maybe we still need it for bst source checkout or something else that doesn't use the source cache?17:19
juergbi(in which case a test would make sense)17:19
WSalmonthe safe_copy that copy_files usesw has `shutil.copystat`17:20
juergbiyes but the code that you removed doesn't copy permissions, it sets the same permission bits for everything17:22
WSalmonoh, ok, so are the directories getting missed? is that the only diffrence?17:24
*** lachlan has quit IRC17:27
juergbiWSalmon: also regular files are not set to 0644/0755 by safe_copy, if I'm not mistaken17:38
juergbiwhen staged via source cache, the CAS code will handle that17:38
juergbihowever, I think there is still a code path (not for building) where CAS isn't/can't be used17:39
juergbiso it might still cause an issue there17:39
jonathanmawjuergbi: when you have time, can you have a look at my analysis of what happens with Element._update_state() in https://gitlab.com/BuildStream/buildstream/issues/902#note_153368417 and https://gitlab.com/BuildStream/buildstream/issues/902#note_153971383 ? I've been poking around and puzzling out how it all fits together, but there are bits that I'm probably misunderstanding17:41
juergbiwill take a look17:41
jonathanmawthanks, juergbi17:41
*** nimish2711 has quit IRC17:44
*** lachlan has joined #buildstream17:44
*** lachlan has quit IRC17:49
WSalmonjuergbi, so i think a workspace from a local source would not have its permissions set correctly, so i was thinking we need a issue saying we should have a test for that case and some doc's for plug in authers explaining better there responsibility hear? or do those docs exist and i have missed them?17:52
*** lachlan has joined #buildstream17:59
*** raoul has quit IRC18:10
*** lachlan has quit IRC19:04
*** lachlan has joined #buildstream19:14
*** lachlan has quit IRC19:18
gitlab-br-botjennis opened (was WIP) MR !1257 (shared/yaml-rework->master: YAML New World Order) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/125719:18
*** lachlan has joined #buildstream19:27
*** lachlan has quit IRC20:00
*** jonathanmaw has quit IRC20:51
*** alatiera_ has joined #buildstream22:08
*** alatiera has quit IRC22:08
*** alatiera_ is now known as alatiera22:09
*** alatiera_ has joined #buildstream23:00
*** alatiera has quit IRC23:00
*** alatiera_ is now known as alatiera23:00
*** alatiera has quit IRC23:39

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