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

*** narispo has quit IRC00:55
*** narispo has joined #buildstream00:55
*** narispo has quit IRC01:03
*** narispo has joined #buildstream01:03
*** narispo has quit IRC06:18
*** narispo has joined #buildstream06:18
*** slaf_ has joined #buildstream06:59
*** slaf_ has joined #buildstream06:59
*** slaf_ has joined #buildstream06:59
*** slaf_ has joined #buildstream06:59
*** slaf_ has joined #buildstream07:00
*** slaf_ has joined #buildstream07:00
*** slaf_ has joined #buildstream07:01
*** slaf_ has joined #buildstream07:01
*** slaf has quit IRC07:01
*** slaf has joined #buildstream07:01
*** slaf has joined #buildstream07:01
*** slaf has joined #buildstream07:02
*** bochecha has joined #buildstream07:12
gitlab-br-botjuergbi opened MR !1583 (juerg/await-threads->master: utils.py: Wait for threads to exit in _is_single_threaded()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/158307:43
*** jjardon changes topic to "BuildStream 1.4.1 is out ! | https://gitlab.com/BuildStream/buildstream | Docs: https://docs.buildstream.build/ | IRC logs: https://irclogs.baserock.org/buildstream | Mailing List: https://mail.gnome.org/mailman/listinfo/buildstream-list | Roadmap: https://wiki.gnome.org/Projects/BuildStream/Roadmaps"07:51
jjardonHi, would it be possible to have a 1.9.x snapshot of current master? last one was 1.3.1 and it can be a bit confused now that 1.4.0 is out07:55
*** bochecha has quit IRC08:08
juergbijjardon: I think we only created a tag for 1.3.0 (for proper git version), not an actual release. we could do the same with 1.90.008:09
jjardonI think that would help yes08:14
*** rdale has joined #buildstream08:23
juergbiKinnison: hopefully the last MR with regards to the thread issue: https://gitlab.com/BuildStream/buildstream/merge_requests/158308:23
* Kinnison looks08:23
juergbiI also added a _reset_global_state method to https://gitlab.com/BuildStream/buildstream/merge_requests/157608:24
juergbi(resulting in existing tests working as regression tests)08:25
benschubert_juergbi: thanks a lot for this one :)08:26
benschubert_juergbi: for the threads, couldn't we join them ourselves?08:27
juergbibenschubert_: not sure. gRPC can use both Python and low level threads. the low level ones we presumably can't portably join in Python08:32
juergbiat least some of the low level ones are actually joined by gRPC core on close/shutdown. however, apparently sometimes there is still a thread left08:32
juergbiit's not frequent that we have to actually wait, so I don't think it's a performance issue (the method is anyway not called often outside the test suite)08:34
juergbias I can't reproduce it locally, it's a bit cumbersome to try out other approaches08:34
juergbibtw: gRPC python's (incomplete) prefork support actually also has a wait loop for its threads (although that uses condition variables, which we don't have access to, instead of sleep)08:35
benschubert_juergbi: ok fair enough, if it's only the test suite I'm fine with it :)08:36
juergbiit's not just in the test suite but outside the test suite it's used max. twice per 'bst' process08:37
gitlab-br-botBenjaminSchubert approved MR !1583 (juerg/await-threads->master: utils.py: Wait for threads to exit in _is_single_threaded()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/158308:37
juergbiand it should never actually trigger waiting outside the test suite08:37
Kinnisonjuergbi: 👍 on both those changes08:38
juergbita08:38
* Kinnison sees that the node test suite failed because of a thread :D08:38
gitlab-br-botBenjaminSchubert approved MR !1576 (juerg/synthetic-file-index->master: node.pyx: _SYNTHETIC_FILE_INDEX must not be module-private) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/157608:40
qinustyHey, I'm currently looking at the remote sandbox builds and noticing that for the autotools example, the working directory is set to `/buildstream/autotools/hello.bst/doc/amhello` before the autotools plugin script is ran. I'm not certain how this works exactly with buildgrid but the amhello directory of autotools doesn't appear to contain ./config08:41
qinustyure, ./autogen or any of the other scripts in the configure step.08:41
qinustyAm I missing something? D:08:41
juergbiqinusty: doc/amhello contains configure.ac08:44
qinustythis is true, is this ran by autoreconf? As the if statement within the autotools.yaml plugin element file, doesn't appear to mention this08:46
juergbiqinusty: autoreconf -ivf creates configure from configure.ac08:47
juergbiautoreconf is essentially identical to a minimal autogen.sh08:48
qinustyAh okay, I don't appear to have autoreconf installed on my sandboxed system which is likely causing me issues08:48
juergbiit should be part of autoconf08:50
qinustyI would expect this to be included in buildstream/buildstream:nightly-extra?08:53
juergbiqinusty: it might not be. buildstream itself doesn't need it08:54
benschubert_qinusty: that autoreconf if from inside the sandbox, You'll need a build-dep on an autoconf package :)08:54
qinustyUsing doc/examples/autotools though surely this works currently? I know it works with buildgrid currentlyu08:57
qinustycurrenty*08:57
benschubert_mmh that's correct08:58
juergbiyes, I assume it's part of the alpine base image08:59
juergbithat's independent of the buildstream nightly docker image08:59
juergbiwhen run with buildstream the alpine base image should automatically be staged in the sandbox08:59
qinustyautoreconf doesn't exist in alpine:latest08:59
juergbior via remote execution that would be in the input root08:59
juergbioh, hm08:59
qinustyI'm confused where it's coming from D:09:00
juergbi$ tar -tf integration-tests-base.v1.x86_64.tar.xz | grep autoreconf09:00
juergbi./usr/bin/autoreconf09:00
juergbiit's in the alpine tarball I see here09:00
qinustyAh, I pulled the docker container09:01
juergbiif you're referring to a docker image with 'alpine:latest', that's independent09:01
juergbibuildstream itself will pull the alpine tarball for the test and it's in there09:01
qinustyAha, this might get me somewhere09:02
juergbihttps://bst-integration-test-images.ams3.cdn.digitaloceanspaces.com/integration-tests-base.v1.x86_64.tar.xz09:03
qinustyBuildbarn is receiving /usr/bin/autoconf in the input_files but it appears that it isn't part of $PATH, This is likely because I have placed the input files as a subdir of /09:03
qinustyTherefore /usr/bin is no longer path09:03
juergbiyes, buildstream actions generally won't work if the input root is not the filesystem root09:05
qinustyHm09:05
qinustyIt is desirable to the point of avoiding awkwardness, and as suggested by Ed @ https://github.com/buildbarn/bb-remote-execution/issues/18#issuecomment-525313758 that the input_root be made a subdir of /09:06
KinnisonThat comment is about buildbarn not actions09:07
Kinnisoni.e. that buildbarn should stop putting extra droppings *inside* what the action provided09:07
Kinnison`input_root` is still where the action's input should go09:07
qinusty├── .stdout.txt09:08
qinusty├── .stderr.txt09:08
qinusty└── input_root09:08
qinusty    ├── bin09:08
qinusty    └── usr09:08
qinustyThis is kinda how it looks right now, with other folders09:09
qinustySo all of buildstream provided input_files are thrown into input_root09:09
KinnisonRight, and the chroot should be `input_root`09:09
* qinusty isn't sure if there is a chroot somewhere. If there is, can you chroot inside a chroot? 🤔09:10
KinnisonYes you can; but buildstream actions won't work unless the `input_root` is the root of the filesystem tree as far as the build processes are concerned09:10
Kinnisonthis is done by means of buildbarn's worker chrooting into `input_root` before exec()ing the action09:11
KinnisonAt least, it should be09:11
Kinnison:D09:11
qinustyThis is likely already done but for build_directory09:11
juergbibazel-oriented workers/platforms never do that, so that's not a surprise09:11
KinnisonRight, which is a bug09:11
qinustyWell, the idea of build_directory being separate to input_directory is neq09:12
juergbibazel always expects tools present outside the input root09:12
qinustynew*09:12
juergbito support buildstream clients, the server/worker either has to directly support this extra chroot, e.g., triggered via platform property09:13
juergbior buildstream has to use chroot as action command09:13
Kinnisonjuergbi: the latter requiring that the action run as root presumably09:14
juergbiyes, although it can be root in a user namespace, or we could use bwrap instead of chroot09:14
Kinnisontrue09:14
juergbiit shouldn't be a big effort to try this out09:14
* qinusty wonders if anyone has any proposals for a preferred solution09:15
juergbihowever, it's not so easy to do it right as this is a platform-specific thing, of course09:15
juergbimy preferred solution would be a platform property in standard REAPI that will trigger this on the server/worker side09:15
juergbiright now REAPI is underspecified in this regard. if you just use what's in the spec, the client has no idea what kind of environment the action will run in09:16
juergbiwhat path, what tools will be available etc.09:16
juergbithis generally can't work, also not for bazel09:16
juergbiGoogle RBE has a (non-standard) platform property to allow specifying a docker image for the action to run in09:16
juergbithat is theoretically good enough (but it's still a bit inconvenient for buildstream as it's platform specific, and doesn't work at all on non-Linux)09:17
juergbiwe should probably make a proposal for such a platform property09:18
juergbiand ideally provide patches for buildbarn and buildfarm09:18
juergbior at least bring it up on mailing list or in the monthly meeting09:19
qinustyAnd this would be a modification to the REAPI proto?09:20
juergbiaddition09:22
juergbicould be part of the platform lexicon, i.e., considered optional to implement09:22
*** jonathanmaw has joined #buildstream09:25
qinustyI guess we should detail this up in an issue somewhere. I'm happy to summarise this somewhere, which issue tracker would be preferred for this? Buildstream/bazel etc?09:27
juergbiwith the goal of a platform property, filing an issue in https://github.com/bazelbuild/remote-apis would be the right place09:30
juergbiI think it would be good to file this directly with a full proposal09:31
juergbiespecially as I don't expect other clients to be interested at this point09:31
gitlab-br-botmarge-bot123 merged MR !1583 (juerg/await-threads->master: utils.py: Wait for threads to exit in _is_single_threaded()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/158309:41
*** traveltissues has joined #buildstream09:44
gitlab-br-botmarge-bot123 merged MR !1576 (juerg/synthetic-file-index->master: node.pyx: _SYNTHETIC_FILE_INDEX must not be module-private) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/157610:12
*** narispo has quit IRC10:47
*** narispo has joined #buildstream10:47
gitlab-br-botmarge-bot123 closed issue #1118 (ProvenanceInformation has no attribute `toplevel`) on buildstream https://gitlab.com/BuildStream/buildstream/issues/111811:12
gitlab-br-botmarge-bot123 merged MR !1582 (traveltissues/1118->master: Fix typo in node attribute) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/158211:12
*** rdale has quit IRC11:19
*** bochecha has joined #buildstream11:30
juergbitrivial docker image MR to update buildbox for disk usage support11:50
juergbihttps://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/13411:50
juergbiany objections? I've sanity checked the images with https://gitlab.com/BuildStream/buildstream/merge_requests/156411:50
valentindIs there an issue about being able to run commands with a different sysroot within the sandbox?11:56
valentindI see this as a recurring problem when wanting to run integration commands on some subdirectory.11:57
valentindAlternatively being able to have multiple sandboxes for one build of an element would be nice.11:58
juergbivalentind: I'm not aware of an issue for this. the closest is your !89411:58
gitlab-br-botMR !894: Add support for importing build dependencies in sysroots. https://gitlab.com/BuildStream/buildstream/merge_requests/89411:59
valentindRight, we mention that in there.11:59
juergbiI generally agree that there are use cases where the current structure is not a very good fit12:00
valentindBut there are plugins where we want to run integration commands, but we do not stage files in the root of the sandbox.12:00
juergbihowever, I'm not sure yet how exactly we should improve it12:00
juergbiworkaround with a helper element for integration is possible, right? but could definitely be cumbersome12:01
valentindI think it would be nice to have a new parameter to sandbox.run()12:01
valentindThe problem is that you lose chmods12:01
valentindCurrently.12:01
juergbihm, ok, but we might be able to fix that soon12:02
juergbibased on earlier discussions I think tristan would prefer keeping elements simple (i.e., single sandbox) but providing more convenience for defining multiple elements at once12:03
juergbifor reference: support for additional file properties in CAS: https://github.com/bazelbuild/remote-apis/issues/9012:03
juergbiI was considering 'generator elements' a while ago. i.e., plugins that can generate multiple elements to cover multi-step tasks12:05
juergbithis could be, e.g., tests or for different packaging mechanism12:05
juergbiI don't have a fleshed out proposal, though12:06
jennisHi all, would appreciate reviews on !1565 (update checkout to handle artifact refs) and !1568 (update push/pull to handle artifact refs) before I merge12:10
gitlab-br-botMR !1565: Update artifact checkout to handle artifact refs https://gitlab.com/BuildStream/buildstream/merge_requests/156512:10
gitlab-br-botMR !1568: Update artifact push and pull so that they can handle artifact refs https://gitlab.com/BuildStream/buildstream/merge_requests/156812:10
jennisHi guys, I've made a start on trying to solidify our design principles for the frontend. I've actually found this pretty hard to write down, so I'd appreciate any ideas/feedback on !1584: https://gitlab.com/BuildStream/buildstream/merge_requests/158412:19
gitlab-br-botMR !1584: WIP: Document forntend design principles https://gitlab.com/BuildStream/buildstream/merge_requests/158412:19
Kinnisonjennis: !1568 👍12:24
Kinnisonjennis: !1565 one nit12:26
*** jward has quit IRC12:41
*** jward has joined #buildstream12:41
jjardonHi, is there a minimal BuildBox version to use BuildStream master?12:49
tpollardjjardon: https://buildstream.build/buildbox_install.html12:51
jjardonah nevermind, already seen the comments at https://buildstream.build/buildbox_install.html#building-buildbox-components12:51
tpollard:)12:51
jjardonSo I guess buildbox-casd replaces the local cache buildstream uses in 1.x ?12:54
gitlab-br-botjuergbi opened (was WIP) MR !1564 (juerg/cache-usage->master: Display cache usage in status bar) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/156412:58
juergbijjardon: yes. read access still uses direct filesystem access but all writes go via buildbox-casd, and expiry is also handled by buildbox-casd13:00
juergbipulling from and pushing to remote CAS servers is also handled by buildbox-casd13:00
jjardoncool, thanks for the info13:01
jjardonwhat is buildbox-fuse used for?13:01
juergbithat's a replacement for hardlinking + pyfuse + bubblewrap sandboxing13:02
juergbiit's implemented as a sandboxing backend in buildstream. that's still considered experimental, though, and is missing a few features13:02
juergbijjardon: fyi: buildbox-casd expiry is currently enabled only if a quota is configured, i.e., it doesn't monitor free disk space yet. will hopefully be fixed soon: https://gitlab.com/BuildGrid/buildbox/buildbox-casd/issues/2813:04
jjardonI see, so it is meant to replace buildbox-run-* projects? Or is it a wrapper around them?13:04
juergbithe other way round. the bubblewrap sandboxing part will be moved from buildbox-fuse to buildbox-run-bubblewrap13:05
juergbibuildstream will then invoke buildbox-run and buildbox-run will handle the rest13:05
jjardonah ok!13:06
*** rdale has joined #buildstream13:13
*** rdale has quit IRC13:44
juergbidoes anyone want to review !1564 and hasn't done so yet?13:45
juergbias website and docker images have been updated, it's no longer marked WIP13:45
*** rdale has joined #buildstream13:45
juergbi"Display cache usage in status bar" https://gitlab.com/BuildStream/buildstream/merge_requests/156413:45
gitlab-br-botjjardon opened MR !1585 (jjardon/doc_install_update->bst-1: doc/source/install_linux_distro.rst: Update info) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/158513:47
tpollardif it's adding multiprocessing to cascache aevri might be interested?13:47
juergbigood point. this might need a tweak for non-fork platforms, but I don't expect it requiring a big change13:49
tpollardyep nothing has set off any alarms for me13:51
*** bochecha has quit IRC13:59
ironfootI've noticed in a couple of cases now that some aliases, that I didn't have definied in project.conf, worked, maybe because I had the repos cached?14:05
ironfootis this a known issue?14:05
juergbihm, doesn't sound familiar14:06
ironfootthen, my theory is that bst looks into the sources cache, using the alias, before trying to resolve the alias at all14:07
ironfootI feel like the cache should be stored using the resolved alias14:08
ironfootoh, maybe I've seen this issue only because the built artifact was cached, will check14:10
juergbiusing the alias for caching is intentional, iirc, as changing the mirror shouldn't invalidate the cache14:14
juergbiwe should in any case catch undefined aliases, though14:14
aevri!1564 seems to keep tests_spawn_multiprocess_start_method happy, so I'm happy too :) Thanks for thinking about spawn14:17
gitlab-br-botMR !1564: Display cache usage in status bar https://gitlab.com/BuildStream/buildstream/merge_requests/156414:17
ironfoottrue, using the alias may make sense after all :)14:18
gitlab-br-botjjardon merged MR !1585 (jjardon/doc_install_update->bst-1: doc/source/install_linux_distro.rst: Update info) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/158514:28
ironfootconfirmed, if the source is cached, then it will not fail to resolve the alias14:40
tpollardinterrupt handling when we're doing source cache is really buggy, almost always grpc can't recover15:00
tpollardwhich means we error out because it's unhandled15:03
juergbitpollard: interrupt handling as in connection interruption to a remote source cache?15:17
juergbidon't we handle this the same way as with artifact caches, with automatic retries?15:18
gitlab-br-botpalvarez89 opened issue #1119 (BuildStream fails to detect missing source alias if already cached) on buildstream https://gitlab.com/BuildStream/buildstream/issues/111915:19
ironfootended up opening that for the issue I mentioned before ^15:20
tpollardjuergbi: a local process in this case, I'm just writing up a ticket for it15:22
gitlab-br-bottpollard opened issue #1120 (Interrupt handling during a task that involves cascache grpc processes is very flaky) on buildstream https://gitlab.com/BuildStream/buildstream/issues/112015:29
tpollardjuergbi ^15:29
juergbihm, can't connect to casd anymore. wondering whether it's an issue on the casd side15:32
gitlab-br-botmarge-bot123 merged MR !1573 (jennis/tasks->master: Improve long-running task reporting) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/157315:38
gitlab-br-bottpollard approved MR !1568 (jennis/update_push_pull->master: Update artifact push and pull so that they can handle artifact refs) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/156815:42
gitlab-br-botjjardon closed issue #535 (BuildStream doesn't fix the version of its dependencies) on buildstream https://gitlab.com/BuildStream/buildstream/issues/53516:18
*** traveltissues has quit IRC16:54
*** phildawson has quit IRC17:04
*** tiagogomes has quit IRC17:04
*** jonathanmaw has quit IRC17:04
*** tpollard has quit IRC17:04
*** raoul has quit IRC17:04
*** tpollard has joined #buildstream17:04
*** tiagogomes has joined #buildstream17:05
*** jonathanmaw has joined #buildstream17:05
*** raoul has joined #buildstream17:05
*** phildawson has joined #buildstream17:05
*** tiagogomes_ has joined #buildstream17:12
*** tiagogomes has quit IRC17:14
*** jonathanmaw has quit IRC18:12
*** narispo has quit IRC20:48
*** narispo has joined #buildstream20:48
*** narispo has quit IRC21:16
*** narispo has joined #buildstream21:17
*** narispo has quit IRC21:47
*** narispo has joined #buildstream21:47
*** narispo has quit IRC22:18
*** narispo has joined #buildstream22:18
*** narispo has quit IRC22:48
*** narispo has joined #buildstream22:48
*** rdale has quit IRC22:53
*** narispo has quit IRC23:18
*** narispo has joined #buildstream23:19
*** narispo has quit IRC23:49
*** narispo has joined #buildstream23:49

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