IRC logs for #buildstream for Tuesday, 2018-03-13

*** xjuan has quit IRC00:52
*** Prince781 has quit IRC03:14
*** tristan has quit IRC06:01
*** tristan has joined #buildstream06:28
tristanjuergbi, not sure why... but tests/artifactcache/junctions.py::test_push_pull has a tendency to hang on my machine08:41
tristanI have a currently hanged state08:41
juergbii've seen hanging tests after a failure sometimes08:42
juergbihowever, i don't recall hanging tests when they succeed08:42
tristanall green08:42
tristanand it's really often *that* test08:42
tlatertristan: Nexus has seen similar issues on a different test, worth asking him how far he's into debugging that08:42
juergbido you see a backtrace when you interrupt?08:42
tristanI dont have problems with other tests that I can recall, actually08:42
* tristan interrupts08:42
tristanother tests running now... but I should get a capture...08:43
tristantests/frontend/buildcheckout.py::test_build_checkout[strict-copies] failed08:43
tristanjuergbi, no stack trace :-(08:48
tristanjuergbi, https://bpaste.net/show/70eae6fb84d608:48
tristanthat is junctions.py:test_push_pull()08:48
tristanand the other failing test, *does* have stack track08:49
tristanperhaps it can help inform about state during the run08:49
* tristan pastes that08:49
tristanjuergbi, the other failing test, test_build_checkout[strict-copies]: https://bpaste.net/show/67681b54c98008:50
tristanself.scheduler.loop is None for some reason08:51
juergbiso this appears to have hanged:08:52
juergbi[--:--:--][2613eb12][ push:target.bst  ] START   Preparing compressed archive08:52
*** aday has joined #buildstream08:52
tristanostree strikes back !08:52
juergbido you use parallel execution of tests?08:52
tristannope08:53
juergbipreparing compressed performs a local ostree fetch into archive-z208:54
tristanyep08:54
tristanThat happens inside a child task08:55
tristanIt could be while creating the repo (ensure_repo), or while fetching into the new temporary repo08:55
juergbimaybe there is still some fork-related ostree issue?08:56
* tristan wonders if ostree is getting used again in the main process for some reason08:56
tristanOr, maybe we need to be more aggressive about never importing `gi` in the main process08:56
juergbiwe actually do use it in the main process08:57
juergbie.g., for .contains()08:57
tristanHrmmm08:59
tristangood point that we do; that is broken08:59
tristansigh :(09:00
tristanjuergbi, I do get that you will again say fork() without execve() is bad, I understand that09:00
tristanI dont hold that opinion, but my opinion doesnt matter, because nobody cares09:01
juergbihehe, i was trying not to say anything ;)09:01
juergbiit's not bad if you control all code that are used in the process09:01
tristanand because nobody cares, people will still keep firing up threads in libraries without clearly communicating that to API consumers09:01
juergbiwith 3rd party libraries that's pretty much impossible09:01
tristanit's only impossible because people just dont care09:02
tristanand in glib 10 years ago, we didnt really help09:02
tristanwith the choice to unconditionally initialize threads09:02
juergbitimes have changed09:02
tristanand because of general lack of diligence "we cannot have nice things" happens09:02
tristanyes :(09:02
juergbithreads are not the only issue with fork, though09:04
juergbiopen socket connections09:04
tristanSimilar thing, though09:04
*** jennis has joined #buildstream09:05
tristanI mean "we had ways" really, as long as you knew what you were doing, and libraries performed predictably09:05
* tristan recalls a special case he had in place for the X11 socket, so that he could *instantaneously* spawn the jukebox UI on multiple remote displays without wasting time parsing xml and re-building hierarchies09:06
juergbifork can be convenient in some cases but i don't consider it a very elegant solution09:07
juergbiit's mostly a historic relict09:07
tristanit has different properties, but I would do well to agree with you on this09:08
juergbiand the original purpose was not as variant for concurrency09:08
juergbiit was a way to deal with little system memory. and there was no copy on write09:08
juergbihm, that's odd, now i see tests/frontend/push.py::test_push_after_pull hanging here as well..09:10
tristanAnyway; we are not "doomed", in the short term we can put out these fires by placing thread-using things into subprocesses, but for longevity, I guess we have to eventually switch to a threading model09:10
juergbiyes, we'll have to come up with a sensible plan... without breaking API09:16
tristanI suspect that part wont be too hard, given the nature of what plugins are doing09:18
tristanwe've also been pretty careful about what tools we give them access to09:18
tristanhmmm, second failure in a row of test_build_checkout() with stack trace09:19
*** jonathanmaw has joined #buildstream09:20
tristanjuergbi, I'm still not 100% sure about the game plan for cross-junction tracking, API-wise; or... I maybe dont like the plan09:24
tristanjuergbi, first thing I'm gonna do in the branch; is lay down the law that it's not allowed unless the toplevel project uses project.refs; where it's supported09:24
juergbithat definitely makes sense09:25
tristanso that is either (A) bail out with error that recursive tracking has been requested where impossible, or (B) filter out those elements and print a warning09:25
tristanI am thinking... regular consistent --except options can be employed... and besides this, maybe --except-junctions convenience switch09:26
tristanThis would mean, with the error; one could recommend `--except-junctions`, and in that way communicate that a recursive, unbounded with --except track command really means to track recursively09:27
tristanIf we make the default the other way around, and require that cross-junction tracking take an additional switch; this feels like a more confusing interface09:28
juergbiyes, not sure about the best approach09:35
juergbiin a way i feel like the deps approach is not ideal for selecting elements to track09:35
*** toscalix has joined #buildstream09:36
juergbii would typically either want to track only the specified element(s) or track all elements in a project09:36
juergbibut although that would again not make sense in context of tracking as part of a build09:37
tristanbuild + track should not be any different09:38
tristanConsider `build + track` as simply a sort of scheduling optimization "because we can"09:38
tristanthat makes things easier to think about09:38
juergbiyes, this consistency makes a lot of sense09:38
juergbijennis: sorry for the comment spam. the branch looks mostly good. just a few minor history fixes to avoid the current situation of broken tests for intermediate commits09:39
tristanI typically want to track only the specified elements, *or* I want to select a part of the stack for tracking; I probably rarely ever want to track the *whole project*09:39
tristan(I may want to track the whole project; when the whole project is fairly small and does not use any junctions, and I may want to track only the toplevel project when junctions are involved)09:41
jennisHi juergbi, thanks, I'm working through them now09:41
juergbitristan: with the whole project i meant without subprojects. this is for the situation such as a distro (or freedesktop-sdk) that might want to do daily or weekly tracking of all elements09:42
tristanright09:42
juergbican just use a toplevel target and deps all of course09:42
juergbiand except-junctions09:42
tristanjuergbi, in the GNOME project for instance, we are probably going to have a middle ground area; where things that GNOME depend on are not acceptable in freedesktop-sdk09:43
tristanthis will most probably live in the base/ subdir, identifiable by base.bst stack09:43
tristanI can see this as a regular pattern too, "things you additionally need, but dont directly develop"09:44
juergbiyes, makes sense09:44
juergbiand use except for that09:44
tristanexactly09:44
juergbisounds sensible09:45
juergbitristan: project.refs and embedded refs are not usable in combination, correct?09:47
tristanIt looks like the major blocker to addressing of junctioned elements is the loader09:47
tristanjuergbi, correct09:47
juergbii'm wondering, would it make sense to make separate-source-refs be a path09:47
juergbiand allow overriding in bst command line09:47
tristanjuergbi, I have a fat warning when we load the pipeline, which lists the inline refs which are going to be ignored09:48
juergbithat way you could have a commited project.refs but the user could have his own uncommitted one09:48
juergbithe loader can already address junctioned elements for dependencies. it just doesn't support a single string syntax09:48
tristanalternative project.refs is a possibility, i.e. "use these refs instead"09:48
tristanjuergbi, does the loader scan all the .bst files for junctions in an initial pass and load them first ?09:49
juergbino, it's on demand09:49
juergbifirst time encountered and cached09:49
juergbibut that should also work for the single string syntax, afaict09:50
tristanHmmm, actually it doesnt need that09:50
tristanyeah, since the single string syntax specifies the junction.bst element first, we would only need to first load *that* one09:50
tristaninvoking `bst -C sdk/ track bootstrap-junction.bst:diffutils.bst` ... well you can imagine from there what the loader has to do hehe09:51
tristanjuergbi, does Plugin._get_full_name() work for deeply nested junctions ?09:57
* tristan would expect something recursive there, maybe calling Plugin._get_full_name() on `project._junction`, instead of `project._junction.name` directly09:58
juergbitristan: as it is right now we merge junctions by name10:00
juergbiso we don't need the recursive approach10:00
juergbihowever, i actually want to propose an alternative to that as it's not suitable for all cases10:01
tristanjust trying to understand the flow of code10:01
tristanMkay, I will avoid this addressing10:01
tristanfor this branch10:02
Nexuswas i mentioned?10:09
*** jennis_ has joined #buildstream10:13
*** tiago has quit IRC10:16
*** tiago has joined #buildstream10:19
*** dominic has joined #buildstream10:20
tlaterNexus: tristan found another hanging test case, probably worth reading the backlog and seeing if you have the same issue10:24
Nexusdifferent test10:24
tlaterIn this case it was ostree being thread-unsafe, I struggle to see how this would affect your case, but worth looking into10:24
juergbiplease note that the ostree thread issue is just a suspicion10:26
juergbiostree is innocent unless proven guilty ;)10:26
tristantlater, it is just a suspicion, and "thread-unsafe" is a very inaccurate description10:26
juergbirather fork-unsafe10:27
* tlater likes fork-unsafe :)10:27
tristanwhich is fair - tlater rather "calling into ostree" from the main process, when we *know* we're going to later fork-without-execve, has been known to cause problems10:27
Nexustristan: given you were quite involved in what i did in !310, could you have a look at what might be causing my test to hang please? I spent all of yesterday on it and couldnt resolve it. I got as far as it dying on `capture.startcapturing()`10:28
juergbiNexus: i don't remember, is it hanging locally as well or only on gitlab?10:29
NexusWHEN i can get it to run on my machine, and use BST_FORCE_BACKEND=unix, it fails locally too10:29
*** tristan has quit IRC10:31
*** tristan has joined #buildstream10:33
tristanNexus, what is the test10:39
tristanname10:39
tristanI can't easily search through that pipeline for "failed"10:40
Nexustest_script_cwd10:40
Nexusjuergbi: re: your comment on !305. If i don't have the contents of the package in the buildstream git, how can i test against it?10:47
tristanNexus, ok so; that is a place where we are assigning %{build-root} in the element, you got that far right ?10:47
Nexustristan: where sorrt?10:49
Nexussorry*10:49
tristantests/integration/project/elements/script/script-layout.bst10:50
tristanis *setting* %{build-root}10:50
Nexusright ok10:51
tristanThis looks like it may be near the root cause of failures10:51
Nexusso do i need to change those values?10:51
tristanI dont have the answer at a glance10:52
tristanI think before changing anything, you need to figure it out10:52
Nexusi never even looked in that file10:52
tristan*why* the values would have to be changed, and *why* the test would be expected to pass or fail10:53
tristanNexus, its a part of the test case which is failing10:53
tristanelement_name = 'script/script-layout.bst'10:54
Nexusbut the test: test_script_layout passes10:54
tristanjonathanmaw and I cooked up the layout API for script elements, which allows powerful manipulation of the mount mappings for generic script elements10:54
Nexusah ok10:54
tristanThere was not anything requiring %{build-root} about it10:55
tristanbut it for some reason ended up in docs, I think we discussed removing this aspect between you and I10:55
tristanBut before removing it from the test, it's better to first identify *if* and then *why* the modification of %{build-root} in script-layout.bst is effecting the outcome10:56
Nexuswell won't it be redefined in later on? before build-root wasn't beign set was it?10:56
tristanNexus, We may decide to forbid modifications to %{build-root} separately, that is not a reason to not discover why it might be messing things up10:57
NexusWhat i mean is, %{build-root} is being set in the pipeline to /buildstream/%{project-name}/%{element-name}    won't that effect this definition?10:59
tristanNexus, iirc, this *works* on linux and works on your laptop but only fails on gitlab, in the unix case11:00
Nexusyes, unless i force it to run unix tests on my laptop11:00
Nexuswhich i unreliable at best11:00
Nexusis*11:00
tristanIt fails with unix tests on your laptop ?11:00
Nexusye11:00
Nexuss11:00
tristanNexus, it's no different than on gitlab11:00
tristanNexus, the FORCE_BACKEND thing exists *because* we dont have a real non-linux testbed11:01
Nexusit is since i have to manually remove files on my local machien to get them to run more than once11:01
tristanit's *also* what we use on gitlab11:01
tristanYou mean host tools ?11:01
tristanor, unix tests are violating the rules ?11:02
Nexusno, i mean, i norder to run them as unix tests, i reed to run them as root, which mounts things11:02
tristani.e. unix tests are still not idempotent ?11:02
tristantlater, ^^^ is that the case ?11:02
tlatertristan: I was pretty sure they were11:03
tristanif so, we need to reopen or refile the test issue11:03
tristanOk.11:03
tlaterThis is a bug if not11:03
tristanNexus, I think I have an *idea* that something is wrong with the patch11:03
tristantlater, ok so there is a bug; or something not entirely understood11:05
tristanoops s/tlater/Nexus11:05
*** valentind has quit IRC11:06
tristanNexus, but I dont think this is what is causing the failure - because it passes on linux but not on fallback platform11:06
tristanNexus, In your patch you assign 'build-root' variable in __init__, before instantiating Variables()11:06
tristanNexus, which means that we *ignore* any modifications that are set in the element yaml, we overwrite everything.11:07
tristanNexus, this is probably correct, and we can probably forbid any manual setting of `build-root` entirely, seems cleaner11:08
tristanNexus, but as we dont forbid it; the assignment technically belongs in Element.__extract_variables(), *in between* the two calls to _yaml.composite()11:08
tristanor, before both11:09
tristanyeah before both, directly after _yaml.node_chain_copy()11:09
tristanNexus, it will be interesting to know if the test starts to pass after changing that - if it does; then it's uncovering something quite wrong; which will require more detective work.11:10
* juergbi is confused11:15
juergbitristan: aren't we still setting build-root via projectconfig.yaml by default?11:16
juergbii don't see anything in __init__ in the latest patch11:16
juergbialso, i thought we agreed on %{element-name}, not %{element}11:16
Nexustristan: do you mean `variables['element'] = self.name`11:18
Nexusthat's the only thing i set in __init__11:18
tristanjuergbi, Yeah we agreed, element-name, not element; we're talking about build-root, the patch is about making build-root named by element11:22
tristanoh wait11:22
tristanjuergbi, yeah you're right; I'm balony11:23
tristansigh, I thought I had a hunch there11:23
tristanNexus, I was talking about that; but I was wrong :-/11:24
tristanNexus, that is the correct place, no need to change that; build-root should be setup the same11:24
Nexus:(11:26
tristanNexus, you are able to reproduce this on your machine right ?11:30
tristanNexus, that is first step11:31
Nexustristan: yes, but i then need to spenda good half an hour undoing all of the stuff it spews into my machine11:31
Nexuscurrently have the test hanging now11:31
tristanAll the stuff it spews into your machine, that sounds very, very worrisome; talk to tlater about that11:32
Nexusshall do11:32
tristanNexus, the next step, is to modify tests/testutils/runcli.py to print the command it's going to run *before* running it11:32
tristani.e. the `if self.verbose` block where it tells you what command ran, well you wont get that11:33
Nexustristan: i know the EXACT command it freezes on, i just don't know where to go from there11:33
tristanOk, so you can run it outside of ./setup.py test11:33
tristanWhich means, now you have real power11:33
tristanYou can now run strace and such.11:33
Nexusthe issue is, it freezes on capture.start_capturing(), which "I THINK" means something went wrong before then11:34
tristanSo the bug *only* happens within the fixture ?11:34
tristanThe command behaves as expected when you try to run it without ./setup.py test ?11:34
Nexusnot sure11:38
Nexusi don't know how it works well enough to run it out of the test11:40
Nexusit's called in invoke11:40
tristanThat's what I was saying about modifying runcli.py11:42
tristanSee where it prints the command that it runs, *when* it runs that; it will leave the system state as it was11:42
tristanWhich means you can copy/paste the command it ran and run it yourself11:42
Nexusah i see11:42
tristanNexus, except that since this is a *hang*, it wont get printed, because currently it only prints *after* self.invoke()11:43
tristanit's possible to reconstruct the command without that; by at least looking at the temp dir that it uses, but that's just a bit less convenient (you have to figure out what exactly the command was, with the --config arg and all)11:44
juergbiNexus: !305: as tlater mentioned you only need the filenames, you don't actually check the content, afaict. and you might even just need one or a few filenames per test. but committing the full file list should also be acceptable11:58
Nexusah i see11:59
Nexusi didn't know it was only the names checked11:59
Nexusalthough that makes sense11:59
gitlab-br-botbuildstream: merge request (issue-89_unique_build_dirs->master: WIP: Made modification to generate unique subdirs for built elements) #310 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31012:04
Nexusjuergbi: i'd still need to upload the .deb file12:12
tlaterNexus: that's fine I'd say, though you could use a sample project you made.12:13
gitlab-br-botbuildstream: merge request (issue-243_dpkg_import_source_plugin->master: WIP: Created DPKG Source plugin for Issue #10) #305 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/30512:14
Nexuskk replaced with empty files12:15
gitlab-br-botbuildstream: merge request (jmac/remove-sequence-id->master: Remove sequence ID.) #309 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/30912:15
jennis_juergbi, re that simplifiable if statement12:18
jennis_https://paste.gnome.org/pwt33sguh12:18
jennis_Also, if other people could share there thoughts. Basically, changing it to the latter will stop the warning however it's probably not as clear what that bit of code actually does. So do you think it's better to just disable the warning here or change the code to the latter?12:19
jennis_their*12:19
gitlab-br-botbuildstream: merge request (issue-89_unique_build_dirs->master: WIP: Made modification to generate unique subdirs for built elements) #310 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31012:20
*** jennis has quit IRC12:31
*** jennis has joined #buildstream12:31
*** jennis_ has quit IRC12:37
gitlab-br-botbuildstream: merge request (215-workspace-builds-might-not-rebuild-correctly-when-dependecies-are-updated->master: WIP: Resolve "Workspace builds might not rebuild correctly when dependecies are updated") #315 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31512:40
gitlab-br-botbuildstream: merge request (215-workspace-builds-might-not-rebuild-correctly-when-dependecies-are-updated->master: WIP: Resolve "Workspace builds might not rebuild correctly when dependecies are updated") #315 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31512:42
gitlab-br-botbuildstream: merge request (215-workspace-builds-might-not-rebuild-correctly-when-dependecies-are-updated->master: WIP: Resolve "Workspace builds might not rebuild correctly when dependecies are updated") #315 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31512:42
jmacTrying to get my head around composition again12:44
jmacIn https://buildstream.gitlab.io/buildstream/formatintro.html#format-composition, what's the difference between (1) and (2)?12:44
juergbiNexus: .deb file: can't we use snapshot.debian.org?12:47
juergbii don't think we should import random .deb files into buildstream git12:47
juergbias it's a small file, it might not be too bad, but it feels odd to me12:49
juergbias i mentioned a while ago, the alternative would be to also create the .deb as part of the test case12:49
juergbiif everyone else prefers importing the .deb, i won't argue over it12:50
tlaterjuergbi: I know this probably seems pointless, considering we're loading our base platform over the net, but it's probably better to avoid downloading from too many places in our test cases12:52
juergbiyes. however, snapshot.debian.org should guarantee availability, and we should be able to cache the source, i suppose. do we need to mark the test as integration test for this?12:53
juergbithat way it would only be downloaded once per system12:53
juergbiand it's a small .deb12:53
tlaterAh, you suggest we use buildstream to track the actual source?12:53
juergbidirectly specify snapshot.debian.org in the url, yes12:54
tlaterHm, I don't think we need to mark it as an integration test for that, no12:54
tlaterBut it certainly would be nicer :)12:55
tlaterErr, that probably is a bit ambiguous12:55
tlaterWe don't need to mark it as an integration test, I agree that it's a nicer solution12:55
tlaterAlthough we wouldn't get the persistent cache12:56
tlaterFor a persistent cache we'd need to mark it as an integration test, yes12:56
tlaterAlso use the integration cli helper12:57
*** tristan has quit IRC12:57
*** xjuan has joined #buildstream12:59
*** tristan has joined #buildstream13:04
tristanjmac, I replied on the issue; but from the core perspective they can be considered the same; they are _yaml.composite_dict()'ed together13:31
tristanearly on13:31
jmacCool, it's starting to make sense13:32
tristanjmac, this works pretty much in the same way as data/userconfig.yaml and the user's optional ~/.config/buildstream.conf13:32
jmacAny idea about the thing I posted up there ^? About steps 1 and 2 looking similar?13:32
jmacSteps 1 and 2 on https://buildstream.gitlab.io/buildstream/formatintro.html#format-composition13:33
Nexusjuergbi: wouldn't it be better to not require the internet to run tests?13:33
tristanjmac, the confusing part is that we have some optimization; there can be many element declarations (i.e. element.bst files) which are of the same *type* (or "kind")13:33
tristanjmac, so what we do; is the first time we resolve an autotools element for example; we hold on to that composition, in the Element.__defaults variable13:34
juergbiNexus: for non-integration tests that's definitely an argument. for integration tests we need it anyway13:34
tristanthose become the "defaults of the class", which only then need the "defaults of the instance" to be composited when elements get instantiated13:34
juergbiNexus: as i mentioned, importing a tiny .deb should probably be fine, assuming there is no license issue. i would prefer generating the .deb on the fly but i won't argue about this13:35
jmactristan: That just sounds like cacheing the results of the first few stages of composition13:35
tristanjmac, (1) is buildstream's builtin `data/projectconfig.yaml`... (2) is the project.conf of a project13:36
tristanfor your above question13:36
tristanjmac, and yes; that is exactly it; it's caching at the type level to avoid re-composition for every instance13:36
jmacBut (1) explicitly links to "Project configuration" and says it should be named project.conf13:36
tristanThat could be a problem in the docs :)13:37
jmacRight13:37
tristanthey need to explain better that they are of the same format13:37
jmacIn (0) Hard-coded means in Python then, not in projectconfig.yaml13:37
tristanOh gee13:38
tristanI dont like that (0) exists13:38
jmacThe user shouldn't see the distinction between (0) and (1) anyway13:39
tristanjmac, that is dirty and should be removed; one of the things I very much liked when I initially drafted the docs and how they get generated; is inline including of the .yaml configuration where possible13:39
jmacOK, sounds like something I can fix13:39
tristanSo yeah; if project.py is "defaulting stuff" hardcoded, that should be moved to projectconfig.yaml, such that it is accessible and viewable by the reader of documentation13:40
tristanand not an obscure undocumented value13:40
tristanNot all things have a default, though; e.g. project options; so there is a vector of things which cannot be self-documenting in the .yaml file itself13:42
jmacprojectconfig.yaml is inlined in that document but it's right at the end13:44
jmacI'll put a link in to it13:44
tristanjmac, the first link should probably link directly to: https://buildstream.gitlab.io/buildstream/projectconf.html#builtin-defaults13:44
* jmac nods13:44
tristanand then second section could use a link to the toplevel doc I guess13:45
gitlab-br-botbuildstream: issue #298 ("Unix integration tests not unmounting on crash") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/29813:53
jmacAny idea how to link to a particular paragraph in .rst files? The Sphinx/RST documentation has not helped so far.14:37
gitlab-br-botbuildstream: merge request (jmac/remove-sequence-id->master: Remove sequence ID.) #309 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/30914:40
jmacn/m, got it14:43
gitlab-br-botbuildstream: merge request (jmac/composition-docs-fix->master: Docs: Better explanation of defaults) #316 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31614:53
*** sstriker has joined #buildstream15:21
*** mcatanzaro has joined #buildstream15:32
Nexus[tlater, jonathanmaw] \o/16:25
jmacdominic: If there is a big difference between the times of two test runs, it'd be useful to see that, as it indicates a problem with our tests16:27
* dominic nods16:27
jmacI should get an example output format from the logfile scraper16:38
*** dominic has quit IRC16:43
jennisI've seen this cls used as an argument in many functions but can't find a class / import for it17:02
jennisCould anyone shed some light?17:02
*** valentind has joined #buildstream17:07
jennisBecause I'm not sure where these functions cls.<function_name> get called17:15
jennishttps://gitlab.com/BuildStream/buildstream/blob/master/setup.py#L16517:15
jennis*how17:15
jmacI think it's part of the @classmethod decorator17:16
jmacBit complicated because that definition is outside of a class. Later on, someone assigns ScriptWriter.get_args = get_args17:18
jmacSo now you can call ScriptWriter.get_args(dist, header) and it should get 'ScriptWriter' in the cls argument17:18
jmacI *think*17:18
*** sstriker has quit IRC17:18
jennisright, thanks jmac17:24
* jennis goes to readup on decorators17:25
aidenjennis, decorators are just functions that take functions and return functions17:26
jennista aiden17:27
*** dominic has joined #buildstream17:47
*** toscalix has quit IRC17:51
*** jonathanmaw has quit IRC18:05
*** slaf has quit IRC18:26
*** slaf has joined #buildstream18:26
*** slaf has joined #buildstream18:27
gitlab-br-botbuildstream: issue #299 ("Build sometimes hangs forever after "Unknown exception in SIGCHLD handler"") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/29918:42
jjardon[m]Hi, do we have an issue for inacurate timing reports? I've just noticed this: https://gitlab.gnome.org/GNOME/gnome-build-meta/issues/23#note_8044718:51
gitlab-br-botbuildstream: issue #300 ("Total build time for a given component doesnt seem to match the individual time of the different tasks") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/30018:53
juergbioh, that's really slow19:07
juergbihere adwaita-icon-theme build took 1min 49s in total, geoclue 20s19:12
juergbiwe already have an issue for inaccurate total session time (not including initialization) but i don't think we had a report for inaccurate element time yet19:13
juergbinot everything is part of a timed subtask, though, so some leftover is expected19:14
juergbihowever, it's usually a small difference19:14
juergbii would definitely also look into why this is so slow in the first place. due to low on RAM and/or spinning rust? or is the worker simply overloaded?19:16
*** dominic has quit IRC19:39
*** xjuan has quit IRC21:07
*** mcatanzaro has quit IRC22:10
*** aday has quit IRC22:11
*** aday has joined #buildstream22:12
*** aday has quit IRC22:35
*** valentind has quit IRC23:19

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