Kinnison | juergbi: I apologise for how slow I was getting back to !1667 (I've had a hectic time last week) but I think your fix in casd looks good and I've resolved that comment as a result. I've also hit 'rebase' to ensure that your change is still good against master. Do you need to push a change to .gitlab-ci.yml on that MR or is it OK to merge as-is and bring the race-condition fix from casd in later? | 08:28 |
---|---|---|
gitlab-br-bot | MR !1667: cascache.py: Defer attempt to connect to casd until socket file exists https://gitlab.com/BuildStream/buildstream/merge_requests/1667 | 08:28 |
Kinnison | juergbi: either way you have my 👍 | 08:28 |
juergbi | Kinnison: thanks. I'm about to update buildbox-casd anyway as we'll need a new snapshot for other MRs | 08:29 |
* Kinnison nods | 08:29 | |
juergbi | so maybe it's best to defer the merge of this until the CI images are updates | 08:29 |
juergbi | *updated | 08:29 |
Kinnison | Sure. | 08:29 |
Kinnison | I won't assign to marge anyway | 08:29 |
Kinnison | I'll leave that to you | 08:29 |
*** traveltissues has joined #buildstream | 08:35 | |
*** tpollard has joined #buildstream | 09:13 | |
benschubert | juergbi: !1642 is good to go I think, https://gitlab.com/BuildStream/buildstream/issues/1126#note_239345156 wqas my benchmark on freedesktop | 09:20 |
gitlab-br-bot | MR !1642: WIP: Reimplement contains_directory() with FetchTree() https://gitlab.com/BuildStream/buildstream/merge_requests/1642 | 09:20 |
juergbi | benschubert: yes, I saw that. thanks for testing. currently updating buildbox-casd and then we can merge it | 09:20 |
benschubert | great | 09:21 |
juergbi | benschubert: I have to say I'm surprised by the uncached show speedup, though | 09:23 |
benschubert | My cache was entirely empty, maybe that was it? | 09:24 |
juergbi | that could make a difference due to casd startup time | 09:27 |
*** santi has joined #buildstream | 09:30 | |
*** tiagogomes has joined #buildstream | 09:39 | |
*** rdale has joined #buildstream | 09:42 | |
juergbi | tlater[m]: fyi, I'm updating buildbox-casd in CI etc., should help unblock !1645 | 09:45 |
gitlab-br-bot | MR !1645: WIP: Refactor casserver.py: Stop relying on the buildstream-internal `CASCache` implementation https://gitlab.com/BuildStream/buildstream/merge_requests/1645 | 09:45 |
*** lachlan has joined #buildstream | 09:58 | |
*** jonathanmaw has joined #buildstream | 10:05 | |
benschubert | any MRs that need attention? | 10:34 |
tpollard | benschubert: would be beneficial if you could benchmark my subprocessing branch on your WSL setup | 10:35 |
tpollard | well, just a timed end to end of the debian target | 10:35 |
benschubert | !1613? A whole build? | 10:36 |
gitlab-br-bot | MR !1613: WIP: Run bst build under a multiprocessing subprocess https://gitlab.com/BuildStream/buildstream/merge_requests/1613 | 10:36 |
tpollard | I don't think it has to be a full build, and obviously when you've got the resources to do so :) | 10:38 |
benschubert | Sure I'll benchmark that and let you know :) | 10:38 |
tpollard | I've got one set of results, which is good enough for now, there's no rush | 10:38 |
tpollard | just something that exercises click.echo heavily | 10:39 |
*** cs-shadow has joined #buildstream | 10:46 | |
*** narispo has quit IRC | 10:47 | |
*** phoenix has joined #buildstream | 10:47 | |
*** narispo has joined #buildstream | 10:51 | |
*** narispo has quit IRC | 10:52 | |
tlater[m] | juergbi: ta! | 11:00 |
gitlab-br-bot | juergbi opened MR !1683 (juerg/casd->master: .gitlab-ci.yml: Update docker images for buildbox-casd 0.0.4) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1683 | 11:02 |
gitlab-br-bot | BenjaminSchubert approved MR !1683 (juerg/casd->master: .gitlab-ci.yml: Update docker images for buildbox-casd 0.0.4) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1683 | 11:03 |
*** phoenix has quit IRC | 11:03 | |
gitlab-br-bot | traveltissues approved MR !1673 (aevri/testutils_artifactshare->master: tests/artifactshare: safer cleanup_on_sigterm use) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1673 | 11:34 |
* tpollard would very much appreciate some eyes on !1613 with any interactive testing (especially on wsl/macos) or review :) | 11:48 | |
tpollard | https://gitlab.com/BuildStream/buildstream/merge_requests/1613 | 11:49 |
*** lachlan has quit IRC | 11:53 | |
*** lachlan has joined #buildstream | 11:56 | |
gitlab-br-bot | marge-bot123 merged MR !1671 (chandan/remove-build-track->master: frontend: Remove tracking options from `bst build`) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1671 | 12:09 |
*** akvilebirgelyte has quit IRC | 12:10 | |
*** akvilebirgelyte has joined #buildstream | 12:11 | |
*** lachlan has quit IRC | 12:21 | |
*** akvilebirgelyte has quit IRC | 12:28 | |
*** lachlan has joined #buildstream | 12:35 | |
*** akvilebirgelyte has joined #buildstream | 12:41 | |
gitlab-br-bot | marge-bot123 merged MR !1683 (juerg/casd->master: .gitlab-ci.yml: Update docker images for buildbox-casd 0.0.4) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1683 | 12:50 |
tpollard | has anyone found themselves waiting around for a gitlab runner in the CI since friday ooi? | 13:24 |
tlater[m] | tpollard: I've been waiting a fair amount, but that's on the docker images repo | 13:35 |
tlater[m] | Not sure they share runners | 13:35 |
*** santi has quit IRC | 13:35 | |
gitlab-br-bot | cs-shadow approved MR !1681 (traveltissues/changeflag->master: Replace flag name) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1681 | 13:35 |
gitlab-br-bot | tlater opened MR !1684 (tlater/casd-socket-permissions->master: cascache.py: Make the casd socket tempdir group-rwx) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1684 | 13:37 |
gitlab-br-bot | BenjaminSchubert approved MR !1684 (tlater/casd-socket-permissions->master: cascache.py: Make the casd socket tempdir group-rwx) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1684 | 13:41 |
tlater[m] | Ta benschubert :) | 13:45 |
tlater[m] | Though I'd like juergbi to approve, too, I think it'd be better to create that directory in buildbox-casd. | 13:45 |
*** santi has joined #buildstream | 13:49 | |
tpollard | tlater[m]: hmmm I'm not sure either, ta | 13:51 |
benschubert | tlater[m]: if buildbox-casd does it, it will also need to set it 770, there is little change there. I wonder whether buildbox would need that. If so, that's where we should do it, otherwise BuildStream :) | 13:55 |
benschubert | tlater[m]: also anythin needed on the removal of update state part? | 13:55 |
tlater[m] | benschubert: Mostly review | 13:56 |
tlater[m] | :) | 13:56 |
tlater[m] | I'd like to give it another benchmark run, but I'm waiting for a new laptop | 13:56 |
tlater[m] | Since this one's way too slow | 13:56 |
benschubert | ok I'll add it to my list :) | 13:56 |
tlater[m] | \o/ | 13:57 |
tlater[m] | ta benschubert | 13:57 |
juergbi | tlater[m]: will think about it | 14:00 |
juergbi | access is required by both processes | 14:01 |
juergbi | the ideal approach, imo, would be to use socket activation, which would mean that casd wouldn't need access to it. however, gRPC doesn't support that (yet) | 14:01 |
traveltissues | tlater[m], how long does it take to benchmark on that laptop | 14:02 |
juergbi | the main issue is that buildstream generally has no idea who else belongs to the same group, i.e., whether that chmod would be a safe thing | 14:03 |
tlater[m] | traveltissues: 4 hours | 14:03 |
traveltissues | that's about normal for mine | 14:03 |
tlater[m] | juergbi: Yes, that's why I'm hestitant. | 14:03 |
tlater[m] | traveltissues: I'll probably have to bite the bullet eventually, but it's not that much of a priority right this instant. | 14:04 |
tlater[m] | Especially not if review comes up with more changes. | 14:04 |
traveltissues | i often leave mine to run overnight | 14:05 |
tpollard | I just restarted the bastions gitlab-runner service, might take a few moments to spin back up | 14:09 |
tpollard | might require any on-going pipelines to be restarted too | 14:11 |
tpollard | (I've increased the amount of concurrent runners that docker-machine can spawn) | 14:13 |
benschubert | tlater[m]: I can probably run the benchmark at home overnight if needed also | 14:24 |
tlater[m] | benschubert: That's ok, I'll re-run them once I've had another round of review. | 14:25 |
benschubert | tpollard: is !1613 rebased on master for the tests? :) | 14:28 |
gitlab-br-bot | MR !1613: WIP: Run bst build under a multiprocessing subprocess https://gitlab.com/BuildStream/buildstream/merge_requests/1613 | 14:28 |
juergbi | marge is broken inside :-/ | 14:29 |
tpollard | benschubert: yep, should be on master :) | 14:30 |
benschubert | tpollard: awesome | 14:30 |
tpollard | the commit history is still in a WIP state, but the actual total diff is about ready for review | 14:30 |
*** lachlan has quit IRC | 14:31 | |
*** lachlan has joined #buildstream | 14:31 | |
benschubert | yep no worries, I'm pulling, will be done in 1h or so, then I'll try | 14:32 |
tpollard | benschubert: also as we briefly discussed handling exceptions from the subprocess (i.e tracebacks being non-pickle) my current approach uses tblib, I'm not sure if you've come across it before | 14:34 |
benschubert | never, but I had a brief look at what it was, haven't looked at the code though | 14:34 |
benschubert | I'd just wonder how much of it do we need, as I'd rather not add yet another dependency if it can be fixed in 50-100 lines :) | 14:35 |
* tpollard nods | 14:36 | |
*** lachlan has quit IRC | 14:38 | |
*** lachlan has joined #buildstream | 14:41 | |
gitlab-br-bot | mostynb opened MR !1685 (link_fix->master: fix broken user guide link in README.rst) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1685 | 14:44 |
gitlab-br-bot | traveltissues approved MR !1685 (link_fix->master: fix broken user guide link in README.rst) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1685 | 14:45 |
gitlab-br-bot | mostynb closed MR !1665 (link_fix->master: fix broken user guide link in README.rst) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1665 | 14:45 |
gitlab-br-bot | BenjaminSchubert approved MR !1685 (link_fix->master: fix broken user guide link in README.rst) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1685 | 14:45 |
gitlab-br-bot | marge-bot123 merged MR !1681 (traveltissues/changeflag->master: Replace flag name) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1681 | 14:47 |
tlater[m] | Grmbl, there's more temporary directories | 14:48 |
*** lachlan has quit IRC | 14:49 | |
tlater[m] | Any idea why local cas would be writing to these directories? https://hastebin.com/gicacahoni.sql | 14:49 |
tlater[m] | For reference, the actual cas tmp directory is in cache/cas/tmp, not in cache/tmp | 14:50 |
tpollard | :S | 14:58 |
tlater[m] | Seems to be the directory elements/sources are staged into | 14:59 |
tlater[m] | Why would buildbox-casd need to access that? | 14:59 |
tlater[m] | It's going to be the virtual directory on top of that directory... | 15:02 |
tlater[m] | grmbl, grmbl, grmbl | 15:03 |
tlater[m] | juergbi: I'm starting to wonder if these setuid games are a good idea | 15:03 |
juergbi | tlater[m]: I'm not generally fond of setuid, but do you have a suitable alternative in mind? | 15:06 |
juergbi | we can't get around the need for two uids, afaict | 15:06 |
juergbi | we could require the user to start casd as separate uid manually / via something like systemd | 15:06 |
tlater[m] | Is there no way to keep it at one uid? | 15:07 |
tlater[m] | It could be done by listening to a socket with systemd | 15:07 |
tlater[m] | But I suppose not all platforms have a systemd | 15:08 |
juergbi | almost none do | 15:08 |
juergbi | and on Linux the standard mechanism is planned to use FUSE, so we won't need two UIDs on Linux | 15:08 |
tlater[m] | Yeah | 15:08 |
juergbi | however, for other platforms, if we want to use hardlinks and safeguard the cache from corruption, we need two UIDs, afaict | 15:08 |
juergbi | if the platform doesn't support FUSE | 15:09 |
juergbi | userchroot also has an additional requirement for two UIDs, but we already need it for hardlink protection, so userchroot is not the main issue here | 15:09 |
juergbi | tlater[m]: are you concerned about the use of two uids in general or just about using setuid to achieve that? | 15:10 |
tlater[m] | In general. It's bleeding into all our invocations of mkdtemp | 15:11 |
tlater[m] | It feels wrong to essentially require two users to run buildstream | 15:12 |
tlater[m] | And everything is resisting that, too. | 15:12 |
benschubert | tpollard: which branch of debian-stretch-bst where you trying? | 15:12 |
tlater[m] | I see why it's required, but I dislike it. | 15:12 |
tlater[m] | juergbi: Obviously setuid is evil, too, but I think userchroot is a reasonable way of doing that. | 15:13 |
juergbi | tlater[m]: two uids: yes, I don't exactly like it either but unfortunately POSIX doesn't have proper immutable files (and not even Linux has that) | 15:14 |
juergbi | tlater[m]: not sure I understand your last comment. userchroot doesn't eliminate the need for casd setuid | 15:14 |
juergbi | userchroot itself needs to be setuid root but that's orthogonal | 15:14 |
tpollard | benschubert: locally I use jennis/add_all_files, I'm not 100% sure which branch was used for the wsl results. Do you remember traveltissues? ^ | 15:14 |
juergbi | tlater[m]: btw: I've added a comment to your MR | 15:15 |
benschubert | Ok I'll use this one, thanks :) | 15:15 |
tlater[m] | No, that's true | 15:15 |
benschubert | gah, those checkout times x') | 15:15 |
tlater[m] | juergbi: Ah, ta | 15:15 |
traveltissues | tpollard, that's the branch i use | 15:15 |
tpollard | cool, ta :) | 15:15 |
benschubert | traveltissues: ooi is checking out this branch also taking 10 minutes+ for you? | 15:16 |
traveltissues | yes | 15:16 |
tlater[m] | juergbi: So create the socket in a buildstream-owned directory, and symlink to it instead to avoid having its path name be long? | 15:17 |
juergbi | tlater[m]: it's always casd that creates the socket, not buildstream (as we can't use socket activation) | 15:18 |
juergbi | right now we pass something like /tmp/buildstream-foo/casd.sock to casd as socket path to use | 15:19 |
tlater[m] | Ah, right | 15:19 |
juergbi | my suggestion is to pass something like /tmp/buildstream-foo/cas/casd.sock | 15:19 |
juergbi | where 'cas' is a symlink | 15:19 |
juergbi | (maybe socket name also should be something unique, not fixed casd.sock to retain current behavior with multiple instances) | 15:20 |
tlater[m] | That symlinks to somewhere deep inside $HOME? | 15:20 |
juergbi | and the 'cas' symlink would point to the cas directory, i.e., the toplevel directory casd works with | 15:20 |
tlater[m] | Or whatever other path buildstream's current cache directory is | 15:20 |
juergbi | so casd should anyway have write access to that directory already | 15:20 |
juergbi | (and buildstream read access) | 15:20 |
* tlater[m] doesn't dislike this, but we encounter a similar problem with FileBasedDirectory, which requires us to make the buildstream-created localcas directories rwx. | 15:21 | |
tlater[m] | That can't be avoided the same way, so we sort of need to leak build details to the user's group? | 15:22 |
tlater[m] | At which point the socket directory permissions aren't that important anymore | 15:22 |
juergbi | tlater[m]: can you clarify what you mean with buildstream-created localcas directories? | 15:23 |
tlater[m] | I suppose tightening that isn't too bad either way. | 15:23 |
tlater[m] | juergbi: These paths: https://hastebin.com/uwezuhonox.sql | 15:24 |
tlater[m] | BuildStream's FileBasedDirectory is backed by CAS, but the directories are created by BuildStream | 15:24 |
juergbi | FileBasedDirectory is not backed by CAS | 15:25 |
juergbi | that would be CasBasedDirectory | 15:25 |
tlater[m] | If BuildBox-casd is setuid, that becomes a problem | 15:25 |
juergbi | the goal should be that everything in the cas directory should be created by casd | 15:26 |
tlater[m] | Well, FileBasedDirectory calls through to CasBasedDirectory | 15:26 |
juergbi | I'd say buildstream should never have to write anything in there | 15:26 |
juergbi | but neither of them should directly write into the cas directory | 15:26 |
juergbi | that would be a bug | 15:26 |
* tlater[m] tries to figure out why BuildStream creates that | 15:29 | |
juergbi | for tests things might be more complicated than for non-test environments, as tests have to dynamically create these directory hierarchies whereas we can require some of those directories to be created manually for non-test environments as part of setup for two setuid platforms | 15:31 |
juergbi | on the other hand, adding test-only chmods would typically not be a security issue, so we should be able to work around that | 15:32 |
tlater[m] | juergbi: The problem is that those directories only come into existence when we invoke BuildStream, and their names are random | 15:34 |
tlater[m] | We could make a util that does tempfile.mkdtemp but respects umask, but there's a security consideration with that. | 15:35 |
juergbi | yes, I don't think we should do that | 15:35 |
juergbi | I'd rather add tets-specific code. e.g., to runcli | 15:35 |
juergbi | or even to the core codebase (conditional on running in test suite) if we have to, but better to keep it out of the core code | 15:36 |
tlater[m] | Maybe a tempfile.mkdtemp that respects umask only when run with BST_TEST_SUITE? | 15:36 |
tlater[m] | Yeah, but I don't see how we're going to predict temporary directory names. | 15:36 |
juergbi | would theoretically be an option but only if it's not possible with with additions in test code alone | 15:36 |
juergbi | we obviously won't | 15:36 |
juergbi | however, it should only be needed for the toplevel CAS directory structure for each casd instance | 15:37 |
juergbi | and that we might be able to handle | 15:37 |
juergbi | but I might be missing something | 15:37 |
tlater[m] | Assuming that BuildStream doesn't create temporary directories inside CAS' directory | 15:37 |
juergbi | tlater[m]: I don't think we do but the issue might be that we create a temporary directory outside that casd needs to be able to read | 15:39 |
tlater[m] | Why would it need to read that? | 15:40 |
juergbi | import files | 15:40 |
tlater[m] | Is that to work around expensive copies? | 15:41 |
juergbi | no, it needs to read those files to create copies | 15:41 |
juergbi | in a way it is an optimization in that we don't want to send everything over the socket, as that would be the only alternative to get files into CAS | 15:42 |
tlater[m] | Ah right | 15:42 |
juergbi | tlater[m]: my comment above about not generally weakening mkdtemp security with umask was mainly about global locations such as /tmp, though. respecting umask for mkdtemp inside a buildstream-owned directory directory should be much less of an issue | 15:42 |
tlater[m] | Yeah | 15:43 |
juergbi | there we use mkdtemp only as random name generator, not as security mechanism | 15:43 |
juergbi | and with the exception of the socket, I think we use mkdtemp always in those buildstream hierarchies | 15:43 |
juergbi | so we can potentially change that | 15:43 |
tlater[m] | I suppose those directories would be harder to get to | 15:44 |
juergbi | yes, access can be controlled by parent directories | 15:44 |
tlater[m] | So maybe a mkdtemp util that asserts parent directories' permissions aren't open enough to cause trouble? | 15:45 |
*** lachlan has joined #buildstream | 15:45 | |
*** traveltissues has quit IRC | 15:49 | |
*** traveltissues has joined #buildstream | 15:49 | |
juergbi | tlater[m]: I don't think we should assert those permissions | 15:50 |
juergbi | that should be up to the admin/user, imo | 15:51 |
gitlab-br-bot | marge-bot123 merged MR !1667 (juerg/casd-connect->master: cascache.py: Defer attempt to connect to casd until socket file exists) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1667 | 15:51 |
*** lachlan has quit IRC | 15:51 | |
juergbi | as long as we still respect umask I don't see an issue | 15:51 |
juergbi | I don't think we need to open up permissions beyond umask, right? | 15:51 |
*** lachlan has joined #buildstream | 15:51 | |
juergbi | (assuming systems that require the dual uid approach set a suitable umask) | 15:51 |
tlater[m] | No, that seems right | 15:52 |
gitlab-br-bot | juergbi opened (was WIP) MR !1642 (juerg/fetch-tree->master: Reimplement contains_directory() with FetchTree()) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1642 | 15:53 |
tlater[m] | Well, let's see - ta juergbi, I would have been stuck for a couple more days without that explanation | 15:54 |
* tlater[m] gets on with that patch | 15:54 | |
juergbi | review/approval required for simple website MR: https://gitlab.com/BuildStream/website/merge_requests/129 | 15:56 |
tpollard | will check it | 15:57 |
tpollard | done :) | 15:59 |
juergbi | ta | 16:00 |
*** santi has quit IRC | 16:17 | |
coldtom | is there a way i can get bst to create a tmpfs at `/dev/shm` rather than mounting the host `/dev/shm` in? iiuc bst is using the host one | 16:20 |
*** lachlan has quit IRC | 16:22 | |
tlater[m] | coldtom: Assuming you're on Linux, that's handled by bwrap | 16:23 |
* tlater[m] doesn't see any options for this in bwrap | 16:24 | |
coldtom | tlater[m]: don't directories marked using `Sandbox.mark_directory()` get --dev-bind-ed in? which surely shares the host one? | 16:24 |
tlater[m] | coldtom: In any case, that requires calling mknod, so you'd need to run BuildStream as root. | 16:25 |
tlater[m] | coldtom: Oh, I suppose /dev is marked | 16:25 |
coldtom | wouldn't the --tmpfs bwrap option work? that looks to be how /tmp gets created | 16:26 |
tlater[m] | But yeah, I don't think we'd have permissions to create a tmpfs there. | 16:26 |
tlater[m] | I'd imagine that conflicts with --dev-bind-ing /dev | 16:27 |
tlater[m] | coldtom: Oh, it's actually done right | 16:28 |
tlater[m] | coldtom: In non-interactive mode /dev/shm is not created at all | 16:28 |
tlater[m] | You won't get a tmpfs, but at least you won't get host debris | 16:29 |
tlater[m] | But to answer your actual question, there's no option to create a tmpfs for /dev/shm with BuildStream atm, you'd need to write a patch for that. | 16:30 |
tlater[m] | Probably not too difficult. | 16:30 |
coldtom | ta, it's just that if something in the sandbox needs to use /dev/shm, i'd rather it not use the host one | 16:31 |
tlater[m] | coldtom: You won't be | 16:34 |
tlater[m] | Unless you're running a `bst shell` | 16:34 |
tlater[m] | But `bst shell` doesn't produce anything anyway, so that should be ok. | 16:35 |
tlater[m] | We only --dev-bind /dev/null|zero|full|... | 16:35 |
tlater[m] | Except in interactive shells | 16:35 |
tlater[m] | Where we bind everything so you can access your console | 16:35 |
*** traveltissues has quit IRC | 16:37 | |
*** lachlan has joined #buildstream | 16:59 | |
gitlab-br-bot | marge-bot123 merged MR !1685 (link_fix->master: fix broken user guide link in README.rst) on buildstream https://gitlab.com/BuildStream/buildstream/merge_requests/1685 | 17:01 |
*** santi has joined #buildstream | 17:03 | |
*** lachlan has quit IRC | 17:06 | |
*** lachlan has joined #buildstream | 17:06 | |
*** lachlan has quit IRC | 17:11 | |
*** lachlan has joined #buildstream | 17:16 | |
*** lachlan has quit IRC | 17:24 | |
*** tiagogomes has quit IRC | 17:43 | |
*** santi has quit IRC | 18:02 | |
*** phoenix has joined #buildstream | 18:03 | |
*** lachlan has joined #buildstream | 18:17 | |
benschubert | tpollard: https://gitlab.com/BuildStream/buildstream/merge_requests/1613#note_239793750 :( | 18:23 |
*** lachlan has quit IRC | 18:24 | |
*** jonathanmaw has quit IRC | 21:06 | |
*** rdale has quit IRC | 21:06 | |
*** phoenix has quit IRC | 21:20 |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!