IRC logs for #buildstream for Wednesday, 2020-05-06

*** narispo has quit IRC03:24
*** narispo has joined #buildstream03:24
*** narispo has quit IRC03:47
*** narispo has joined #buildstream03:49
*** tristan has quit IRC06:05
*** tristan has joined #buildstream06:18
*** ChanServ sets mode: +o tristan07:09
tristanjunctions are fun07:09
tristanI just realized that if I can override the junction configuration in a subproject explicitly, that does _not_ mean we can just simply drop the junction in the subproject07:09
tristanI think it still means that we have to parse that junction for the overrides it makes on *it's* subprojects07:10
tristanjuergbi, any thoughts on that ?07:11
tristanheh07:11
tristanmaybe not07:11
tristanif its overridden from a higher level, that probably means disregarding any overrides made in an inbetween project07:12
tristanyeah, I'll run with that for now07:12
*** benschubert has joined #buildstream07:26
*** aminbegood has joined #buildstream07:28
WSalmonusing yesterdays master, should we still be stopping a build over grpc errors? did we decide we did like this behavoir? https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/jobs/53921416307:33
tristanCan we not get stdout/stderr printed to the console while tests are running anymore ? Or were we never able to do that ?07:38
*** aminbegood has quit IRC07:48
*** seanborg has joined #buildstream07:53
benschuberttristan: pytest -s works for some tests at least, but I think that since we capture the output in the clirunner, we have some weird stuff happening there07:54
juergbitristan: junction, if I understand you correctly, I agree. the an overridden junction should not be used at all07:54
WSalmonhas anyone run bst-1 lately? i dont know why this back port would cause that error, https://gitlab.com/BuildStream/buildstream/-/jobs/53924040107:56
tristanbenschubert, yeah it seems that we don't see the output while the test is running, if we pass `-s` then we only see the output when the test completes (if it completes)08:00
tristanI have an interesting little double failure here08:02
tristansince I'm no longer coalescing junctions by name, by default every junction is separate08:02
benschuberttristan: we can try to fix our cli runner to passthrough / print what it gets as we go, it would be really neat :)08:03
tristanThis appears to mean that for tests/format/junctions.py::test_nested_double, multiple tasks get scheduled with the same name08:04
tristanSo I get first an assertion from _state.py:State.add_task()08:04
tristanBut then the fun starts08:04
tristanThe scheduler handles this and says "Ok terminating tasks !"08:05
tristanand then self._process.terminate() gets called from job.py08:05
tristanAnd self._process is None at this point, triggering another assertion, causing the scheduler to say "heeeey there time to terminate some tasks again !"08:06
tristanand on we go08:06
tristanaround and around :)08:06
tristanI think that the task identifier should include the element id08:07
*** aminbegood has joined #buildstream08:08
tristanAh right now I remember what State is, that is the nice frontend abstraction we got from jonathanmaw08:08
tristanHmmmmm, but this might not be a good idea, because if they are legitimately different tasks they should definitely show up differently in the frontend08:11
tristanjuergbi, there is a hitch in the plan... which revolves around the old assumption that it's always okay to only print two levels of depth for element names in the UI08:12
tristanfoo.bst:base.bst:target.bst and bar.bst:base.bst:target.bst are not guaranteed to be the same, and there is no requirement for the toplevel to have a base.bst junction defined08:13
juergbiright, hm08:13
* tristan takes a moment to digest this, I don't like long element names in the UI :-S08:13
tristanAlthough, it might all around be more clear what is going on if we do that08:14
tristan(where doing that = printing full depth for every element)08:14
juergbiwhat do we currently do if we have really long element names? ellipsize the end?08:14
tristanNo, we horribly wrap08:14
tristanwithout any sense to it either08:14
tristanjuergbi, we could make frontend enhancements though08:15
tristanwith interactive mode, we can wrap the elements on the `:` if they are too wide and ensure well tabulated lines for multiline messages08:16
tristanand when running on some CI machine, we don't have a terminal and don't have any terminal width08:17
tristanin which case the sensible thing is the horizonally scroll (although some views might wrap instead)08:17
robjhive observed an odd problem with buildstream where a build will fail when the remote cache is fully primed but the local cache is totally empty. https://gitlab.com/celduin/buildstream-bazel/minimal-rootfs/-/jobs/53925549708:17
juergbitristan: sounds reasonable08:18
robjhwhich lead me to write this little workaround that does give me green ticks in CI, but at the cost of failures being retried until the runner times out https://gitlab.com/celduin/buildstream-bazel/minimal-rootfs/-/commit/4b1f20e1b914f793e86ac6a0808a07f24abc1b0708:18
robjhis this an issue people are aware of?08:18
juergbirobjh: which buildstream and buildbox version?08:18
*** tpollard has joined #buildstream08:18
robjhthe ci is using whatever is in buildstream/buildstream:dev-extra08:19
tristanrobjh, if you see a log file, you should be able to get the exact version at the beginning of the session log08:20
robjhlocally. im using 1.93.1+206.g10de4185 and buildbox-casd from a download08:20
juergbirobjh:  BuildStream Version 1.93.0.dev0. that sounds vary old (for an unstable version)08:20
robjhhelpfully r@mayall-build:~/work/minimalroot$ buildbox-casd --version08:20
robjhbuildbox-casd unknown08:20
juergbihttps://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/168 is still pending08:20
juergbiit probably doesn't make sense to debug this and first check whether this still happens after the above MR is merged08:21
robjhok :)08:22
*** jude has joined #buildstream08:22
juergbirobjh: or do you see it locally as well?08:23
robjhjuergbi, i do see it locally, but thats a 1.93.1 build too08:23
juergbi1.93.1+206.g10de4185 is a lot more recent than 1.93.0. not completely up-to-date but I wouldn't expect such problems with it08:24
juergbihow easy is it to reproduce?08:24
robjhit takes about 10m, as i need to clear the cache completely08:24
robjhr@mayall-build:~/src/buildstream$ bst --version08:25
robjh1.93.3+25.gceedc48108:25
robjhjust upgraded :)08:25
juergbi:)08:25
juergbiyou may also have to fetch the latest buildbox binary tarball if you haven't already08:25
robjhunless upgrading is going to trigger the remote cache to be invalid, in which case; this'll take about an hour08:26
robjhlets do that too08:26
robjhthis one? https://buildbox-casd-binaries.nyc3.cdn.digitaloceanspaces.com/buildbox-x86_64-linux-0.0.7-f938a187.tar.xz08:27
juergbioh, I missed the buildbox-casd exit code at the end. -9 means it was killed with SIGKILL...08:28
*** aminbegood has quit IRC08:28
robjhoh aye? ram then?08:28
juergbiyes, could be OOM08:28
coldtomhi, i'm seeing "[buildboxcasd_localcasproxyinstance.cpp:47] [INFO] LocalCasProxyInstance::FindMissingBlobs request for instance name "7b76fb173740440fe0497943622dd60e891668ad2a3b4a727b33823da57daa62" for 512 digest(s)" in some casd logs, to clarify is the instance name here the one for the remote or the local one?08:28
juergbibuildbox-casd is not supposed to use that much RAM but there might still be bugs with large file in certain operations08:28
juergbicoldtom: that's the local buildbox-casd instance name (generated for the dynamic remote feature)08:29
juergbi(hash of the remote URL etc.)08:29
coldtomta juergbi, i thought it would be08:30
robjhr@mayall-build:~/work/minimalroot$ free -h08:30
robjh              total        used        free      shared  buff/cache   available08:30
robjhMem:           11Gi       155Mi        11Gi       0.0Ki       387Mi        11Gi08:30
robjhSwap:            0B          0B          0B08:30
juergbiif it uses too much RAM in a repeatable case, I can look into this to optimize/fix buildbox-casd08:31
robjhahhh, suddenly the project doesnt meet the the min-version /o\08:31
juergbias you've tested this on 1.93.1+ before, it may be as simple as replacing format-version:.... with min-version: 2.008:31
juergbias you junction to freedesktop-sdk, you may also have to update to a more recent freedesktop-sdk bst2 branch (valentind's branch should be up-to-date)08:32
coldtom(the up to date one is valentindavid/bst2 i think)08:33
robjhElement plugin 'docker_image' did not specify BST_MIN_VERSION ... crap08:37
WSalmon willsalmon/bst2 gets furethest so far but im hoping to merge that in to valentindavid/bst2 sson08:39
WSalmonsoon08:39
coldtomrobjh, you'll have to update bst-plugins-experimental08:39
WSalmonrobjh, registry.gitlab.com/freedesktop-sdk/infrastructure/freedesktop-sdk-docker-images/bst2/amd64:dev-willsalmon-useragent may or may not have all you need08:41
robjhWSalmon, 404 error?08:43
WSalmonrobjh, thats a docker image08:43
* tristan finds it odd to have Element class holding a project_name instance variable, I suppose this optimizes things somehow08:45
*** santi has joined #buildstream08:47
robjhi ordered more ram last night, and i look forward to using virtual machines with lots of ram to spare08:55
tristanwe have more inconsistencies with element names, all over again :-S08:57
tristanhttps://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/plugin.py#L758 (which does some ugliness of having knowledge of it's subclasses), and https://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/plugin.py#L758... both appear to do the same thing09:00
* tristan will see if he can clean it up09:00
robjhbuildbox-run not found. i have buildbox-run-bubblewrao09:02
robjhupdating my binaries09:03
*** seanborg has quit IRC09:05
WSalmonanyone know off the top of there heads why https://paste.gnome.org/p8rs9r4ic would work for bst1.4 but not bst1.9x?09:11
*** tristan has quit IRC09:11
*** lachlan has joined #buildstream09:12
coldtomhttps://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/168 could do with a review if anyone has a minute09:12
*** seanborg has joined #buildstream09:14
tpollardWSalmon: I assume it's not giving a nice error?09:15
*** devcurmudgeon has quit IRC09:16
*** ikerperez has quit IRC09:16
*** cphang has quit IRC09:16
*** cphang has joined #buildstream09:17
*** ikerperez has joined #buildstream09:17
*** lachlan has quit IRC09:24
*** tristan has joined #buildstream09:25
*** aminbegood has joined #buildstream09:34
robjhso i saw a similar problem with buildbox dieing, i had 6gb in use, i have 12gb assigned to this vm (no thin provisioning)09:36
robjhim unsure which log file is going to be useful09:36
robjhlatest everything09:37
WSalmonit gives d`eploy/filesystem.bst [line 7 column 2]: Value of 'build-depends' is not of the expected type 'list'`09:40
WSalmonit gives `deploy/filesystem.bst [line 7 column 2]: Value of 'build-depends' is not of the expected type 'list'`09:41
tpollardhave you tried it without `filename:` ?09:43
*** devcurmudgeon has joined #buildstream09:46
*** lachlan has joined #buildstream09:47
*** aminbegood has quit IRC09:49
juergbirobjh: the casd log file may be useful, is in ~/.cache/buildstream/logs/_casd09:50
juergbithe full filename should be at the end of the bst output when casd dies09:51
juergbiif it's reproducible on a particular project, I can give it a try locally as well09:51
robjhokay, looking at that log makes me think installing fusermount might help. let me retry this09:53
juergbifuse3 is now required for normal Linux installations. however, the absence of fusermount3 should not result in buildbox-casd dying09:56
*** lachlan has quit IRC09:59
robjhyeah, this error is different from before10:05
*** lachlan has joined #buildstream10:13
robjhto update you juergbi, compiling libfuse from source has got rid of the error.10:23
robjhim now trying to compel bst-plugins-container into working with master10:23
juergbiok, good. fyi: fuse3 is also available as a package in most somehwat recent distros10:24
juergbirobjh: nice. please note that there is already an oci element plugin with docker support in bst-plugins-experimental10:25
juergbinot sure whether there is a need for both10:25
juergbinothing like the docker source plugin is in bst-plugins-experimental, though10:26
robjhjuergbi, please tell me more! :)10:26
robjhso it is. i guess i didnt need to install it from source10:27
juergbithere is some documentation here https://gitlab.com/BuildStream/bst-plugins-experimental/-/blob/master/src/bst_plugins_experimental/elements/oci.py10:27
*** lachlan has quit IRC10:32
*** tpollard has quit IRC10:34
*** tpollard has joined #buildstream10:34
robjhkind: OciElement? kind: oci?10:38
robjhin both cases; No Element type registered for kind 'oci' :/10:39
juergbirobjh: you need to add it to the bst-plugins-experimental element plugin list in project.conf10:42
juergbikind: oci is correct10:42
robjhooh10:43
robjhokay, getting there :)10:45
WSalmonI still cant work out why https://gitlab.com/celduin/bsps/example-app/-/blob/0a38bb9d9674b5d4416c4713ecd05045edf6d49b/elements/deploy/filesystem.bst gives https://gitlab.com/celduin/bsps/example-app/-/jobs/540589180 i looked at the bst2 tests and they seem happy with this sysntax..10:52
WSalmonjuergbi, benschubert10:52
robjhdoes it think line4 is a key value pair because of the colon?10:54
robjhput it in quotes?10:54
tpollardyes, try without filename, it's not needed anyway10:55
WSalmon  - system/userland.bst <- dose not work10:56
tpollardsame error?10:56
WSalmondeploy/filesystem.bst [line 7 column 2]: Value of 'build-depends' is not of the expected type 'list'10:57
tpollardhmm10:57
WSalmonif i remove the dash i get a serverly mall formed yaml error10:57
robjhline 710:58
tpollardwhat about if you just do `(@): bsp.bst:elements/deploy/filesystem.bst`10:59
tpollardand then add the build-depends11:00
WSalmonrobjh, that gives suveraly mall formed yaml11:00
*** seanborg has quit IRC11:01
*** seanborg has joined #buildstream11:01
robjhWSalmon, 4 spaces on line 8?11:01
WSalmonnope and nope11:02
WSalmonthis feels odd as this works just fine in bst1.4... and the tests have things like tests/format/list-directive-error-element/config.bst11:03
robjhinfact, is (>): needed at all?11:03
WSalmoni will work round this for this case but in some cases i think it will be11:04
robjhi mean, it might be complaining because build-depends hasnt been previously defined and so its got nothing to append to? i dunno im just guessing11:05
WSalmonI have worked it out11:05
WSalmonMy fault11:05
WSalmonthanks for all the good sugestions tho11:05
*** lachlan has joined #buildstream11:05
WSalmonI had updated the example but not the bsp to master silly me11:06
WSalmonthat error really needs to be better tho11:06
WSalmonnow i understand i will write it up as a issue11:06
tpollard95% of the yaml errors I get need to be better11:11
*** lachlan has quit IRC11:11
*** lachlan has joined #buildstream11:36
*** lachlan has quit IRC11:42
*** lachlan has joined #buildstream11:45
*** lachlan has quit IRC11:45
*** lachlan has joined #buildstream11:50
*** aminbegood has joined #buildstream11:55
*** lachlan has quit IRC11:57
benschuberttpollard: please send reproductions and open issues :) It's hard to "test" each case, and the more un-intuitive failures we get, the better we'll get tests and behavior12:17
*** aminbegood has quit IRC12:30
*** seanborg has quit IRC12:31
*** seanborg has joined #buildstream12:31
*** seanborg has quit IRC12:37
WSalmonbenschubert, that one i was stuggling with was trying to extend something that wasnt in the include, i will write up12:38
*** seanborg has joined #buildstream12:38
WSalmonwhy do we list out each group of plugins per plugin source but not label the source?12:43
*** lachlan has joined #buildstream13:20
*** lachlan has quit IRC13:29
*** lachlan has joined #buildstream13:55
*** lachlan has quit IRC13:56
*** seanborg has quit IRC14:11
*** seanborg has joined #buildstream14:11
*** seanborg_ has joined #buildstream15:02
*** seanborg_ has quit IRC15:03
*** seanborg_ has joined #buildstream15:03
*** seanborg has quit IRC15:03
*** seanborg_ has quit IRC15:05
*** seanborg_ has joined #buildstream15:05
*** lachlan has joined #buildstream15:10
*** lachlan has quit IRC15:12
*** pointswaves has joined #buildstream15:39
valentindWSalmon, Did you see the tests for your backport to bst-1 did not pass?16:04
valentindrepo.remote_gpg_import(remote, stream, None, None)16:04
valentindTypeError: Must be number, not NoneType16:04
juergbiseems like an issue independent of the branch16:07
juergbino idea what changed to trigger this, though16:07
valentindjuergbi, was there an update in the docker image for the build?16:08
juergbino16:08
valentindAccording to ostree, the parameters can be none.16:08
valentindAccording to the doc.16:08
valentindExcept the first which must be a string.16:08
valentindTest passes on my machine.16:11
valentindAh, it is integration.16:11
*** aminbegood has joined #buildstream16:11
valentindjuergbi, Maybe the gpg key is expired.16:18
juergbithat would be a very odd error message16:20
valentindIt is the same file.16:21
valentindAnd it expires 2027-06-1416:21
* tpollard wonders what has happened to the doc pages https://buildstream.gitlab.io/bst-plugins-experimental/index.html16:21
valentindIt passed on my machine16:21
juergbiit also passes on non-debian-based distros in CI, right?16:22
valentindfedora yes16:24
valentindBut it works on my machine that is debian.16:24
valentindWhy are the docker images not public?16:27
valentindunauthorized: HTTP Basic: Access denied16:27
juergbihm, not sure, I've pulled docker testsuite images successfully before16:36
valentindDid it pull a wrong version of python-gi?16:44
valentindI do not see gi in the requirements. Is it installed in the docker image?16:45
*** tpollard has quit IRC16:46
valentindAh yes PyGObject==3.32.216:47
valentindBumping pygobject does not seem to change anything.16:57
valentindjuergbi, Is the time wrong on the builders?17:03
juergbi   Session Start: Tuesday, 05-05-2020 at 17:02:2217:05
juergbilooks ok17:05
juergbimatches job trigger time + 2 minutes17:05
valentindThe date is right.17:07
*** santi has quit IRC17:07
valentindI would suggest to disable the test.17:07
pointswavesvalentind, juergbi I spent a small amount of time this morgning working out that i had no idea what was casuing that issue with the back port17:14
pointswavesjuergbi, were do i ask about buildbox-casd errors?17:14
juergbipointswaves: there is a slack channel but you can also ask here, at least if it's somewhat buildstream related17:16
pointswavesjuergbi, ish, im trying to get buildgrid to work so i can remoteX17:18
pointswaves /usr/local/bin/ldbuildbox-casd --cas-remote=http://localhost:50051 --bind=127.0.0.1:50011 /buildbox/cached/17:18
pointswavesthis craps out17:18
pointswavesubuntu@ip-172-31-22-241:~$ sudo -u casduser /usr/local/bin/buildbox-casd --cas-remote=http://localhost:50051 --bind=127.0.0.1:50011 /buildbox/cached/17:18
pointswavesterminate called after throwing an instance of 'std::invalid_argument'17:18
pointswaves  what():  std::invalid_argument exception thrown at [buildboxcasd_fslocalcas.cpp:169], errMsg = "`path` is not in /buildbox/cached//cas/tmp"17:18
pointswavesAborted17:18
pointswavessorry for the spam i mean https://paste.gnome.org/pk5x6rdhy17:19
juergbipointswaves: oh, maybe there is an issue with path normalization. can you try removing the trailing slash from the path?17:19
pointswavesjuergbi, i think that did it17:20
pointswavesits now complaining about the upstream cache17:20
pointswavesbut with a nice error message17:20
juergbiok, good. would you mind opening an issue?17:20
pointswavesif i remove the remote cache it seems to work17:21
pointswavesjuergbi, no probs17:21
juergbita17:21
pointswavesjuergbi, https://gitlab.com/BuildGrid/buildbox/buildbox-casd/-/issues/6817:26
pointswaveslet me know if you need more detail17:27
pointswavesjuergbi, is ther a wait for cas argument or am i going to have to be careful how i bring these up?17:29
juergbipointswaves: it needs to connect early on, retrieving the CAS server capabilities17:37
juergbinot sure how to best improve this17:37
*** jude has quit IRC17:40
pointswavesi think systemd will just retry eveything till it all works, systemd can do the order but the waiting bit can be more tricky17:44
*** narispo has quit IRC17:46
*** narispo has joined #buildstream17:46
juergbipointswaves: on the same system we could theoretically use socket activation to avoid races. however, gRPC doesn't support that yet17:49
juergbiand in typical larger setups you have multiple workers each with their own buildbox-casd and BuildGrid running on separate server(s). in that case socket activation would obviously not be possible17:49
pointswavesjuergbi, yep, so far there on the same host but my plan is to put the buildgrid bits some were persistant so it shouldnt be a issue17:57
pointswavesbut on a cluster when you start the casd's might go up faster then buildgrid so k8 or something would just keep restarting the docker image until it was up i gues17:59
*** aminbegood has joined #buildstream18:07
*** seanborg_ has quit IRC18:37
*** tpollard has joined #buildstream18:38
*** tpollard has quit IRC18:42
*** pointswaves has quit IRC18:55
*** pointswaves has joined #buildstream18:56
pointswavesjuergbi, the chatter on slack is a bit hit and miss..18:59
*** aminbegood has quit IRC19:07
pointswavesDo we have a minimal buildgrid config some were19:43
pointswavesi am getting19:43
pointswaves[20:41:55][--:--:--][        ][    main:core activity                 ] WARNING Failed to initialize remote http://3.250.149.126:50051: Configured remote does not have the BuildStream capabilities service. Please check remote configuration.19:43
pointswavesI thought i had enough in my config19:43
pointswavesscottclarke, ^?19:44
juergbipointswaves: BuildGrid does not implement a BuildStream artifact server19:53
juergbifor the BuildStream artifact protos you still need bst-artifact-server19:53
juergbiBuildGrid can be used for the CAS part19:53
juergbihowever, this is somewhat orthogonal from remote execution, i.e., you don't need an artifact server for remote execution, and you can set up an artifact server without remote execution19:54
juergbiand the plan is to migrate BuildStream towards using the new Remote Asset API as replacement for the BuildStream-specific protocl19:55
juergbiwhen that happens, there won't be a BuildStream-specific server anymore19:55
juergbiyou could take a look at the config we use for testing remote execution in CI19:56
pointswavesah right, i knew this was a issue with buildbarn didnt realise buildgrid didnt have one ether19:56
juergbi.gitlab-ci/buildgrid-compose.yml in buildstream sets up the docker containers19:56
pointswavesjuergbi, is https://gitlab.com/BuildStream/buildstream/-/blob/master/.gitlab-ci/buildgrid-compose.yml#L56 the config coming from the docker image19:59
pointswaves?19:59
juergbipointswaves: yes but that's actually from the upstream buildgrid repo20:00
pointswavesyep20:01
juergbihttps://gitlab.com/BuildGrid/buildgrid/-/tree/master/data/config20:01
juergbithe ReferenceStorage part is outdated, though, we should remove it from BuildGrid20:01
pointswavesoh i assumed that was the magic20:02
juergbiit's a bit confusing as the protocol has changed over time20:02
juergbiwe used to have a generic protocol but it was defined as part of BuildStream, not used outside20:03
juergbithen we switched to a fully BuildStream-specific protocol20:03
juergbiand now the plan is to switch to a new generic protocol that was developed in the bazel remote execution group and should thus be used outside BuildStream as well20:04
juergbiBuildGrid implemented that first generic protocol (reference storage)20:04
pointswavesso thats good for now?20:04
juergbino, it's not useful anymore20:05
juergbiit remains a bit messy until we complete the planned migration to the new Remote Asset API20:05
juergbiuntil that's the case you need to use bst-artifact-server for the artifact proto part20:06
juergbiyou can still use arbitrary CAS servers for actual payload storage, though20:06
juergbiI can hopefully start working on the migration to the Remote Asset API within a couple of weeks or so. however, this will take a while20:07
pointswavesjuergbi, no pressure from me, if i can get something that just about works to unlock RE i will then focus on using my little projects20:12
pointswavesthanks for all the help20:12
juergbiyes, it should definitely already be in a working state, and we keep testing this also in CI20:13
pointswavesright it looks like its working for now20:20
pointswavesbut 2gb is not gona last long vs FDSDK20:20
pointswavesahhh miss read the log20:21
*** pointswaves has quit IRC22:34
*** lachlan has joined #buildstream22:46
*** lachlan has quit IRC22:55
*** rdale has quit IRC23:28

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