IRC logs for #buildstream for Tuesday, 2019-03-12

*** nimish has joined #buildstream01:15
*** nimish has quit IRC03:09
*** mohan43u has joined #buildstream04:58
*** tristan has joined #buildstream07:15
gitlab-br-botmarge-bot123 closed issue #947 (Errors lack context when files are not found) on buildstream https://gitlab.com/BuildStream/buildstream/issues/94708:03
gitlab-br-botmarge-bot123 merged MR !1216 (tristan/missing-file-errors->master: Improve error reporting when files are not found) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/121608:03
*** alatiera has joined #buildstream08:46
gitlab-br-bottristanvb merged MR !1217 (tristan/missing-file-errors-1.2->bst-1.2: Improve error reporting when files are not found  (1.2)) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/121708:49
*** toscalix has joined #buildstream09:06
gitlab-br-bottristanvb merged MR !1212 (tristan/cleanup-workspace-tests->master: tests/frontend/workspace.py: Remove redundant and pointless tests) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/121209:23
benschuberttristan: did you have a look at the update_state yet?09:32
*** ChanServ sets mode: +o tristan09:35
tristanbenschubert, I didn't ! I thought you might say something last night and then I'd look at it in my daytime (which starts way earlier here in Korea)09:35
benschuberttristan: Oh, I gave an update yesterday (9:57pm London Time). Anyways no worries. I didn't have time to look at it. Let me know if you want to to it otherwise I'll do it asap09:36
tristanbenschubert, I'm not in a huge hurry to close #919 to be honest, I'll be in foss asia this week and if I have time to work on it I could, I would certainly have time to roll a bugfix release during the week if the fix is ready09:36
gitlab-br-botIssue #919: 'bst build <elem>' does not assemble all required elements in some circumstances https://gitlab.com/BuildStream/buildstream/issues/91909:36
tristanAh, I might have not been logged in at that time, my bad :-S09:36
benschuberttristan: sure, I'll work on it by the end of the week09:36
benschubertno worries09:36
benschubertSo we should add a "__runtime_deps_cache_key" on every element which is a hash of (direct runtime deps __runtime_deps_cache_key, __strong_cache_key). And add this as a condition for recursion. Correct?09:37
benschubertAre you happy with my PQ to speed things up?09:38
benschubertand thanks for the review on the linter btw, I'll answer those comments asap :)09:39
*** raoul has joined #buildstream09:39
tristanbenschubert, I don't really understand why we need the PQ if we only store direct runtime deps, in any case it will still unconditionally descend into each direct reverse dep right ?09:45
tristanOr does this balance the traversal somehow ?09:45
tristanFor the hash, when we spoke with juergbi earlier, I thought a saner approach would be to have a single hash which was inclusive of all conditions; maybe call it a __state_hash or something09:47
tristanbenschubert, then in the recursive function, we only need to check if one thing has changed, instead of various09:47
benschuberttristan: even if we store only direct runtime dependencies, we might have multiple elements having it, so the check would be done multiple times (For example A depends on B and C, B depends on C), we would change "C", then check A and B, then check A09:47
benschuberttristan: I would rather not do that, since I still hope in the future to know which exact key can change when and have a more fine-grained state update :)09:48
tristanOf course, that would have to change in the future when splitting up _update_state() functionality into domains, probably it would mean having different hashes to check09:48
tristanbenschubert, yeah we're on the same page about that granularity09:48
*** jonathanmaw has joined #buildstream09:48
tristanSo yeah, why not just have the runtime_deps_cache_key right away09:48
benschubertexactly!09:48
tristanI think in your last you mean s/even if we store only direct runtime dependencies/even if we store only direct reverse dependencies/ ...09:49
benschubertcorrect09:50
tristanSo in your example, when we recurse into C... we avoid double recursion into B and A, using the priority queue thingamajigie ?09:50
benschubertexact09:50
benschubertI will obviously benchmark both to see if the PQ is worth it09:51
benschubertbut my guess is that yes it is09:51
benschubert(I'll obviously put it somewhere else, with tests if we go for it)09:51
tristanbenschubert, I am not against the PQ if it buys us cycles, and I would agree that it does09:51
tristanor should probably indeed09:51
tristanbenschubert, however, it would probably be nice to tie up !1070 without the PQ and do that separately ?09:52
gitlab-br-botMR !1070: WIP: Refactor _update_state() to be called only when needed https://gitlab.com/BuildStream/buildstream/merge_requests/107009:52
benschuberttristan: sure as long at we don't end up being slower in 1070 because we don't have the PQ (it would be in its own commit anyways)09:52
tristanYou suspect that without the PQ, 1070 will make things slower than they already are ?09:53
tristanWell, if that's the case I don't really object, but I kind of doubt it :)09:53
benschuberttristan: in the case were we have a stack that represents all elements yes09:53
benschubertbecause we'll end up calling update_state on the stack way too many times :)09:53
tristanI see what you mean09:55
tristanbenschubert, interestingly it will be more expensive in the case that the stack element's cache key cannot be resolved in the given round09:55
benschubertwhich will be every time until we have it resolved09:56
benschubertHence having a PQ to reduce the number of calls we do there09:56
tristanyeah09:56
tristanI'm intrigued by the idea of passing along cache keys in another step, but I wonder what kind of data type or algorithm we could use09:59
tristanI wonder if we could have a kind of hashing algorithm, which yields the same output hash for N input hashes, regardless of the order in which the input hashes are provided10:00
benschuberttristan: with a push-based model for the pipeline, we know we would only need to update direct deps, I'll have a shot at this (and using the PQ for the queue will allow us to keep the order of insertion)10:00
* tristan not such a math expert to know if that is realistic10:00
benschuberttristan: do we really need this? I would think that's not super important since we have everything ordered anyways10:00
benschubertI mean a simpler Xor would do but...10:01
benschubertbytes(a) ^ bytes(b) ^ bytes(c) etc10:01
tristanbenschubert, I'm not sure the order it stable from session to session10:01
benschuberton 256 would be actually quite good10:01
tristanWhile the order might be stable within a single session10:01
benschuberttristan: from my work in the loader, I'm pretty sure it is10:01
tristani.e. your reverse deps traversals will differ depending on what is loaded as targets10:02
tristanWell, let10:02
tristangah ... let's see when we get there :)10:02
benschubertthe xor would be a good option :)10:02
benschubertand probably quicker than hashing :D10:02
tristanYeah, better to not exchange the calls to Element.dependencies() for a different loop of similar complexity ;-)10:03
tristanand do the hashing right away progressively, that would be nice10:03
gitlab-br-botaevri approved MR !1213 (chandan/container-plugins->master: doc/source/core_plugins.rst: Add link to bst-plugins-container) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/121310:07
*** phildawson_ has joined #buildstream10:09
*** tristan has quit IRC10:10
*** lachlan has joined #buildstream10:41
*** toscalix has quit IRC10:58
jmacGetting "Invalid requirement: '!nocover: -rrequirements/cov-requirements.txt'" when trying to run tox test atm11:02
*** toscalix has joined #buildstream11:02
KinnisonYou need a newer version of tox.  Install tox via pip3 and try again.  I hit that last week11:02
KinnisonIf tox --version shows the tox installed via pip you'll be good11:03
gitlab-br-botjuergbi approved MR !1221 (jennis/assert_composition_failure->master: Add tests to ensure that overwriting on subsequent compositions does not fail) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/122111:09
jennista juergbi11:10
*** lachlan has quit IRC11:32
*** kapil___ has joined #buildstream11:34
jmacKinnison: OK, but having to replace version of my system utilities is a bit onerous11:38
jmacI'm not very impressed with this move to tox tbh11:38
jmacMy version of tox from pip3 is also 2.5.0 and has the same problem11:40
juergbijmac: are you sure it's the tox from pip3? if so, pip3 -U should help to upgrade11:48
*** lachlan has joined #buildstream11:50
jmac`pip3 list tox | grep tox` => tox (2.5.0)11:53
jmac`tox --version` => 2.5.011:53
benschubertjmac: `which tox` gives you what?11:55
jmacbenschubert: /usr/bin/tox11:56
benschubertjmac: then you are still using your system's tox11:56
benschubertjmac: you should `pip install --user tox` and check it's using your local user's tox11:56
jmacOK, now it's /home/jimmacarthur/.local/bin/tox, but still 2.5.011:57
benschubertpip install --user --upgrade tox ?11:59
*** raoul_ has joined #buildstream12:01
jmacNot much help. Although it says it's installed tox 3.7.0, my local version is still 2.5.0.12:01
*** raoul has quit IRC12:02
jmacAh, might be bash caching it12:02
jmacYeah,  that was it12:02
jennissassy marge: https://gitlab.com/BuildStream/buildstream/merge_requests/1221#note_14964218812:42
adds68jennis make sure marges timeout is set the the same as your CI timeout12:43
jennisTurns out there was a hanging test, it seems like it's at a sensible value12:48
juergbiphildawson_: this appears to fail now with !1158 merged: tox -- tests/frontend/buildtrack.py12:51
gitlab-br-botMR !1158: Make it easy to test BuildStream against external plugins https://gitlab.com/BuildStream/buildstream/merge_requests/115812:51
juergbiit first properly runs those tests but then fails with tons of: ValueError: option names {'--integration'} already added12:52
*** raoul_ has quit IRC13:13
*** nimish has joined #buildstream13:25
*** phildawson_ is now known as phildawson13:32
* phildawson takes a look13:32
*** nimish has quit IRC13:42
*** nimish has joined #buildstream13:43
*** nimish has quit IRC13:48
*** nimish has joined #buildstream13:48
benschubertI'm getting13:53
benschubertFile "/home/bschubert/.local/lib/python3.6/site-packages/buildstream/_scheduler/jobs/job.py", line 425, in _child_action13:53
benschubertresult = self.child_process()  # pylint: disable=assignment-from-no-return13:53
benschubertFile "/home/bschubert/.local/lib/python3.6/site-packages/buildstream/_scheduler/jobs/cachesizejob.py", line 31, in child_process13:53
benschubertreturn self._casquota.compute_cache_size()13:53
benschubertFile "/home/bschubert/.local/lib/python3.6/site-packages/buildstream/_cas/cascache.py", line 1065, in compute_cache_size13:53
benschubertnew_cache_size = self.calculate_cache_size()13:53
benschubertFile "/home/bschubert/.local/lib/python3.6/site-packages/buildstream/_cas/cascache.py", line 1080, in calculate_cache_size13:53
benschubertreturn utils._get_dir_size(self.casdir)13:53
benschubertFile "/home/bschubert/.local/lib/python3.6/site-packages/buildstream/utils.py", line 631, in _get_dir_size13:53
benschubertreturn get_size(path)13:53
benschubertFile "/home/bschubert/.local/lib/python3.6/site-packages/buildstream/utils.py", line 624, in get_size13:53
benschuberttotal += f.stat(follow_symlinks=False).st_size13:53
benschubertFileNotFoundError: [Errno 2] No such file or directory: '/home/bschubert/.cache/buildstream-cache/buildstream/cas/tmpfa6k35pq'13:53
benschubertwhen running BuildStream. Any tips on how to debug this?13:53
*** raoul_ has joined #buildstream13:53
juergbibenschubert: you're not running multiple `bst` instances at the same time, are you?13:57
juergbiat first glance it seems like a temporary files was deleted during the file enumeration that happens as part of size calculation13:58
juergbiwe should probably not error fatally in that case, however, it's not supposed to happen with the current exclusive write access for cache cleanup/size jobs, afaict14:00
juergbiwe should also create all temporary files in the temp directory14:01
benschubertjuergbi: I'm not running multiple time bst no14:01
*** nimish has quit IRC14:08
*** nimish has joined #buildstream14:08
*** nimish has joined #buildstream14:09
benschubertany idea on where to track for tmp file created in the cas directory?14:11
juergbihm, tried to find it with a quick grep but couldn't spot anything using the cas dir for this instead of the temp dir14:16
benschubertjuergbi: I am using https://gitlab.com/BuildStream/buildstream/commits/66edc2818ebcc8a470e6dc9878c15e2cca672e3b as a buildstream version. Anything modified in the CAS afterwards that might fix it?14:19
benschubertand the problem is consistent. 7 of my 7 runs failed with different tmp files14:20
gitlab-br-botmarge-bot123 merged MR !1213 (chandan/container-plugins->master: doc/source/core_plugins.rst: Add link to bst-plugins-container) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/121314:20
juergbibenschubert: I don't think master has any relevant changes since then14:22
juergbiah, reproducible, interesting, so unlikely to be a race condition14:22
benschubertjuergbi: 8 out of 8 runs now14:22
benschubertdifferent tmp files obviously14:22
juergbianything that I could also quickly test here?14:22
juergbii.e., what are you doing to trigger it?14:23
benschubertinternal stuff, just building one of our projects14:23
*** nimish has quit IRC14:24
benschubertit runs for 3 to 10 minutes and then crashes14:24
*** nimish has joined #buildstream14:24
juergbiah, it might actually be the temp file used to atomically create the 'cache_size' file14:26
benschubertcan you provide a test ?14:27
juergbithat could only be an issue if two cache size jobs are running at the same time, though14:28
juergbiwhich shouldn't happen anymore since the scheduler was fixed up14:28
juergbibut maybe there is still something wrong there, hm14:28
*** nimish has quit IRC14:29
*** nimish has joined #buildstream14:30
benschubertjuergbi: I tried adding "tempdir=self.tmpdir" in that place, let's see what happens14:33
juergbibenschubert: ignoring FileNotFoundError in utils._get_dir_size() or only checking the 'objects' directory in calculate_cache_size() should both work around this issue, but it might hide a real underlying scheduling issue14:33
aevriSeems like we should use the tempdir arg here regardless: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/_cas/cascache.py#L118214:33
*** lachlan has quit IRC14:46
*** nimish has quit IRC14:50
*** nimish has joined #buildstream14:50
laurence-i've noticed a few marge bot comments about CI taking too long recently14:58
laurence-the limit is set to 90 mins at the moment14:58
laurence-should we raise this?14:58
phildawsonI think adds68's suggestion of setting marges timeout the same as the CI timeout makes sense.15:00
benschubertjuergbi: adding the tmpdir managed to fix the problem. Any idea on how to hunt the root cause of it though?15:08
juergbibenschubert: maybe debug log prints for start/end of calculate_cache_size() as well as calls to set_cache_size()15:09
juergbithey are supposed to never overlap, but it sounds like they do15:10
*** nimish has quit IRC15:10
*** nimish has joined #buildstream15:10
gitlab-br-botmarge-bot123 closed issue #938 (Overwrite does not raise error when we try to overwrite a non-existent node) on buildstream https://gitlab.com/BuildStream/buildstream/issues/93815:13
gitlab-br-botmarge-bot123 merged MR !1221 (jennis/assert_composition_failure->master: Add tests to ensure that overwriting on subsequent compositions does not fail) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/122115:13
benschubertjuergbi: sure I'll do that thanks15:14
*** nimish has quit IRC15:20
*** jonathanmaw has quit IRC15:20
*** nimish has joined #buildstream15:21
*** jonathanmaw has joined #buildstream15:21
*** nimish has quit IRC15:26
*** nimish has joined #buildstream15:26
*** drll has joined #buildstream15:43
*** drll has quit IRC15:47
*** nimish has quit IRC15:56
*** nimish has joined #buildstream15:56
*** lachlan has joined #buildstream16:00
*** nimish has quit IRC16:01
*** nimish has joined #buildstream16:02
gitlab-br-botBenjaminSchubert opened (was WIP) MR !1222 (bschubert/linter-for-tests->master: Enable pylint on the tests) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/122216:03
*** lachlan has quit IRC16:18
*** nimish has quit IRC16:27
*** nimish has joined #buildstream16:27
*** lachlan has joined #buildstream16:28
*** nimish has quit IRC16:32
*** nimish has joined #buildstream16:32
*** nimish has joined #buildstream16:33
*** nimish has quit IRC16:38
*** nimish has joined #buildstream16:38
*** lachlan has quit IRC16:39
*** tristan has joined #buildstream16:40
*** nimish has quit IRC16:48
*** nimish has joined #buildstream16:48
*** rdale has joined #buildstream16:48
gitlab-br-botaevri opened MR !1223 (aevri/doc_artifact_log->master: 'artifact log': document the 'artifacts' argument) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/122316:48
aevriFun easter-egg: you can list all your cached artifacts with the error message from "bst show '*'" - handy before you run 'bst artifact log' :)16:49
*** nimish has quit IRC16:58
*** nimish has joined #buildstream16:59
*** lachlan has joined #buildstream17:03
*** lachlan has quit IRC17:13
*** nimish has quit IRC17:14
*** nimish has joined #buildstream17:14
*** lachlan has joined #buildstream17:16
*** alatiera has quit IRC17:23
*** alatiera has joined #buildstream17:28
gitlab-br-botaevri opened (was WIP) MR !1210 (aevri/nodefaultsset->master: element.__init_default: treat `None`  plugin_conf as if missing file + refactor) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/121017:35
*** toscalix has quit IRC17:37
*** nimish has quit IRC17:39
*** nimish has joined #buildstream17:39
*** lachlan has quit IRC17:41
benschubertphildawson: would it be possible to move the tests for external plugins in another tox environment? It's super annoying to have it fail whenever you run "tox -- tests/my/file/to/test"17:50
*** raoul_ is now known as raoul17:51
raoulhad just rebased my branch onto master and was wondering why that was happening now17:52
phildawsonbenschubert, I don't see any reason why not. I'll put together a quick MR17:52
benschubertphildawson: thanks :D17:52
juergbiit looks like there are lots of CI issues right now18:00
*** lachlan has joined #buildstream18:01
*** jonathanmaw has quit IRC18:02
gitlab-br-botjuergbi opened issue #955 (Follow-up from "Artifact 'abstraction' class") on buildstream https://gitlab.com/BuildStream/buildstream/issues/95518:04
*** nimish has quit IRC18:09
*** nimish has joined #buildstream18:10
phildawsonbenschubert, I've opened !1224. I'll deWIP it in the morning once I've verified the coverage collection is working properly :)18:13
gitlab-br-botMR !1224: WIP: Move external plugin tests to seperate tox environment. https://gitlab.com/BuildStream/buildstream/merge_requests/122418:13
benschubertphildawson: thanks!18:15
*** alatiera has left #buildstream18:19
*** nimish has quit IRC18:20
*** nimish has joined #buildstream18:20
*** lachlan has quit IRC18:24
*** alatiera has joined #buildstream18:32
*** raoul has quit IRC18:32
*** nimish has quit IRC19:05
*** tristan has quit IRC19:45
gitlab-br-botmarge-bot123 closed issue #908 (Create Artifact abstraction class) on buildstream https://gitlab.com/BuildStream/buildstream/issues/90821:16
gitlab-br-botmarge-bot123 merged MR !1175 (tpollard/908->master: Artifact 'abstraction' class) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/117521:16
*** slaf_ has joined #buildstream21:59
*** slaf_ has joined #buildstream21:59
*** slaf_ has joined #buildstream22:00
*** slaf_ has joined #buildstream22:00
*** slaf_ has joined #buildstream22:00
*** slaf_ has joined #buildstream22:01
*** slaf has quit IRC22:01
*** slaf_ is now known as slaf22:01
*** tristan has joined #buildstream22:04
*** tristan has quit IRC23:51

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