IRC logs for #buildstream for Thursday, 2020-10-01

*** tristan has joined #buildstream03:28
*** ChanServ sets mode: +o tristan03:28
gitlab-br-bottristanvb opened issue #1397 (Incorrect `no-member` linter errors from cython modules) on buildstream https://gitlab.com/BuildStream/buildstream/-/issues/139704:30
tristanlooking here: It *appears* that we do not support specifying a link as the key to a junction we want to override in a subproject: https://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/_loader/loader.py#L48405:15
tristanBut I've added a test for it, and it appears to pass :-S05:15
tristanAha, ok so it does work part of the time05:19
tristanit wont work in a deeper context05:19
*** tristan has quit IRC05:41
*** WSalmon has quit IRC05:42
*** tpreston has quit IRC05:42
*** WSalmon has joined #buildstream05:43
*** WSalmon has quit IRC05:48
*** WSalmon has joined #buildstream05:50
*** tristan has joined #buildstream07:59
*** ChanServ sets mode: +o tristan07:59
gitlab-br-bottristanvb merged MR !2026 (tristan/lazy-provenance->master: Refactor: Lazily instantiate ProvenanceInformation objects) on buildstream https://gitlab.com/BuildStream/buildstream/-/merge_requests/202608:01
gitlab-br-bottristanvb opened issue #1398 (Junction `overrides` feature does not resolve links) on buildstream https://gitlab.com/BuildStream/buildstream/-/issues/139808:12
gitlab-br-bottristanvb opened MR !2078 (tristan/fix-overriding-links->master: Fix junction overrides to resolve links) on buildstream https://gitlab.com/BuildStream/buildstream/-/merge_requests/207808:13
tristanjuergbi, benschubert ... any thoughts on what to do for https://gitlab.com/BuildStream/buildstream/-/issues/1398 would be appreciated08:23
tristanI added a "proposed fix" there but I'm not sure it's great08:23
juergbiwill take a look in a bit08:23
* tristan also added (failing) tests to !2078, but no code towards fixing it08:23
benschuberttristan: I'll look into it too08:27
benschuberttristan: also concerning !2070, what would you think of a test that validates the format of the logging output for each files (main log, and then elements logs) so we are sure not to regress? Would be a tad annoying to update, but I think it would be worht it on the long run08:28
gitlab-br-botMR !2070: Restore task element name / element name distinction in UI https://gitlab.com/BuildStream/buildstream/-/merge_requests/207008:28
benschubertjuergbi: concerning the asserts in the threaded scheduler, I tried on master first, turns out 'update_ready_for_runtime_and_cached is also called in jobs :( Do we want to fix that on master first or should I bundle in my MR?08:29
juergbibenschubert: if it's a simple fix, it's fine with me either way. if it's more delicate, a separate MR would probably be good08:33
juergbiif in the same MR, it should still be a separate commit, of course08:33
benschubertjuergbi: ok I'll separate then, it's not a simple one afaict08:33
benschubertAlso, __update_cache_key_non_strict is called in the jobs? Is that expected or should I remove that too?08:34
juergbibenschubert: in both cases this is about caching at the end of assemble, right?08:40
benschubertafaict yes08:41
juergbias __update_cache_key_non_strict() already calculates the cache key on __assemble_scheduled, I don't see a reason why we need this at all08:41
juergbii.e., maybe we can simply drop that call08:41
benschubertthat would make sense08:41
juergbiand then add an assert also to __update_cache_key_non_strict()08:41
juergbiit might have been needed with the old workspace code08:41
juergbiand wasn't removed afterwards08:41
*** santi has joined #buildstream08:41
benschubertseems like it indeed08:42
benschubertI'll clean that up08:42
benschubertthanks!08:42
juergbiI might also be forgetting some complex non-strict case again, of course08:42
juergbihowever, hopefully our test suite is complete enough for these cases08:42
benschubertmmh we however know both the strict and non strict key before running nowadays no? Or is that if we don't have the artifact locally and pull it?08:44
benschubert(In which case I could have the call put in a better place, not in the job)08:44
juergbiwe should know all keys before we start assembling, yes08:45
juergbithe old workspace code was really the only case where we didn't08:45
juergbihowever, we may not know the strong key in the non-strict case at the beginning of a build session (due to pulling)08:46
juergbi__schedule_assembly_when_necessary() calls __update_cache_key_non_strict()08:46
benschubertah fair, yeah so that _should_ work08:46
juergbiI think this should be enough08:46
benschubertI'll try it out and put a PR up08:46
juergbita08:47
benschubertand then look on the last things that I need to fix on this branch, hope to get it done by end of week08:47
*** tomaz has quit IRC09:18
*** tristan has quit IRC09:40
*** tristan has joined #buildstream09:40
*** ChanServ sets mode: +o tristan09:41
benschubertjuergbi: Ok I'm getting down the hole: https://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/element.py#L1854 is currently required, as 'self.__cache_key' is None and 'self.__artifact._cache_key' too. However, since we' just pulled the artifact, would something like: 'if self.__cache_key is None: read_cache_key_from_artifact' there do? I am not sure what's the best there. We absolutely need cache keys to cache the09:46
benschubertartifact right?09:46
juergbi'we just pulled the artifact'?09:46
juergbiI thought this is only called at the end of assembly09:47
juergbiwe definitely need cache keys to cache the artifact09:48
juergbihowever, we should also always be able to calculate them before even starting assembly09:49
juergbi(i.e., already in the main process)09:49
benschubertSo all 4 tests failing are around 'no_strict' tests09:49
benschubertlet me push a branch09:49
juergbiah, we schedule assemble even when the element is not buildable yet09:50
juergbiso we might need a __update_cache_key_non_strict() call in _update_ready_for_runtime_and_cached() when it becomes buildable09:51
benschubertah I can try that!09:52
benschubertUh, update_ready_for_runtime_and_cached does call update_cache_key_non_strict09:56
benschubertso we really want a circular call there?09:56
juergbibenschubert: oh, that does seem a bit odd, although I don't think there is a real issue as _update_ready_for_runtime_and_cached() has a check to never execute the body twice10:19
juergbiactually, the new call would be on the `rdep`10:20
benschubertyeah, seems like it's actually passing the tests :)10:20
juergbiso it wouldn't be circular for a single element10:20
benschubertI'll update the PR and run a benchmark though10:20
benschubertinteresting, didn't fix the tests10:21
benschubertwait, update_ready_for_runtime_and_cached doesn't compute keys10:23
benschubertah! in update_cache_key_non_strict:10:24
benschubert            if self._pull_pending():10:24
benschubert                # Effective strong cache key is unknown until after the pull10:24
benschubert                pass10:24
benschubertso that's expected, what we need is to just calculate_cache_key in assemble_done afaict?10:25
juergbibenschubert: if pull is pending, we're not assembling (yet)10:33
juergbiso why would this be an issue?10:33
benschubertah no right10:33
benschubertthere's something odd happening10:33
*** tristan has quit IRC10:48
*** coldtom has quit IRC10:49
benschubertjuergbi: https://gitlab.com/BuildStream/buildstream/-/jobs/767327513#L1887 this is what is happening. We do have the 'weak cache key' present at that point, not the strict, and computing the strict cache key and setting it on the artifact is not enough to allow caching it10:51
*** coldtom has joined #buildstream10:51
benschubertI am not familiar enough with that part of the code :/ do you have another pointer?10:51
juergbilet me take a look10:53
benschubertthanks10:55
benschuberthttps://gitlab.com/BuildStream/buildstream/-/merge_requests/2079/diffs?commit_id=7970101692e40cbc77fab752d84ba674ca47a0b2 is my last try juergbi if ever10:56
benschubertbut doesn't work10:57
*** santi has quit IRC11:04
*** santi has joined #buildstream11:04
juergbibenschubert: test suite passes locally with https://gitlab.com/BuildStream/buildstream/-/snippets/2020959 on top of your branch11:05
benschubertah right -_-' that makes more sense, thanks!11:05
juergbihowever, buildable() is not really a good place as a trigger as it's not supposed to have side effects, imo11:05
benschubertso putting it inside the if block of update_ready_... ?11:06
juergbipossibly11:06
juergbihave to eat something now11:06
benschuberthaha sure! I'll give it a go thanks!11:07
gitlab-br-botabderrahimk opened MR !2080 (abderrahim/no-delete-extract->master: _context.py: don't delete bst1 extract directory) on buildstream https://gitlab.com/BuildStream/buildstream/-/merge_requests/208013:48
benschubertjuergbi: https://gitlab.com/BuildStream/buildstream/-/merge_requests/2079 is slowing down a bit sadly, I am not sure I can make it much faster without diving much deeper. It is still an improvement in correctness and I added all the asserts I think are needed14:44
juergbibenschubert: the overhead might be slightly lower with the thread-based scheduler14:49
juergbifor the asserts14:49
benschubertYeah I'd expect that too14:50
juergbiI don't think this is a blocker, especially given that it doesn't make sense profiling before switching to the thread-based scheduler14:50
benschubertok! then it's ready to be reviewed :)14:51
*** tpollard has joined #buildstream14:55
*** tpollard has quit IRC16:02
*** cs-shadow has joined #buildstream16:21
*** santi has quit IRC17:40
*** santix has joined #buildstream17:40
*** santix has quit IRC17:48
*** cs-shadow has quit IRC18:41
*** benschubert has quit IRC23:22

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