IRC logs for #buildstream for Tuesday, 2017-07-04

juergbitristan: i don't think this was correct: https://gitlab.com/BuildStream/buildstream/commit/b0a196a8cb34964e7c0af2fa74c8ada8bc0408c807:13
juergbiruntime dependencies of build dependencies can influence the build and they aren't covered by the cache key of the build dependencies, afaict07:13
juergbiassuming we don't want to intentionally be fuzzy about this to speed up builds07:14
*** tristan has quit IRC07:33
*** tristan has joined #buildstream07:58
*** tristan has quit IRC07:59
*** tristan has joined #buildstream07:59
*** jonathanmaw has joined #buildstream08:22
juergbitristan: did you get my messages or were they lost with your disconnect?08:27
*** tlater has joined #buildstream08:29
gitlab-br-botpush on buildstream@testing-colors (by Tristan Van Berkom): 3 commits (last: widget.py: print_heading() now takes a styling boolean) https://gitlab.com/BuildStream/buildstream/commit/4a4b2f77c272d26bcbbb221957eaac0c9687e45c08:51
*** tiagogomes has quit IRC08:53
tristanoh sorry, I missed it08:59
tristanjuergbi, I think it is correct09:00
tristanbut wait09:00
tristanno you are right09:00
tristanso then... what is correct, hmm09:00
tristanjuergbi, build dependencies + runtime dependencies of each build dependency, non recursively ?09:00
tristanrecursive everything seems a bit much09:01
tristanand while including runtime dependencies of 'self' solves it for the depending elements, it's incorrect I thikn09:01
tristan*think09:01
juergbiScope.BUILD + recurse should be correct09:01
tristan+ recurse completely I guess ?09:01
juergbiyes09:01
tristancause runtime of runtime can change09:01
juergbiexactly09:01
tristanyeah, so the entire Element.dependencies(Scope.BUILD)09:02
juergbiyes09:02
tristanjuergbi, care to just bypass the entire gitlab foolishness and push a fix directly to master for that ?09:02
juergbisure, will do09:02
tristanMost of you have permission to do so09:03
tristanand if you want to create your own branches on the main repo, that might make your lives easier too :)09:03
jonathanmawtristan: have you started on issue 44 or shall I pick it up?09:04
jonathanmaw(I'm blocked on all the other things I'd be doing)09:04
* juergbi can hopefully unblock jonathanmaw very soon09:05
*** tiagogomes has joined #buildstream09:10
*** ssam2 has joined #buildstream09:12
ssam2morning all09:12
ssam2tristan were you thinking of a buildstream BoF at GUADEC ?09:13
gitlab-br-botpush on buildstream@master (by Jürg Billeter): 1 commit (last: element.py: Fix dependency handling in cache key calculation) https://gitlab.com/BuildStream/buildstream/commit/40e9d16dce74bdf3abb8728fcd976fe80b3d1df309:13
ssam2if so, signup is open now .. https://wiki.gnome.org/GUADEC/2017/Unconference09:13
tristanssam2, good !09:16
tristanthanks for the pointer :)09:16
tristanjuergbi, so I'm quite worried about this artifact server situation... I let it run all night09:17
tristanevery failure says "read: Connection reset by peer"09:18
juergbinot a single successful push? and this is with or without control master?09:18
tristanI wonder... juergbi is it possible that it took my old (incorrect, lacking 'artifacts@') configuration and cached it somewhere else and is using that instead ?09:18
tristanmaybe as a remote or smth ?09:18
juergbino, the ssh host/path is not cached anywhere09:19
tristanHmm09:19
tristanNah I would doubt anyway, I've seen it doing something and mount properly09:19
tristanbut it eventually screws up09:19
juergbican you try to manually copy a file to a sshfs mount of that server? see how fast it is / whether it works?09:20
tristanNot a single successful push at all no09:20
tristanI have tried to "touch" one so far, that worked09:20
juergbithat's with 4 max pushers? 1 max pusher might help with bad network connectivity09:20
juergbii could setup a OSTree repo on my own server to test whether this is a server/connectivity-specific issue (would still be in Europe but a less complex network path)09:22
tristanJust copied a file with 2744 bytes09:22
tristanit took 1.571s09:22
juergbiok, difficult to extrapolate performance for large files from that but it's already bad for small files09:23
tristanOk but what I recall09:23
tristanIs that the connection stays at around 3/4 kbps for long periods of time (for my computer in general, so not necessarily all ostree push related traffic)09:24
juergbi0.729s for 50 kB here09:24
tristanthen every once and a while, it spikes up to 200kbps or even 900kbps09:24
tristanand it remains at that speed for about 0.1 seconds09:24
juergbii've seen variations as well but it was between 100kbps and 10Mbps or so, iirc09:25
juergbiaverage of my session based on iftop was 500kbps09:25
tristanso what it feels like, is that it is making many many round trips for system calls, each at 350ms per trip09:25
tristanand one day... it decides, OK upload a file !09:26
tristanand that happens immediately09:26
tristanand back to roundtripping09:26
juergbicould well be the case09:26
juergbiwe briefly discussed the potential slowness of sshfs a while ago09:26
juergbiwhen i discovered that regular ostree-push only works with archive-z2 repos09:27
tristanhmmm09:27
tristanOk but arent we using archive-z2 repo locally ?09:27
juergbino, we use bare user, iirc09:27
tristanOh right09:27
tristanThat is needed for the optimized checkouts, we use archive-z2 for ostree sources09:28
juergbiyes. one option would be to have both locally or maybe we can get something like original ostree-push to work with bare-user as well09:28
tristanNot really09:29
tristanWell, first one, will make an artifact cache double in size09:29
tristanit would be anyway really huge... but...09:29
tristanWe could do something temporary for a half way09:29
juergbithe archive-z2 one would at least be compressed09:29
juergbihowever, i agree, it doesn't sound ideal09:30
tristanfor push, we could checkout and create an archive-z2 repo for the purpose of pushing09:30
tristanthat should not be too bad, all artifacts are usually pretty different, and most of them relatively small09:30
juergbiyes, two-stage push should work. first pull-local and then push via ssh09:31
tristanso create the archive-z2 repo, push from there, and delete, all in a temp dir09:31
tristanBefore going down that road, we should see how performance is09:31
juergbiand also see whether we can't modify ostree-push to directly work with bare user repos09:32
tristanMaybe that09:34
tristanI dont know much the details of ostree push09:34
tristanjonathanmaw, ok so, to get this out of the way I'll just tell you...09:49
tristanjonathanmaw, utils.py:_relative_symlink_target()09:49
tristandoes os.path.relpath() (find the relative path), between the absolute symlink, and a concatenation of the root and the target09:50
tristani.e. the symlink's "realpath"09:50
tristanjonathanmaw, it needs to os.path.join(os.path.realpath(root), target) in this case, not os.path.join(root, target)09:51
tristanjonathanmaw, just please test that it still works with your symlinked build directory configuration after changing that line, and it will be enough09:51
jonathanmawta tristan09:52
tlaterLooks like there are no callbacks for TarFile extractall()09:55
tristantlater, ok so there is another approach which might be easier and, maybe better also10:00
tristantlater, in the function you split up... Element._stage_sources_at()...10:02
tristantlater, we just recursively force mtime on everything using utils._set_deterministic_mtime()10:02
tristantlater, you can create a different utility to do the same, but force the uid/gid ownership of everything10:04
tlaterAre you suggesting to set ui/dgid in a similar function?10:05
tlaterOh, yeah10:05
tristanto os.geteuid() and os.getegid()10:05
tristantlater, that way if every this arises with a different source type, it's already covered10:05
tristanI guess it's plausible that it could happen with ostree sources10:06
tlaterYeah, that might be better10:06
tristantlater, on a different note, I've been trying to fool around with your test cases, but having a hard time to install my branch of buildstream10:07
tristanseems I can `pip3 install --user -e .`... oh maybe I have to setup PATH10:07
tristantlater, anyway for your branch... it should run the tests against whatever is arbitrarily buildstream master at the time the pipeline runs10:07
tristannot a fixed version of buildstream coded into a docker image10:07
tlaterI think I removed that while debugging something, but the code for that is still in the main repo.10:08
tristansame with the buildstream pipeline itself, it should run the tests from whatever is buildstream-tests master10:08
tlaterI'll copy it over in a minute10:08
tristanok no worry, just saying because it should be what we merge10:08
tristanand we should merge soon :)10:08
tlaterYeah, I'll fix that10:09
tristanjonathanmaw, while you are kicking around, you might fix some random things, like say this one which you reported: https://gitlab.com/BuildStream/buildstream/issues/3610:11
jonathanmawtristan: good call10:12
tristantlater, another heads up... it would be good to have a variable like ${bst_args} which can be shared across all scripts10:14
tristanSo any script which calls `bst foo <target>`, instead does `bst ${bst_args} foo <target>`10:15
gitlab-br-botbuildstream: Tristan Van Berkom deleted branch testing-colors10:16
gitlab-br-botpush on buildstream@testing-colors (by Tristan Van Berkom): 2 commits (last: widget.py: print_heading() now takes a styling boolean) https://gitlab.com/BuildStream/buildstream/commit/4a4b2f77c272d26bcbbb221957eaac0c9687e45c10:16
gitlab-br-botbuildstream: merge request (44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks->master: WIP: Resolve "Symlinks in the sandbox are broken by the path to the buildstream cache containing symlinks") #47 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4710:16
tlaterAh, gotcha.10:16
tlaterThough I think if we start adding functionality like that it might be worth switching to a third party tool for testing10:16
tristanlooks like the tests still lack a common include script for testing outputs, which would have been a good place to define that ?10:17
tristantlater, shell scripts should be perfectly fine, lets not complicate things10:17
tristanwe just need a common include which everything sources for doing stuff10:17
gitlab-br-botpush on buildstream@44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks (by Jonathan Maw): 1 commit (last: Fix symlink generation being confused by symlinks to the sandbox root) https://gitlab.com/BuildStream/buildstream/commit/a1e24faafca082de3d82053f8a31e9228b321d1510:18
gitlab-br-botbuildstream: merge request (44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks->master: WIP: Resolve "Symlinks in the sandbox are broken by the path to the buildstream cache containing symlinks") #47 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4710:18
tlaterOk, I just think that argument parsing will get quite hard when I start adding options.10:18
tristanTo the main script ?10:19
tlaterYeah10:19
tristannah10:19
tristantlater, take this random example: https://gitlab.com/BuildStream/jhbuild2bst/blob/master/autoconvert/autoconvert.sh10:20
tristanas template10:20
tristanjust copy paste, arg parsing is just a loop in bash like that10:20
tristanjuergbi, did something fancy with $(getopt ...) but meh10:20
tristanAdmittedly his help() function is nicer to write though10:21
tristanhttps://gitlab.com/BuildStream/buildstream/blob/master/buildstream/data/ostree-pull-ssh#L2610:22
tristanusage()10:22
tlaterI tend to use getopt, too. I guess I just thought it was messy after getting to know argparse.10:22
tristanI dont know why getopt actually10:23
tristanwhat does it give you ?10:23
tlateriirc more gnu-compliant options10:23
tristanwhat is that ?10:23
tlaterThings like being able to do ./test -hvv10:23
tlaterWhich would set a double verbose help menu or something10:24
tristanmeh10:24
tlater(In this case total overkill)10:24
tlaterx)10:24
tristanok well, whatever, this is not the kind of thing worth spending time talking about :)10:24
tlaterYeah10:24
tristantlater, https://gitlab.com/BuildStream/buildstream-tests/-/jobs/2102451810:29
tristancheck that out :)10:29
tlaterSweet, why didn't they work before?10:29
tristantlater, because you are not passing --ansi-colors to bst10:29
ssam2ah nice10:30
tristantlater, and because the option does not exist in bst master (yet) :)10:30
tlaterFair enough10:30
tristantlater, colors are only enabled if you are connected to a terminal, but as I suspected; gitlab runners support ANSI color code rendering despite not being a real terminal10:30
tristantlater, thats what I asked about setting up an argument variable in an include too, but there are other reasons10:31
tristanfor instance, we should probably also have --on-error continue10:31
tlaterThere should be environment variables that can be set through the CI scripts.10:31
tristanexport ?10:31
tristansourcing a common script will be cleaner I think10:32
tlaterThe CI scripts have a variables section that could be used for this. It might be neater for some settings - like colors for example.10:33
tristanoh this is weird10:34
tristanSorry I did not look at your scripts more closely10:34
tristanSo... you are committing the expected output for each thing individually, and comparing it with a bst checkout ?10:35
tristanSeems quite rigid10:35
tristanI guess, whatever... I was hoping for a toolbox with some of the functions you have in run-tests.py, and some sparse checks here and there using those included functions to check various things10:36
tlaterDo you have suggestions to change that? I thought it would be neatest to keep it a bit rigid.10:36
tristanIs every test going to be a checkout ?10:36
tristanI dont know10:36
tristanIs every test expected to pass ?10:36
tristanI dont know10:36
tristanMaybe the success criteria of a test is that it fails in a specific way ?10:37
tlaterOk, I understand. Should not be too hard to change that, luckily.10:38
tlaterI'm submitting a MR for the permission fix first...10:40
gitlab-br-botbuildstream: merge request (permission-fix->master: Ensure element permissions are set to euid and egid after staging) #48 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4810:45
tristantlater, ok so... I'm going to recommend that you trash your gitlab repo10:47
tristanfor any buildstream repo10:47
tristantlater, because it's going to be easier; you are a 'Developer' in the group now... which means you can push branches to buildstream directly and submit MRs from it10:47
tlaterAlright? Did this have strange merge issues again?10:47
tristanwell, your MR is not fast forwardable, which means it is not rebased against todays master10:48
tristanwhich means you are forgetting to do that... and it's admittedly annoying to do when you work with a separate repo10:48
tlaterAlright, yeah, doing that may be easier, I keep accidentally rebasing against my own master10:48
tristanActually, I suggest that to everyone here who has permission; it's just easier10:48
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 3 commits (last: widget.py: print_heading() now takes a styling boolean) https://gitlab.com/BuildStream/buildstream/commit/b9f3547ae19ecbb0566cfc08994610abe9e1c78a10:51
gitlab-br-botbuildstream: merge request (permission-fix->master: Ensure element permissions are set to euid and egid after staging) #48 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4810:53
tristantlater, and you forgot to run ./setup.py test :)10:53
tlaterYup, just did that...10:54
tristandont worry I'm merging that...10:54
tristandone10:54
tlaterI need to write a submit-merge script.10:54
gitlab-br-botbuildstream: merge request (permission-fix->master: Ensure element permissions are set to euid and egid after staging) #48 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/4810:55
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: Ensure element permissions are set to euid and egid after staging) https://gitlab.com/BuildStream/buildstream/commit/956a003c018f850151d004f6c123e7e9703f8aaf10:55
tlaterAlright, so next up I will change the scripts a little...10:55
tristantlater, So now upstream master has bst --ansi-color / --no-ansi-colors10:58
tristanI mean --ansi-colors (plural)10:58
tristanI suppose it could have just been --colors / --no-colors10:58
tlaterI guess the intention is for that to be the script default, with a flag --no-colors to disable that?10:59
tristanyeah I'll do that... --colors / --no-colors is simpler11:00
tristantlater, no11:00
tristantlater, the gitlab must specify --colors explicitly11:01
tristanthe default is to enable it when connected to the terminal11:01
tristanwhen running bst ... > file ... or bst ... | cat ... it will be disabled by default11:01
tristanjonathanmaw, why is https://gitlab.com/BuildStream/buildstream/merge_requests/47 wip ?11:03
tristanjonathanmaw, just let me know, if it works for you... merge it11:03
gitlab-br-botbuildstream: merge request (44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks->master: WIP: Resolve "Symlinks in the sandbox are broken by the path to the buildstream cache containing symlinks") #47 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4711:04
gitlab-br-botpush on buildstream@44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks (by Tristan Van Berkom): 5 commits (last: widget.py: print_heading() now takes a styling boolean) https://gitlab.com/BuildStream/buildstream/commit/b9f3547ae19ecbb0566cfc08994610abe9e1c78a11:04
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 2 commits (last: main.py: Renamed option to --colors / --no-colors) https://gitlab.com/BuildStream/buildstream/commit/f6d3f961bec54a51311df407b27a5b0b39be8f0211:05
gitlab-br-botpush on buildstream@sam/host-and-target-arch (by Sam Thursfield): 2 commits (last: Add --host-arch and --target-arch, and 'host-arches' conditional) https://gitlab.com/BuildStream/buildstream/commit/d4bc1491deec1813c2ca56a376dbab2bc4814b9c12:01
gitlab-br-botbuildstream: Sam Thursfield deleted branch sam/host-and-target-arch12:02
gitlab-br-botbuildstream: merge request (sam/host-and-target-arch->master: Add --host-arch and --target-arch, and 'host-arches' conditional) #34 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3412:02
ssam2hmm, so another thought on --host-arch and --target-arch before committing that12:04
ssam2*merging that12:04
ssam2the host-arch and target-arch vars should go in the element cache keys, not the context cache key12:04
ssam2especially because some elements can ignore target-arch, e.g. import elements12:04
ssam2i.e. it's pointless to import the x86_^4 Freedesktop SDK for times, once for each cross-bootstrap12:05
ssam2*x86_6412:05
ssam2i'll fix that up now and push another version12:05
ssam2*four times12:05
ssam2my spelling going well today12:05
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: utils.py: Fixed recent _set_deterministic_user() addition to not follow symlinks.) https://gitlab.com/BuildStream/buildstream/commit/5ac9f5de3a42c527c319950aa2a6d5ec5483d3b812:06
gitlab-br-botbuildstream: Tristan Van Berkom deleted branch testing-colors12:06
tristanssam2, I dont know that I agree or understand12:07
ssam2ok12:08
tristanssam2, the "arch" (which is now the target arch as I understand it) has forever been in the Context, does that cease to be true ?12:08
ssam2that was my idea12:08
ssam2we'll have to do that at some point anyway12:08
tristanHmmm12:08
ssam2maybe now is not the time though ...12:08
ssam2the cost of not doing this is just a bunch of extra time copying the Freedesktop SDK into the artifact cache under different IDs, even though it's the same thing12:09
ssam2which I guess only affects me :-)12:09
ssam2ok, keep it simple and just merge what I have for now12:09
tristanI would like to understand why, though12:09
tristanOk so you are building for a target12:09
tristanand you need to stage a host-arch artifact12:09
tristanI think I see12:10
ssam2yeah, it's to do with import elements12:10
ssam2which are not affected by --target-arch12:10
ssam2well, actually that's nonsense12:10
ssam2they could choose to download something different based on the target arch12:10
tristanRight12:10
tristanbut I see your meaning12:10
ssam2ok, cool12:11
ssam2this has to happen at some point once we start actually having elements with different arches in a single pipeline, but it can wait til cross sandboxes are a thing12:11
tristanI guess that is sensible12:12
tristanssam2, for some reason I'm tempted to say... maybe we can yank it entirely; but... lets not do that ?12:13
tristanWell12:13
tristanis it bad ?12:13
tristanWell yeah it is12:13
ssam2the effects are actually minor12:13
tristanbecause target arch will be important for your cross builds12:13
ssam2oh, yeah the effects of removing target-arch would be bad12:13
tristanThe thing I just noticed is, in a world without any cross building at all, we need not use the arch at all (because we'll select a different runtime at the base)12:14
tristanbut anyway yeah, lets not touch it for now12:14
tristantlater, note: https://gitlab.com/BuildStream/buildstream/commit/5ac9f5de3a42c527c319950aa2a6d5ec5483d3b812:17
tristandont worry about it though, just pointing it out :)12:17
gitlab-br-botbuildstream: merge request (44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks->master: Resolve "Symlinks in the sandbox are broken by the path to the buildstream cache containing symlinks") #47 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4712:18
gitlab-br-botbuildstream: merge request (44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks->master: Resolve "Symlinks in the sandbox are broken by the path to the buildstream cache containing symlinks") #47 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/4712:20
gitlab-br-botbuildstream: issue #44 ("Symlinks in the sandbox are broken by the path to the buildstream cache containing symlinks") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/4412:20
tristanSo I'm evaluating ostree push stuff... right now using: ostree pull-local --repo TESTMOUNT/repo ~/.cache/buildstream/artifacts/ostree gnome/base-linker-priority/900fc0bb9dee8da986ba3f14e038a76e4ef461f6c2cc6e741a6073505070029012:30
tlatertristan: Ah, sorry, I thought it did that by default.12:30
tristanthat artifact is a couple of directories, with a one line ld.so.conf.d file12:30
tristanso it should be reaaaaaly fast to upload that artifact12:30
tristanI got: [long pause] ... Scanning metadata 112:31
tristan212:31
tristan312:31
tristan412:31
tristanand now it's hanging there12:31
tristanafter 4min, I tried to strace it12:32
tristanand it got interrupted system call12:32
tristannot sure if my observations falsified the evidence12:32
tristanlets try it under strace12:32
tristanOh yeah I forgot, at the beginning it says 'receiving metadata objects'12:33
juergbijonathanmaw: my updated artifact-storage branch (also see https://gitlab.com/BuildStream/buildstream/merge_requests/45 ) now supports dynamic public data12:38
jonathanmaw\o/12:39
juergbii did some minimal testing. it might make sense for you to directly test that and let me know if you encounter any issues, instead of me testing more extensively12:39
juergbiAPI-wise you can simply modify what you get back from get_public_data('bst')12:39
gitlab-br-botbuildstream: merge request (artifact-storage->master: WIP: Artifact storage enhancements) #45 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4512:40
juergbi(inside your Element's assemble() method)12:40
tristanIt's mostly doing a shit load of this: https://bpaste.net/show/b20d387abace12:41
tristancrawling the repo objects12:41
tristanand system calls, very slowly12:41
tristanok so, I'm going to try the ostree-push method12:42
tristanwith a local archive-z2 repo12:43
tristanin which I do a pull local to get the artifact I want to push12:43
juergbisshfs would likely also not scale at all for large repositories12:43
tristanlets see12:43
tristanjuergbi, I have a feeling that the target repo (which will probably be very large), has an impact on this yes12:43
juergbias it seems to enumerate all object directories. although, that's at least not too bad latency wise12:43
tristanoh shit12:44
juergbitristan: do you want me to help with / work on artifact sharing or shall i start with dual cache keys?12:44
tristanit's not gonna work either12:45
juergbiwhy not?12:45
tristanjuergbi, ostree-push wants your user machine to be an http server, according to the second paragraph here: https://github.com/dbnicholson/ostree-push ??12:45
tristancrap12:45
tristancant we have a daemon which wakes up on an ssh trigger on the artifact server which we can push data to directly ?12:46
tristanor maybe I'm reading that README wrong12:46
tristanand it's part of a problem statement justifying the project12:46
tristanright12:46
tristanokay12:46
tristanso lets try this12:46
tristanwould be nice if it had instructions to set it up12:47
juergbiiirc, you mainly need to install ostree-receive (symlink to ostree-push) in the path of the target server12:47
juergbiand then you can use ostree-push like ostree-push-ssh12:48
juergbii mean, like the shell script12:48
tristanhmmm12:55
tristanhttps://github.com/dbnicholson/ostree-push/blob/master/ostree-push#L5812:55
tristan__main__.PushException: Unrecognized message byteorder T12:55
tristanThis does not bode well...12:55
juergbihuch?12:57
tristanostree-push --debug -v --repo test-ostree-push-repo/ artifacts@gnome7.codethink.co.uk:repo gnome/base-linker-priority/900fc0bb9dee8da986ba3f14e038a76e4ef461f6c2cc6e741a6073505070029012:57
tristanThat was the command12:57
tristancan't find capital T in any string in ostree-push python file12:58
tristanany ideas ?12:58
juergbii assume you're using the same ostree-push version on both systems12:58
tristanJust installed it on both yeah12:58
tristanlemme try uninstall and see if it gives me the same message12:59
tristanYup12:59
tristanthere's a good indication12:59
tristanSame exception when ostree-push is not installed on gnome712:59
tristanSo I assume, maybe something has to be done to the repo13:00
juergbimaybe SSH connection fails somehow?13:00
tristanOr sshd_config needs some frobnication13:00
tristanto tell it to actually run the thing there13:00
juergbiand it's interpreting ssh error output?13:00
juergbiah, of course, SFTP access is not sufficient that way13:00
tristanAh also the port13:01
tristanNo it's not ?13:01
tristancrap13:01
juergbiisn't port handled via your ~/.ssh/config?13:01
tristanoh yeah it is13:01
juergbithis needs regular SSH command execution privileges13:01
juergbiSSH can be restricted to just allow execution of ostree-receive, but that's definitely required13:02
tristanit should be I guess13:02
tristanDo you have any idea how to do it ?13:02
tristanhahaha13:02
* tristan emacs /etc/sshd_config on gnome7 and assumes he will be thoroughly lost13:03
tristanI see there is now: ForceCommand internal-sftp13:04
tristanjuergbi, I guess I can change this to s/internal-sftp/ostree-receive/ and restart the daemon ?13:04
juergbinot sure whether this would still pass command-line args13:04
juergbimaybe it doesn't need any, don't know13:05
*** tlater has left #buildstream13:05
juergbiyou could simply uncomment ForceCommand, removing the restriction for now13:05
*** tlater has joined #buildstream13:05
juergbiand lock it down later13:05
ssam2you can do clever stuff with ForceCommand, because you can access the actual command the client sent with the SSH_ORIGINAL_COMMAND environment variable13:07
tristanSame13:08
tristan'T'13:08
tristanIf I knew this kind of thing, I would probably be perusing a log file that is hiding somewhere which would tell me what happened with the connection attempt, on gnome713:09
juergbidid you restart sshd / verify that you actually have shell access now?13:09
juergbii still get13:09
juergbiThis service allows sftp connections only.13:09
tristanThis service allows sftp connections only.13:09
tristanYup13:09
tristanJust found out where this infamous 'T' is coming from !13:09
tristanI did restart the service though13:10
tristanCrap13:10
tristanOk so, I have no idea what to do with this config13:10
tristanthere is one mention of sftp13:10
tristanSubsystem sftp /usr/lib/openssh/sftp-server13:10
ssam2it could be that DavePage set up the server that is doing port forwarding to also only allow SFTP13:11
tristanssam2, not from what I can tell in the config13:13
tristanbut I need to ssh into that machine anyway13:13
tristanfrom there I am allowed to shell in13:13
gitlab-br-botbuildstream: merge request (artifact-storage->master: WIP: Artifact storage enhancements) #45 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/4513:25
tristanjuergbi, does that 'pass' in SanitizedDict really work ?13:47
tristanI guess just by virtue of it being an OrderedDict in the first place ?13:48
juergbiSanitizedDict appears to work fine13:48
juergbiis this odd coding style?13:48
tristanincidentally, I think it will make nicer `bst show` output for the more exotic options13:48
tristanjuergbi, what ? using 'pass' like that ? nah I think it's fine :)13:49
juergbiyes, ok :)13:49
tristannow I notice doing that 'integration' thing should never have been on 'element.py' in the first place (should have been in buildelement.py)13:49
tristanbut anyway, nice to remove13:50
juergbitrue, base Element shouldn't know about that13:50
*** tristan has quit IRC13:58
*** tristan has joined #buildstream14:18
*** ChanServ sets mode: +o tristan14:18
jonathanmawjuergbi: when I try to build using your "artifact-storage" branch, I end up with https://pastebin.com/vZfibxep14:34
jonathanmawI'm currently checking the ruamel documentation for what it expects14:35
juergbihm, that's odd, might this be due to a different ruamel.yaml version?14:35
juergbii have 0.14.12 here on Python 3.6.114:35
jonathanmawaha, my ruamel is 0.13.414:36
juergbido you think it would be an issue to depend on the more recent version?14:37
jonathanmawjuergbi: the version of ruamel I'm currently using is the one provided by debian jessie14:38
jonathanmawI'll have to figure out how hard it is to uninstall the old ruamel and install a newer one.14:38
juergbiah ok, i think i installed mine with pip, don't remember14:38
juergbimaybe we could make it work with both versions, i haven't checked the differences14:39
jonathanmawI suspect https://stackoverflow.com/questions/44703881/how-to-use-representer-in-older-version-version-0-11-of-ruamel-yaml would be useful14:39
jonathanmawI was googling ruamel roundtriprepresenter and it popped up, which was my first clue that version differences might be at fault14:39
juergbiah, if it's as simple as that, that should be fine14:40
tristannote, iiuc; you will need to wipe any prior artifact cache15:21
juergbiit probably makes sense to do so but the cache key generation has changed, so it will simply not use any of the previous items in case you don't wipe the cache, but it shouldn't cause any issues15:23
tristanah indeed15:24
tristanjuergbi, you probably already saw the couple comments I made, I think asides from that the branch seems pretty fine15:25
tristanpretty straight forward stuff15:25
tlatertristan: Could you tell me what the expected behaviour for this test case is? https://gitlab.com/tlater/buildstream-tests/blob/tristan/test-suite/compose-test/elements/compose-no-test.bst15:29
tlaterKeeping in mind the project.conf in the parent dir15:30
tlaterI'm trying to exclude a domain called "test", which I define in the project config15:30
tlaterBut I'm definitely doing something wrong.15:31
tristanit could be a bug15:38
tristanso what I think should happen, is the only files which should be included are A.) Captured by the 'runtime' domain  B.) Orphans (not captured by any domain)15:38
tristantlater, that's the intention anyway15:39
tlaterAs I understand it, I set it up so that the file in tests/ is neither in the runtime domain nor an orphan15:39
tlaterYet it's included15:39
tlaterI'm just not sure my syntax is correct15:39
tristanwell, your '- runtime' looks overindented, but I think it's correct15:41
tlaterHm, alright, then it's probably a bug; I'll ignore the test case for now and note it down in an issue.15:41
tlaterMR should be up as soon as I get cmake to run...15:42
tristantlater, this is not correct: https://gitlab.com/tlater/buildstream-tests/blob/tristan/test-suite/compose-test/project.conf15:42
tlaterGlobbing is wrong?15:43
tristanif you want all the files directly in /tests, it should be /tests/*15:43
tlaterWhoops, yeah, I thought I changed that15:43
tristanif you want all files *recursively* in /tests, then /tests/**15:43
tlaterShouldn't be necessary for this test, perhaps in another one to check globbing though.15:44
tristannod15:44
gitlab-br-botpush on buildstream@44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks (by Tristan Van Berkom): 1 commit (last: Fix symlink generation being confused by symlinks to the sandbox root) https://gitlab.com/BuildStream/buildstream/commit/7f365869aa377841b8111662bb48dd7b01bc614f15:47
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: Fix symlink generation being confused by symlinks to the sandbox root) https://gitlab.com/BuildStream/buildstream/commit/7f365869aa377841b8111662bb48dd7b01bc614f15:52
gitlab-br-botpush on buildstream@44-symlinks-in-the-sandbox-are-broken-by-the-path-to-the-buildstream-cache-containing-symlinks (by Jonathan Maw): 4 commits (last: main.py: Renamed option to --colors / --no-colors) https://gitlab.com/BuildStream/buildstream/commit/f6d3f961bec54a51311df407b27a5b0b39be8f0215:54
tlaterEgh, that gitlab downtime came just at the wrong time16:10
tlaterI'll get the MR up ASAP tomorrow morning, it's *actually* almost done this time.16:11
*** tlater has quit IRC16:12
jonathanmawhrm, I'm now getting "execvp sh: No such file or directory" when trying to run commands from a ScriptElement16:13
jonathanmawas far as I can tell, sh exists, (/bin/sh is a symlink to /bin/dash, which exists, in the sandbox debris). Also, I think PATH exists and includes /bin, since I hacked in a call to sandbox's _get_environment to print the environment variables before running the build16:15
ssam2that error can also mean that the dynamic loader is missing -- /lib64/ld.so.something usually16:15
jonathanmawssam2: /lib64 doesn't have anything beginning in ld.so, but there's an /etc/ld.so.conf16:17
ssam2if this is a normal x86_64 system, you almost certainly need /lib64/ld-linux-x86_64.so.2 or something like that16:19
ssam2every dynamically linked binary is loaded through that, and if it's missing then all your dynamically linked binaries fail with "Not found"16:20
ssam2which is really confusing because they don't tell you that it's ld.so that wasn't found16:20
ssam2`ldd` will tell you what the `sh` binary is linked against16:21
jonathanmawaha, lib64/ld-linux-x86-64.so.2 is a bad symlink16:25
jonathanmawta ssam216:29
*** ssam2 has quit IRC16:43
*** ssam2 has joined #buildstream16:52
*** jonathanmaw has quit IRC17:02
*** ssam2 has quit IRC17:23
*** jude has quit IRC17:51
*** jude has joined #buildstream17:52
*** tristan has quit IRC19:35
*** jude has quit IRC21:02
*** violeta has quit IRC21:05
*** tiagogomes has quit IRC21:07

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