IRC logs for #buildstream for Monday, 2017-07-17

*** tristan has quit IRC06:40
*** tristan has joined #buildstream07:04
tristan<tristan> jjardon[m], jf you change build-essential in baserock, you have to manually change the gnu-toolchain used in the conversion too07:04
tristan<tristan> but yeah, Sam has been focusing a lot on this so it's much better to base your work on his, than on the initial conversion I did months ago07:04
tristan<tristan> of course his toolchain stack is much more up to date07:04
* tristan repeats after ensuring he really has a connection :)07:04
*** ChanServ sets mode: +o tristan07:05
jjardon[m]Tristan thanks, but I didn't change buuld-essential, libffi is in core08:19
jjardon[m]Now I'm hitting this : https://gitlab.com/baserock/definitions/-/jobs/22760527 seems an issue in buildstream; did you see it before?08:20
juergbithat might be my fault, let me take a look08:26
juergbiyes, missing variable initialization. i had this but apparently removed this on rebasing or so08:27
juergbithat's regarding the push failure, which should not be considered fatal08:29
*** tlater has joined #buildstream08:31
*** jonathanmaw has joined #buildstream08:32
gitlab-br-botpush on buildstream@master (by Jürg Billeter): 1 commit (last: _artifactcache/pushreceive.py: Fix exception handling) https://gitlab.com/BuildStream/buildstream/commit/b5861b148bbe4f1e71128955d709c6b28f2394e508:34
jjardon[m]Thanks juergbi ! I will try again later08:35
jonathanmawtristan: hrm, it looks like I can't get any useful information out by using strace. Mainly because it breaks fuse somehow.08:48
jonathanmawI'll try and dig up the fuse error again.08:48
jonathanmawtristan: said error is https://pastebin.com/tazk2zkN08:58
jonathanmawand looking at the strace log, that seems to be happening when it fusermounts "."08:59
jonathanmawfull syscall is mount("SafeHardlinkOps", ".", "fuse", MS_NOSUID|MS_NODEV, "fd=3,rootmode=40000,user_id=1000"...) = -1 EPERM (Operation not permitted)09:00
*** ssam2 has joined #buildstream09:06
jonathanmawso I'm going to look at making tests for dpkg-build and dpkg-deploy elements09:08
jonathanmawwhich looks like it would be best served by creating a "test" debian source09:10
tlaterHave you had time to look at my merge request yet, tristan?09:10
tristanjonathanmaw, I was going to suggest the same, if you're hitting walls then that's a better use of your time09:11
tristanjjardon[m], ah, ok that is strange, it must have changed and something about -dumpmachine doesnt work for it (was building few months ago), anyway looks like you got a fix from sam nevertheless :)09:12
tristantlater, sigh... unfortunately I spent literally all weekend trying to solve a problem which I still have not solved :'(09:13
tristanApparently my variant resolution code is borked09:14
tristanone of those moments you sort of wish you had a strong maths background09:14
tlatertristan: I'll write some more tests for that MR for now then :)09:14
tristanI have a working solution, but the complexity is exponential, and takes minutes to result small pipelines of only ~50 elements (with around 15 variants in play)09:15
tristanso I havent committed that09:15
tristanand trying to figure out how to solve this properly09:15
tristantlater, ok so I wonder about checking _tainted() state09:37
tristanCurrently we look over everything and check all dependencies tainted state09:37
tristantlater, I feel like this would be stronger if, we just knew if a dependency of the artifact was tainted by looking at the artifact data09:38
tristanrather than checking all dependencies at this point09:38
tlaterThat would involve figuring out which artifacts are dependencies09:39
tristanIt seems equal at this point, but it may be more defensive and future proof if we could A.) encode that into the artifact (the fact that it was built against a workspaced dependency) and B.) Just resolve tainted as 'workspaced or dependency_workspaced' from the artifact09:39
tristantlater, right that's not what I meant09:40
tristantlater, I mean encoding that at artifact creation time09:40
tristanwe will probably want to encode dependencies (and maybe their keys) into artifact data for other reasons, but that is rather orthogonal09:40
tlaterAh, I understand09:41
tlaterSo instead of just checkin whether a dependency is currently tainted, when the metadata is stored check if a dependency is tainted.09:42
tristantlater, or workspaced rather09:45
tristanstill resolve tainted from whether the artifact was workspaced, or any dependency was workspaced09:46
tristantlater, actually provenance is even better if the other attribute is a list of which dependencies which it was built against, were workspaced09:46
tlaterThat would have extend to all possible reasons for tainting, though.09:47
tristanI think the philosophy here is: A.) Encode the facts of what happened in the artifact and B.) Resolve whether that means the artifact was tainted at runtime09:48
tristantlater, so indeed, any other things in the future would have other attributes to indicate them in the artifact09:48
tristanwhoa10:03
tristanOk I think I have a sub-par solution which may just save the day10:03
tristanI'm going to need a real, better solution, I think... I still might be able to trick it10:05
tristanbut it's passing all the tests (including some recent additions), and passing my expectations for the GNOME modulesets10:05
tristantlater, ok so... I think after that change, lets just run with it10:15
tristanI have a bunch of code to land now10:15
tristanbut if you can push a new branch soonish, I'd rather rebase against you; there will be a couple of conflicts I anticipate10:16
tlaterAlright. I'll probably have this done an hour, maybe two after the meeting, build times make things take a while.10:17
tlaterLooks like this might just be working already...10:21
*** jonathanmaw_ has joined #buildstream10:30
*** jonathanmaw has quit IRC10:31
*** jonathanmaw_ has quit IRC11:28
*** jonathanmaw has joined #buildstream11:28
jjardon[m]juergbi: Im getting a different error now: https://gitlab.com/baserock/definitions/-/jobs/2281293811:49
tristanwhoa, that looks unlikely12:03
juergbithat's a really large xz binary...12:10
juergbiah, no, that's just message size12:10
juergbi64k, hm12:10
gitlab-br-botpush on buildstream@workspaces (by Tristan Maat): 3 commits (last: element.py: Encode workspaced dependencies in metadata) https://gitlab.com/BuildStream/buildstream/commit/4a38386b4d5dc740c68eaf5e5fd3f7e4f59e003c12:16
gitlab-br-botbuildstream: merge request (workspaces->master: Workspaces) #50 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5012:16
tlaterAlright, that should be it. I've written integration tests for this, will update those ASAP too - permission issues, as usual.12:17
tristantlater, great12:17
tristantlater, I'll give it a quick lookover, merge and rebase on it12:17
tristanI dont expect issues12:17
tlaterAlright, I'll go for lunch real quick :)12:25
juergbitristan: do we need to keep supporting remote artifact servers that don't have a summary file or is it ok to hard require this (to reduce the number of code paths)?12:43
ssam2we only have 2 servers so far :-)12:45
ssam2i'm happy to update ostree.baserock.org12:45
ssam2or is this going to require a bleeding edge ostree ?12:45
juergbino ostree update should be required. for the minimal version it would just be a cron job that runs ostree summary -u to update the summary file12:58
juergbithe question is more about whether we're ok with requiring servers to have this in place than compatibility with existing servers12:58
juergbii would say yes but wanted to check before i rip out some code paths ;)12:59
ssam2we already require them to have buildstream installed, i don't think a cron job is much extra effort13:00
ssam2buildstream could ship suitable systemd unit files, even13:00
ssam2is this going to mean we can only download artifacts we need ? :-)13:01
juergbithat's already the case anyway. it will allow us to avoid trying to download artifacts that don't exist13:04
juergbialready the case for the most part, that is13:05
juergbiwe can generate the build plan after checking available artifacts in the summary file. this means that some artifacts that are only build dependencies of already built artifacts can be skipped altogether13:05
juergbiwill be nice to skip downloading bootstrap in the first session13:06
tristanjuergbi, hard require, reduce codepaths, please13:08
juergbigladly13:09
tristanjuergbi, I admit that I dont like the cron job, but other approaches are buggy :-/13:09
tristani.e., we could lock it in `bst-artifact-receive`13:09
tristanbut if we ever fail to exit gracefully, it's locked for life13:09
juergbiwe could also have bst-artifact-receive trigger a systemd job13:10
tristanalso not sure how long it would take to update summary on huge server13:10
juergbiwhere systemd ensures it completes13:10
juergbiand is never run multiple times at once13:10
tristanthen we require systemd13:10
tristanwhich... is sort of the same reason I dont like the cron13:10
tristanmoving parts13:10
juergbisure, it would be great to not require anything external but well..13:11
tristananyway13:12
juergbithe good thing is that we could improve this later on without anything else being affected13:12
juergbiso i think we should just go with cron for now and look into improvements later13:12
tristanjuergbi, this detail will have to go into `doc/sources/artifacts.rst`13:12
juergbiyes13:12
tristanI also agree the API contract for artifact servers should be less severe than, things like project format13:13
* tristan has working project variants now13:14
tristanpretty nice feature actually... project is loaded first with floating variants; then project is loaded; element variants are resolved (element variants can have different requests for a project variant), after that, agreement of loaded elements is found for the desired project variant13:15
tristanThen that decided project variant is used to composite project config with the selected variant13:16
tristanAll of this before Element instances are created13:16
tristanAnd before project inheritance happens13:16
* tristan will fix test cases which will surely be broken by this change (need to adapt project/_loader loading APIs in there)13:17
juergbi:)13:21
* tristan opens a workspace14:04
tlaterHas everything gone up in flames yet?14:05
tristanhaha, colorful `bst workspace --list`14:05
tlater:)14:05
* tristan holds breath...14:07
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 20 commits (last: _loader.py: Fixed variant priority in variant resolution) https://gitlab.com/BuildStream/buildstream/commit/fb69e5546256a513fc903a393fe448d9f4f4383b14:07
gitlab-br-botbuildstream: merge request (workspaces->master: Workspaces) #50 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/5014:07
tlater\o/14:07
jjardon[m]juergbi: do you want me to file a bug report somewhere?14:13
*** tristan has quit IRC14:40
*** jude has quit IRC15:07
juergbijjardon[m]: is this with gnome7 or another server?15:09
juergbiit looks like we're hitting a protocol limitation, 64 kB for the info message with all the refs15:10
juergbibuildstream produces a lot of refs, so that's actually not surprising. i guess Dan didn't expect that when designing the protocol15:11
juergbiwe could widen the size field but it would probably be better to avoid sending all refs in the first place15:12
*** jude has joined #buildstream15:20
jjardon[m]juergbi: its the server ssam2 setup for baserock, let me check15:22
jjardon[m]https://ostree.baserock.org/15:22
juergbita. yes, i suspect we're already hitting that limit. need to fix this in the protocol15:25
juergbiwe should file a bug at https://gitlab.com/BuildStream/buildstream/issues to track this15:26
gitlab-br-botbuildstream: issue #47 (""OverflowError: int too big to convert" when pushing artifacts") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/4715:44
tlaterHm. I'm unable to remove cache directories in my tests, for some reason15:44
tlater`rm -rf ${XDG_CACHE_HOME:-~/.cache}/buildstream/artifacts` doesn't seem to have any effect.15:45
ssam2is it using bash ?15:45
tlaterYup15:46
tlaterThe strange thing is that it just works fine outside the test script15:47
ssam2try changing the `rm -rf` to an `echo` ? without context, the path being wrong is the only thing I can think of15:50
tlaterEcho displays the path I expect...15:50
ssam2oh right15:50
tlaterIt *is* quoted, by the way.15:52
tlaterAh, looks like ~ isn't expanded in that variable15:54
tlaterThat took me 2 hours -.-15:54
ssam2shell \o/15:54
*** jude has quit IRC16:07
*** jude has joined #buildstream16:32
tlaterWhy does the CI take 20+ minutes all of the sudden :/16:44
*** tlater has quit IRC16:53
*** tristan has joined #buildstream16:56
*** jonathanmaw has quit IRC17:02
*** jude has quit IRC18:16
*** ssam2 has quit IRC18:23
gitlab-br-botbuildstream: merge request (pedro/docker-bzr->master: Add support for bzr sources in Docker) #58 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5822:57
gitlab-br-botbuildstream: merge request (pedro/docker-bzr->master: Add support for bzr sources in Docker) #58 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5823:03

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