IRC logs for #buildstream for Tuesday, 2019-10-15

*** toscalix has joined #buildstream05:12
*** toscalix has quit IRC05:21
juergbibenschubert: RW access to casd? do you mean for destructive import/capture? I don't think we do this anywhere06:41
juergbiwe force RW when needed in utils.copy_files/link_files but that's not directly related to CAS06:42
juergbithere are also sources that ensure files are readable to allow import in CAS but that's not RW06:43
juergbiI could be missing something, of course06:43
juergbiand it's possible we did something along these lines before casd06:44
*** mohan43u has quit IRC08:05
*** mohan43u has joined #buildstream08:11
benschubertjuergbi: > "there are also sources that ensure files are readable to allow import in CAS but that's not RW" actually I think that's the part I remember. Is it per source or do we have a global place for this?08:18
juergbibenschubert: it's the responsibility of each source08:22
benschubertjuergbi: ok thanks!08:23
juergbibenschubert: e.g., tar overrides the tar info attributes to ensure all extracted items are readable08:23
juergbiavoiding a separate chmod pass08:23
benschubertGah, that will be tedious with buildbox-run-userchroot :'D08:23
juergbibenschubert: how so?08:24
juergbithat should not be involved for source->cas operations08:24
benschubertwe would need two users, one running buildstream and the build, and one running buildbox-casd, which means we need to rely on group permissions fo rmost things, and currently most of our sources are staging as 060008:25
benschubertand same, buildbox-casd will need to store its data as 0660 not 0600, since now the buildstream user will want to have access to it08:25
juergbiah, right, issue due to running casd as another user08:25
benschubertyup08:25
juergbibuildbox-casd already does that, iirc08:25
juergbiexplicitly for this use case08:25
benschubertis that recent?08:26
juergbino, not that recent08:26
benschubertweird, I need to double check then08:26
* juergbi hope it wasn't broken08:26
juergbi*hopes08:26
benschubertI will try to have a double look for this afternoon08:27
juergbi    // Creating a temp file and writing the blob data into it...08:28
juergbi    buildboxcommon::TemporaryFile temp_file(d_temp_directory.c_str(),08:28
juergbi                                            "cas-tmp", 0644);08:28
juergbinot 0660, read-only for others but that's what we want08:29
benschubertbut then we can't update the timestamp of it08:29
benschubertfor the modified timestamp08:30
juergbitrue, we probably have to switch to gRPC call for that08:30
juergbiwe can't make it read-write, otherwise the whole point of having separate users is moot08:30
benschubertfor the storage that's fine08:30
benschubertthe place we don't want it rw is in the sandbox08:31
juergbiwith hardlinking there is no difference08:31
benschubertah shoot08:32
benschubertok, then using grpc for this would be an option08:32
juergbihopefully we can always batch08:32
juergbithe contains_directory() utime part is already replaced by gRPC call in my latest branch08:33
juergbibut there are other places08:33
juergbithe other calls might only be relevant to bst-artifact-server, though08:34
benschubertoh then it's not that bad :)08:34
juergbiso my latest branch might already fix that for bst client itself08:34
benschubertare you working on the userchroot sandbox right now or what's this branch? :)08:35
*** mohan43u has quit IRC08:35
juergbinot yet, it's for #112608:35
gitlab-br-botIssue #1126: Cache resolution is slow https://gitlab.com/BuildStream/buildstream/issues/112608:35
juergbiwill work on buildbox-run soon, though08:35
benschubertok, perfect08:36
*** santix has joined #buildstream08:38
*** mohan43u has joined #buildstream08:38
gitlab-br-botjuergbi opened MR !1641 (juerg/prepare-fork->master: Replace is_fork_allowed() with prepare_fork()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/164108:41
*** tiagogomes has joined #buildstream08:45
juergbibenschubert: bug error detail something like "Background threads are active"?08:49
benschubertjuergbi: yep, that would be better :)08:50
juergbiok, will add08:50
benschubertthanks08:50
*** jonathanmaw has joined #buildstream09:03
gitlab-br-botBenjaminSchubert approved MR !1641 (juerg/prepare-fork->master: Replace is_fork_allowed() with prepare_fork()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/164109:03
*** lachlan has joined #buildstream09:29
*** traveltissues has joined #buildstream09:29
*** traveltissues has quit IRC09:36
benschubertcoldtom: are you still planning in pushing !1607 to the end or would you rather have somebody take it over? :)09:49
gitlab-br-botMR !1607: WIP: Run standardised source tests from external plugins https://gitlab.com/BuildStream/buildstream/merge_requests/160709:49
coldtombenschubert: i'd like to get it done if i can find the time09:49
benschubertok :) let me know how I can help, and it would also need some rebasing currently (I think it's mostly the only thing left to do here, but I'll re-review once you had time to rebase)09:50
gitlab-br-botmarge-bot123 merged MR !1641 (juerg/prepare-fork->master: Replace is_fork_allowed() with prepare_fork()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/164109:54
coldtomthanks, i'll try and at least rebase tonight09:57
benschubertawesome!09:57
*** traveltissues has joined #buildstream09:58
*** mohan43u has quit IRC10:00
*** mohan43u has joined #buildstream10:03
*** traveltissues has quit IRC10:05
tpollardWould anyone be against me sending an MR to change references to self._artifacts to self._artifactcaches ?10:11
*** mohan43u has quit IRC10:11
tpollardspecifically when we're inferring about remotes, such as in stream doing 'if self._artifacts.has_push_remotes' for example10:13
*** mohan43u has joined #buildstream10:14
*** mohan43u has quit IRC10:18
*** mohan43u has joined #buildstream10:27
benschuberttpollard: I'm for it, only question is will it conflict with tlater[m] rework of the caches? :)10:32
* tlater[m] thinks he missed part of this conversation10:33
benschuberttlater[m]: the rename of 'self_artifacts' to self._artifatcaches' would that conflict with your work?10:33
tlater[m]Nothing I'm doing at the moment10:34
* tlater[m] wonders when this conversation started, but wants to express his enthusiasm for it anyway10:35
tlater[m]benschubert: For reference, I'm working on getting the server end to talk directly to casd, rather than going through BuildStream internals10:36
benschubertit just started :)10:36
tlater[m]This is mostly a clean-up of the server end, but some of the client end can probably be refactored afterwards.10:36
benschubertah ok, then I slightly misunderstood. tpollard seems good then :)10:36
tpollardI'm not really touching cache parts of the code, but I just think it makes the member a bit clearer in Stream10:39
*** narispo has joined #buildstream10:45
juergbitpollard: if we do it, we should do it also in Element and Pipeline10:47
tpollardI agree about Pipeline10:48
tpollardand yeh Element10:49
*** narispo has quit IRC10:54
*** lachlan has quit IRC11:01
*** narispo has joined #buildstream11:38
gitlab-br-botaevri opened (was WIP) MR !1638 (aevri/casdprocessmanager->master: cascache: refactor, extract CASDProcessManager) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/163811:56
*** phoenix has joined #buildstream12:01
*** traveltissues has joined #buildstream12:04
*** lachlan has joined #buildstream12:06
*** lachlan has quit IRC12:17
*** narispo has quit IRC12:27
*** narispo has joined #buildstream12:28
*** phoenix has quit IRC12:32
*** lachlan has joined #buildstream13:09
*** santix has quit IRC13:11
*** santix has joined #buildstream13:35
*** lachlan has quit IRC13:53
*** lachlan has joined #buildstream14:00
*** santix has quit IRC14:01
*** santix has joined #buildstream14:01
*** lachlan has quit IRC14:09
*** lachlan has joined #buildstream14:15
tpollardhttps://www.python.org/downloads/release/python-380/14:19
*** rdale has quit IRC14:35
benschuberttime to add new runners :D14:39
tpollard'on macOS, the spawn start method is now used by default in multiprocessing'14:40
tpollardthis is interesting......14:40
benschubertThey have typed dict? Oo14:42
benschubert> multiprocessing can now use shared memory segments to avoid pickling costs between processes14:43
benschubertThat seems awesome14:43
tpollardyes definitely14:43
tpollardmight have to double check that none of our unix/macos checks allow process start method to be default, else we might get some bangs14:45
tpollarduntil we fully support all of the multiprocessing under spawn14:46
*** rdale has joined #buildstream15:10
tlater[m]Hah, is BuildStream 2.0 going to release for python3.8+ only? :D15:14
benschubertif only ;)15:16
tlater[m]Well, considering our target platforms we could probably get away with something like windows/mac only on 3.8?15:17
tlater[m]And afaiu we don't really have subprocess performance issues on other unixes anyway.15:18
gitlab-br-botaevri opened (was WIP) MR !1643 (aevri/oldgit->master: testing/.../site: windows-friendly HAVE_OLD_GIT) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/164315:19
* tlater[m] is probably still thinking to wishfully15:21
tlater[m]s/to/too/15:21
tlater[m]juergbi: Is there any reason why we're using utils.save_file_atomic for the casserver over a simple write?15:43
tlater[m]Can we get concurrent access?15:44
juergbinormally not but we want it to be atomic15:44
juergbie.g., write could fail in the middle15:44
juergbiah, actually, we even do have concurrent access due to grpc15:45
juergbiso we want to make sure that it's not read before it's completely written15:45
juergbiatomic file write should be considered best practice even if there was no concurrency, imo15:46
tlater[m]Ok, makes sense.15:46
tlater[m]Probably. I'm just on a mission to remove all calls to BuildStream API and I was wondering if I could save a call there :D15:47
* tlater[m] also notices that there's issues for adding this to python15:47
tlater[m]So maybe this won't be necessary in the future...15:47
tlater[m]Or anyway if we ever get artifact servers in buildbox-casd15:48
juergbitlater[m]: btw: you might also be interested in !163815:52
gitlab-br-botMR !1638: cascache: refactor, extract CASDProcessManager https://gitlab.com/BuildStream/buildstream/merge_requests/163815:52
tlater[m]Ah, I was writing one of these15:53
tlater[m]juergbi: Do you think the imports to `Message` in there would be a problem for importing it from casserver?15:58
tlater[m]I suppose there's really no reason they should be.15:58
juergbiI don't expect an issue with the import itself15:59
juergbiif it fails to report an error when it should, that's another thing, of course15:59
juergbias I mentioned, we don't have to make it completely standalone right now15:59
tlater[m]In any case, I don't think those thoughts should block the MR16:01
* tlater[m] might extend the original or modify it to be a bit more generic16:01
tlater[m]But yeah, I'd rather use this than roll my own, since it's very nicely decoupled from the rest16:01
*** lachlan has quit IRC16:07
gitlab-br-botBenjaminSchubert opened MR !1644 (bschubert/yaml-tidying->master: Some tidying up of our yaml API) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/164416:20
*** lachlan has joined #buildstream16:31
*** bochecha has quit IRC16:33
*** jonathanmaw has quit IRC17:05
*** santix has quit IRC17:15
benschubertKinnison: would you mind having a lookt at !1644, it touches the yaml :)17:29
KinnisonSure, it'll be tomorrow morning if that's okay?18:07
*** tiagogomes has quit IRC18:22
*** narispo has quit IRC19:06
*** phoenix has joined #buildstream19:12
benschubertsure :)19:14
*** phoenix has quit IRC22:22
*** narispo has joined #buildstream22:30
*** phoenix has joined #buildstream22:54
*** phoenix has quit IRC23:02
*** narispo has quit IRC23:08
*** flatmush has quit IRC23:12
*** flatmush has joined #buildstream23:20
*** phoenix has joined #buildstream23:34
*** phoenix has quit IRC23:45

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