IRC logs for #buildstream for Wednesday, 2020-03-18

*** narispo has quit IRC00:13
*** narispo has joined #buildstream00:13
*** narispo has quit IRC04:13
*** narispo has joined #buildstream04:13
*** narispo has quit IRC04:16
*** narispo has joined #buildstream04:17
*** hasebastian has joined #buildstream04:41
*** traveltissues has joined #buildstream07:48
*** benschubert has joined #buildstream08:04
*** phildawson has joined #buildstream09:01
benschubertjuergbi: any idea what the expected format of the proto is for https://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/storage/_casbaseddirectory.py#L158 ? I get a DecodeError when running with bb-run-bwrap and the content of it is : '/cross/lib\n'09:02
juergbibenschubert: it needs to be a serialized (binary) Directory protobuf message09:03
juergbiare you doing something manually or do you see an issue in normal operation?09:03
benschubertI am just trying to build a project so everything normal :)09:03
benschubertLet me push a reproduction, give me 5 minutes09:04
juergbiso the object file matching the digest is purely a text file?09:04
juergbiok09:04
benschubertand yep seems like it :(09:04
benschubertjuergbi: https://gitlab.com/BenjaminSchubert/bst-testbed if you do: docker-compose run bst build bootstrap/build/debugedit-build.bst I would expect the error to be reproduced :)09:08
benschubertjuergbi: if you have any idea where I should dig, let me know :)09:10
juergbibenschubert: you're not using buildbox-fuse?09:12
benschubertAh no, would that be better?09:12
juergbiwithout it, buildbox-casd needs to run as a different uid, otherwise you have no hardlink protection09:12
juergbi(there is an issue open about detecting this misconfiguration)09:13
benschubertah good point09:13
juergbilet me know whether you still see the issue with buildbox-fuse (or proper uid separation)09:14
benschubertyep, I've just setuid'd buildbox-casd :) will re-try09:14
juergbimy plan is to recommend buildbox-fuse as default setup when we switch to buildbox-run09:14
juergbi(for linux)09:15
*** toscalix has joined #buildstream09:15
juergbiyou may also have to clear the cache if it became corrupted, given that you bind the cache directory into the container09:16
benschubertSo the fuse layer would be on the buildbox-run side and not casd right? (I think I remembered the reverse, just want to refresh my memory)09:16
*** santi has joined #buildstream09:16
benschubertyep I will09:16
juergbibuildbox-casd is the process that starts buildbox-fuse09:17
juergbihowever, it does so on (Stage) request from buildbox-run09:17
benschubertOk, so you actually install the three?09:17
juergbiyes, buildbox-fuse no longer does any sandboxing09:17
juergbiso you still need buildbox-run-bubblewrap09:17
benschubertAh gotcha, so it's a third system. How do I tell buildbox-casd that it exist? Found automagically?09:18
juergbiyes, it's used if found in path09:18
juergbias it's preferred over hardlinking09:19
benschubertawesome. and does that also mean it can be used with userchroot on linux? Or does userchroot restriction prevent us from doing so?09:19
juergbiI actually haven't tried09:19
juergbiI suspect it won't work as the permission requirements may conflict09:19
benschubertYep makes sense, thanks :)09:20
juergbibut haven't looked into it further. do you see a use case for that combination?09:20
benschubertcases when you cannot use user namespaces :)09:20
juergbithe main advantage I see for userchroot on Linux is to use the same setup across platforms09:20
benschubertThat is one, the other is when you have access to fuse so might want the speed benefits, but can't use user namespaces (e.g. kernel too old) and thus cannot use bwrap09:21
juergbiright, could be interesting there09:21
juergbia possible alternative is to support bwrap without user namespaces09:22
juergbiit does require bwrap to be installed setuid root, though09:22
benschubertbut you need setuid then, which is another requirement :)09:22
benschubertyep09:22
juergbibtw: my buildbox-fuse testing has been limited to very recent kernels + whatever we use in CI09:23
*** tpollard has joined #buildstream09:25
benschubertAlso for the setuid of casd, I need both to share a group and have ~/.cache/buildstream/ and ~/.cache/buildstream/cas to be owneed by this group in 0o777 right?09:27
juergbibenschubert: yes, well 0o750 is the minimum09:41
juergbias buildstream should not directly write into CAS directories anymore09:42
benschubertuh? I am confused:09:44
benschubert- Buildbox-casd has been setuid buildboxcasd09:44
benschubert- ~/.cache/buildstream is created with 0750 (buildstream:buildstream)09:44
benschubert- ~/.cache/buildstream/cas is created with 0750 (buildstream:buildstream)09:44
benschubertAnd casd can't create directories or files in ~/.cache/buildstream/cas. Same if mode it 0770.09:44
benschubertand I am running as 'buildstream:buildstream'09:45
juergbibenschubert: the cas directory should be owned by the casd user09:49
juergbiand run in the same group as buildstream09:50
benschubertdoes that mean buildstream itself still creates ~the cas directory?09:50
juergbiit still creates it if it doesn't exist but it won't change the permissions if it already exists09:51
juergbiwith 0770 or 0777 it should also work if the cas directory is owned by buildstream, but the idea is that buildbox-casd has exclusive write access to the cas directory tree, so chown to casd user makes sense, imo09:52
juergbiwe will obviously need good documentation for that and maybe also further fixes09:53
*** hasebastian has quit IRC09:53
*** traveltissues has quit IRC09:54
juergbimy current focus with regards to buildbox is preparing for the switch from the internal bwrap sandboxing backend to buildbox-run-bubblewrap + buildbox-fuse, and the more complex setup is not required in this case09:54
benschubertok I'll go for this one for now then :)09:55
benschuberthttps://gitlab.com/BuildStream/buildstream/-/blob/master/src/buildstream/_cas/cascache.py#L72 should not be done though right? :)09:55
juergbicorrect, I think we can and should remove this now09:56
benschubertok I'll make a PR, thanks :)09:56
benschubertsame for the logs? Or should we actually move the logs outside of this directory?09:56
benschubertI guess it should be in buildstream/logs/cas ?09:56
benschubertsince buildstream still owns them09:56
*** traveltissues has joined #buildstream09:57
juergbibenschubert: yes, moving out makes sense09:58
juergbilogs/cas has a potential for conflicts, though, afaict09:58
juergbia possible alternative would be to move the logging mechanism to buildbox-casd itself09:59
juergbinot sure whether that makes more sense. haven't thought about it yet.09:59
benschuberthow would you envision this? The nice thing with handling it ourselves is that we can post the logs to the last casd run10:00
benschubertso to buildstream/cas-logs :)10:00
*** lachlan has joined #buildstream10:04
*** lachlan has quit IRC10:25
*** lachlan has joined #buildstream10:47
*** lachlan has quit IRC11:11
*** toscalix has quit IRC11:27
*** toscalix has joined #buildstream11:27
*** toscalix has quit IRC11:28
*** lachlan has joined #buildstream11:31
gitlab-br-botBenjaminSchubert opened MR !1832 (bschubert/stricter-cas-soc->master: Don't create Buildstream-related directories in the cas - owned directory) on buildstream https://gitlab.com/BuildStream/buildstream/-/merge_requests/183211:59
benschubertjuergbi: ^ for stopping the creation of those directories11:59
*** lachlan has quit IRC12:12
*** lachlan has joined #buildstream12:15
gitlab-br-botabderrahimk opened MR !1833 (abderrahim/etag->master: _downloadablefilesource.py: don't download the file if etag matches) on buildstream https://gitlab.com/BuildStream/buildstream/-/merge_requests/183312:31
*** lachlan has quit IRC12:31
benschubertjuergbi: I might be missing something: I've got it almost to work, but now my buildbox-casd creates a unix socket with 755 permissions, meaning my buildstream can't read to it anymore. What am I missing? :/12:36
juergbibenschubert: ah, that's https://gitlab.com/BuildGrid/buildbox/buildbox-casd/-/merge_requests/12712:37
juergbiit should work with `umask 002`12:37
benschubertok, so setting umask in /etc/profile would fix it, great thanks!12:38
*** lachlan has joined #buildstream12:42
*** lachlan has quit IRC12:51
*** santi has quit IRC14:05
*** santi has joined #buildstream14:06
*** lachlan has joined #buildstream14:08
jjardonI think latest bst tag has not been published? https://gitlab.com/BuildStream/buildstream/-/jobs/47530609614:29
*** lachlan has quit IRC14:38
*** lachlan has joined #buildstream14:50
juergbijjardon: oh, forgot to bump the version in setup.py14:52
*** phildawson has quit IRC15:00
*** phildawson has joined #buildstream15:00
*** lachlan has quit IRC15:03
benschubertjuergbi: https://gitlab.com/BuildStream/buildstream/-/merge_requests/1832#note_307080435 do you think _cas would be acceptable?15:07
juergbibenschubert: a bit unusual but might be a reasonable compromise15:09
benschubertjuergbi: thanks! pushed and addressed all your comments, can you have another look please?15:24
*** lachlan has joined #buildstream15:30
*** traveltissues has quit IRC15:54
juergbibenschubert: fyi, you haven't pushed another update16:33
benschubertjuergbi: oops sorry about that. fixed16:34
*** traveltissues has joined #buildstream16:49
benschubertjuergbi: https://gitlab.com/BuildStream/buildstream/-/merge_requests/1832#note_307250656 good point there. I'd be in favor of 'assert' that it's not None when casd is not none?16:49
juergbibenschubert: that's fine by me as well. however, this would still require fixup in at least one test, afaict16:50
benschubertyup will do :)16:50
*** traveltissues has quit IRC16:52
*** cs-shadow has joined #buildstream16:53
*** santi has quit IRC17:22
*** santi has joined #buildstream17:24
*** phildawson has quit IRC17:27
*** phildawson has joined #buildstream17:34
*** lachlan has quit IRC17:40
*** lachlan has joined #buildstream17:41
gitlab-br-botabderrahimk opened MR !1834 (abderrahim/fuse3->master: mount: don't pass nonempty option) on buildstream https://gitlab.com/BuildStream/buildstream/-/merge_requests/183417:52
gitlab-br-botabderrahimk opened MR !1835 (abderrahim/options->master: _project.py: resolve options before running the final assertions) on buildstream https://gitlab.com/BuildStream/buildstream/-/merge_requests/183517:54
*** tpollard has quit IRC18:23
*** santi has quit IRC18:48
*** santi has joined #buildstream18:49
*** santi has quit IRC18:52
*** lachlan has quit IRC19:13
*** cs-shadow has quit IRC19:23
*** phildawson has quit IRC20:08
*** phildawson has joined #buildstream20:09
*** phildawson has quit IRC20:12
*** benschubert has quit IRC21:29
*** traveltissues has joined #buildstream22:31

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