IRC logs for #buildstream for Wednesday, 2019-04-24

*** nimish2711 has joined #buildstream03:21
*** alatiera has joined #buildstream04:28
*** tristan has quit IRC05:41
*** tristan has joined #buildstream06:05
*** mohan43u_ has quit IRC06:42
jennisjuergbi, tpollard, thanks for the review of !129907:33
gitlab-br-botMR !1299: WIP: Replace _update_state with various methods in various CacheKey implementations https://gitlab.com/BuildStream/buildstream/merge_requests/129907:33
*** mohan43u has joined #buildstream07:37
*** bochecha has joined #buildstream07:44
*** bochecha has quit IRC07:47
*** bochecha has joined #buildstream07:49
*** toscalix has joined #buildstream07:52
*** toscalix has quit IRC07:53
*** toscalix has joined #buildstream07:54
*** benschubert has joined #buildstream08:11
*** tristan has quit IRC08:13
*** rdale has joined #buildstream08:15
gitlab-br-botBenjaminSchubert approved MR !1310 (jennis/revert_gc_management->master: Revert !1164 - Manage GC during pipeline load) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/131008:28
*** alatiera has quit IRC08:47
benschubertphildawson: you around?08:57
adds68Has anyone ever used bst on a public gitlab runner?08:57
benschubertadds68: no, however I guess you have troubles with it? What's the problem? :)08:58
adds68benschubert, hey, yes i am haha, good guess08:59
adds68I am seeing bwrap issues08:59
adds68bwrap: No permissions to creating new namespace, likely because the kernel does not allow non-privileged user namespaces. On e.g. debian this can be enabled with 'sysctl kernel.unprivileged_userns_clone=1'.08:59
benschubertadds68: if I remember well, the public runners are docker containers and they are run without the privileged flag correct?08:59
*** tristan has joined #buildstream08:59
adds68benschubert, yea i think that is the case :(09:00
benschubertIf that's the case, then you can't run bubblewrap in them, since bubblewrap will not be able to set its namespaces correctly09:00
adds68Ok i will have to try and set up a runner, is this going to change in bst2 or the new debian stable, would you know?09:00
adds68or is it purely because docker is not running in privileged mode?09:01
benschubertit's purely because we are missing some privileges yep09:01
*** ChanServ sets mode: +o tristan09:01
phildawsonbenschubert, I am09:01
tristanright, exactly :)09:01
benschubertphildawson: i'm trying to understand how "{project_dir}" gets transformed to a correct path in testing/_sourcetests/project/project.conf, could you enlighten me? I'm probably missing something very simple09:03
tristanadds68, you might ask jjardon about setting up runners, but I don't know exactly what guarantees gitlab runners provide for it's hosts (as I recall, some hosts might not have user namespaces enabled)09:03
adds68tristan, i think as benschubert said, the lack of privileges makes this a non starter =/09:04
benschuberttristan: you can add tags to runners to force stuff, at home I have "privileged" runners, that have the permissiosn for such stuff for example :)09:04
tristanI guess you are not allowed to have privs on the public runners09:04
adds68It's a shame that bst can't be run for "free" because of Gitlab though =/09:04
tristanyeah that could be cool09:04
tristanmaybe once unprivileged namespacing becomes mainstream that will be possible09:05
benschubertadds68: travis and other free CI tools suffer the same problem09:05
*** jonathanmaw has joined #buildstream09:05
tristanadds68, i.e. there is a host configuration you can ask the kernel to allow regular users to create namespaces, but it's not widely considered secure yet09:05
adds68I mean it makes sense for security, just a shame09:06
tristanWell I think it is a goal to make that secure09:06
tristanadds68, i.e. it should theoretically be secure for a regular user to create a user namespace, it shouldnt be able to escalate privileges09:07
tristanjust not enabled on most distros09:07
adds68I wonder if gitlab have an issue open for this09:08
* tristan doubts it is reasonable to ask for, I was just raising that as I suspect the situation might naturally get better over the years to come09:08
tristanwhile user namespaces mature09:08
tpollardcs-shadow: yeh, I'll roll back and have a look09:12
phildawsonbenschubert, looks like it's filled in by the cli_integration fixture. Though I wasn't the original author of those tests, so there's always the possibility I'm missing something.09:15
*** nimish2711 has quit IRC09:16
benschubertphildawson: ok I'll look into that part, thanks!09:16
benschubertI need it in a non-integration test so we'll see x)09:16
phildawson:)09:18
*** nimish2711 has joined #buildstream09:39
gitlab-br-botphildawson approved MR !1310 (jennis/revert_gc_management->master: Revert !1164 - Manage GC during pipeline load) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/131009:40
*** lachlan has joined #buildstream09:40
*** lachlan has quit IRC09:44
phildawsoncs-shadow, would you object if I were to make the build of  the segfaulting fedora 30 image in the CI for buildstream-docker-images optional until a new none-broken fedora 30 image is released?09:49
cs-shadowphildawson: that would be good, thanks09:55
phildawson:)09:55
phildawsoncs-shadow, https://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/11610:10
*** lachlan has joined #buildstream10:12
*** lachlan has quit IRC10:16
gitlab-br-botjennis opened MR !1311 (jennis/cache_quota->master: Do not calculate cache quota when we don't need to) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/131110:18
jennistristan, if you have some time today, I'd appreciate a review of !1311, I've removed the calculation of the cache quota upon CASQuota instantiation, AFAICS it's not actually required, we seem to calculate the cache quota when we need it during the session10:21
gitlab-br-botBenjaminSchubert opened issue #1010 (Bst track can't track when multiple sources are on the same element without ref.) on buildstream https://gitlab.com/BuildStream/buildstream/issues/101010:27
benschubert^ a funky error which might require a chunky rework of the tracking :/10:28
*** nimish2711 has quit IRC10:30
*** nimish2711 has joined #buildstream10:30
jennisoh dear10:34
jennisI hope this isn't a YAML NWO regression :/10:34
*** lachlan has joined #buildstream10:41
tristanummmm, ok who was it... jonathanmaw was asking me for a review ?10:43
tristanright, lets see10:43
tristanohhhh, big stuff ;-)10:44
tristanjonathanmaw, very very shallow preliminary review10:51
tristanjonathanmaw, honestly I think it's far from ready :-/10:51
*** lachlan has quit IRC10:55
jonathanmawtristan: thanks for the review10:55
jonathanmawvery shallow is fine, we were looking for sanity checks10:56
tristanOk yeah, it does look like it has a lot of todo comments still10:56
tristanjonathanmaw, I worry a bit that it's might be a lot for one merge request10:56
tristanjonathanmaw, I wonder if classing of cache key calculation could be an orthogonal activity from untangling cache key calculations from orthogonal state bits10:57
*** alatiera has joined #buildstream10:58
*** lachlan has joined #buildstream11:00
tristanlike, if we started with something like (A) Keep _update_state() as the focal point for updating all state (for now)... (B) have _update_state() call _update_state_cache_key() and then call _update_state_bits(), the latter of which would take care of _schedule_assemble() etc depending on what the conditions are... and then (C) be able to start replacing _update_state_bits() with more granular calls... and finally (D) Have _update_state_cache_key()11:00
tristando the classed thing11:00
tristanjonathanmaw, I just think that tackling the whole thing at once might be very difficult, and clash with other ongoing work in difficult ways11:01
jonathanmawyeah, it is quite big11:01
tristanSeems once update state internally has separated all of it's bits and pieces, we can start figuring out how to call it's bits and pieces at the right times11:01
*** lachlan has quit IRC11:05
*** lachlan has joined #buildstream11:09
jonathanmawtristan: ok, most of that branch isn't going to be usable for that, though I have a couple of bits and pieces that reduce the amount that we call _update_state without making any radical changes. I'm going to cherry-pick those into a new MR so they can be reviewed separately11:09
tristanjonathanmaw, good idea to get those bits and pieces out of the way yeah11:18
gitlab-br-botjonathanmaw opened MR !1312 (jonathan/reduce-update-state-calls->master: Reduce the amount of times we call Element._update_state()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/131211:22
jonathanmawtristan: as part of (C) in the outline above, do you mean replacing _update_state_bits() with more granular calls within _update_state(), or in other call sites elsewhere?11:25
*** lachlan has quit IRC11:27
tristanjonathanmaw, I mean A and B ends up with: _update_state() { _update_state_keys(); _update_state_bits(); }, where _update_state_bits() takes care of side effects not related to the key itself... then we have separation of keys and bits11:28
*** lachlan has joined #buildstream11:29
tristanjonathanmaw, Once we have that, we have this function _update_state_bits() and we can analyze where exactly those individual bits need to be changed, often it is in result of a cache key being resolved, plus some other conditions11:29
tristanso we can start splitting up those side effect updates once they are safely untangled from the cache key resolution algo11:30
tristanjonathanmaw, does that make sense ?11:30
tristanjonathanmaw, really, take this as a suggestion, it's probably how I would tackle the problem11:31
jonathanmawtristan: just calling _update_state_keys and _update_state_bits is a bit messy because of what we do for workspaces that we need to assemble, plus __update_source_state needs to be called before we do either (and is more of a 'bits' thing than a 'keys' thing)11:39
jonathanmawthe broad approach makes sense to me, though11:40
tristanI mean the large problem is that we have a huge function which has many side effects, we need to untangle them into separate phases I think11:41
tristanonly then we can start to selectively compute side effects11:41
tristanbut we can hopefully do that untangling first, without changing callers to _update_state(), then half the work is done and the rest becomes much easier11:42
*** lachlan has quit IRC12:02
benschubertIs there a way with the artifactserver in buildstream to remove everything related to a given project?12:56
tristanI dont think there is even a way to explicitly delete anything from an artifact server13:00
tristanbenschubert, however the (unfinished) plan for manipulating the local artifact cache was intended to accept wildcards for artifact names/refs, this would at least support `bst artifact delete %{project-name}/*`13:01
tristanbenschubert, that said, if we optimize the cleanups so that they are object based and not ref based, I expect it would be less problematic that there is no way to explicitly delete things on remotes ?13:03
*** lachlan has joined #buildstream13:08
*** lachlan has quit IRC13:10
*** lachlan has joined #buildstream13:10
*** tristan has quit IRC13:17
benschuberttristan it's not a problem, I was just asking if I could do it to reclaim storage, but I can just wait for it to be evicted :)13:24
*** tristan has joined #buildstream13:30
*** lachlan has quit IRC13:30
gitlab-br-botmarge-bot123 merged MR !1310 (jennis/revert_gc_management->master: Revert !1164 - Manage GC during pipeline load) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/131013:50
*** lachlan has joined #buildstream14:26
phildawsoncs-shadow (or anyone else), any idea what's happening here https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/201693800 ? I've rerun it several times and it seems to be a consistent failure.14:31
*** lachlan has quit IRC14:31
*** lachlan has joined #buildstream14:34
*** tristan has quit IRC14:35
tpollardsome of the others pipelines are failing with not being able to find the registry image14:35
*** lachlan has quit IRC14:39
cs-shadowphildawson: I have restarted the corresponding build job for that image, will hit rebuild on the test job next. Just in case the build was somehow buggy14:40
jennisjuergbi, when we start an artifact server I'm seeing the sub-directories artifacts/refs, now to me, this looks pretty redundant, i.e. I can remove this and still use the server as intended14:51
jennisLooking at casserver.py, it looks like we might be using this to store the protos?14:52
jennisI'm not too sure though / not that au fait with this area of the code14:53
juergbijennis: with master or the artifact as proto branch?14:53
jennismaster14:53
juergbimaybe the directory is created already but only used in the WIP branch14:53
juergbiwith artifact as a proto cas/refs will no longer be used for artifact refs14:53
jennisoh, so it's definitely going to be used in the future?14:53
tpollardyes14:54
jennisOk, gotcha, thanks14:54
tpollardwas added in preparation with https://gitlab.com/BuildStream/buildstream/merge_requests/1259/diffs#ccbdde14166de2d0d1229bad0ac2748f8f76b20914:55
phildawsoncs-shadow, cool hopefully that will solve it :)14:55
jennistpollard thanks14:56
jennisWas about to revert it...14:56
cs-shadowyay! at least that step passed. The rest should hopefully be fine14:56
phildawson\o/ fresh docker images are so close now14:58
tpollardnice16:03
tpollardjonathanmaw: I'm happy with !1312 but I think it's probably worth getting approval from Tristan before a marge16:06
gitlab-br-botMR !1312: Reduce the amount of times we call Element._update_state() https://gitlab.com/BuildStream/buildstream/merge_requests/131216:06
*** jonathanmaw has quit IRC16:09
*** bochecha has quit IRC16:32
*** lachlan has joined #buildstream16:33
*** phildawson has quit IRC16:34
*** phildawson has joined #buildstream16:35
*** toscalix has quit IRC16:41
*** lachlan has quit IRC16:43
*** alatiera has quit IRC16:44
*** tpollard has quit IRC16:46
*** phildawson has quit IRC17:03
*** lachlan has joined #buildstream17:29
*** alatiera has joined #buildstream17:39
*** lachlan has quit IRC17:40
*** alatiera has quit IRC17:41
*** nimish2711 has quit IRC17:49
*** nimish2711 has joined #buildstream17:53
*** nimish2711 has joined #buildstream17:53
*** lachlan has joined #buildstream17:59
*** nimish2711 has quit IRC18:08
*** lachlan has quit IRC18:20
*** lachlan has joined #buildstream18:38
*** nimish2711 has joined #buildstream18:40
*** nimish2711 has quit IRC18:45
*** nimish2711 has joined #buildstream18:55
*** lachlan has quit IRC18:57
*** nimish2711 has quit IRC19:00
*** nimish2711 has joined #buildstream19:01
*** nimish2711 has quit IRC19:06
*** nimish2711 has joined #buildstream19:06
*** lachlan has joined #buildstream19:15
*** lachlan has quit IRC19:22
*** nimish2711 has quit IRC19:26
*** nimish2711 has joined #buildstream19:26
*** nimish2711 has quit IRC19:51
*** nimish2711 has joined #buildstream19:52
*** nimish2711 has quit IRC19:57
*** nimish2711 has joined #buildstream20:22
*** nimish2711 has quit IRC20:40

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