IRC logs for #buildstream for Thursday, 2017-11-02

valentindtristan, I have found a weird bug. localedef crash when using SafeHardLinks. Sometimes mmap returns a pointer that is not properly mapped.00:14
*** tristan has quit IRC00:42
*** bochecha has joined #buildstream04:15
gitlab-br-botpush on buildstream@zip (by Mathieu Bridon): 12 commits (last: Catch attempts to compose a list) https://gitlab.com/BuildStream/buildstream/commit/8c4d8ca2b7c886690fb933428c6768c745667db705:42
gitlab-br-botbuildstream: merge request (zip->master: WIP: Add a new zip source) #131 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13105:42
gitlab-br-botpush on buildstream@zip (by Mathieu Bridon): 3 commits (last: tar: Move most of the code to a new base class) https://gitlab.com/BuildStream/buildstream/commit/e45e566ec1829e76a61961ee5b18b7d5e97238a705:43
gitlab-br-botbuildstream: merge request (zip->master: WIP: Add a new zip source) #131 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13105:43
*** bochecha has quit IRC06:14
*** tristan has joined #buildstream06:47
tristanvalentind, care to file it with the whole story ?06:49
gitlab-br-botpush on buildstream@zip (by Mathieu Bridon): 4 commits (last: tests: Reuse utils.sha256sum) https://gitlab.com/BuildStream/buildstream/commit/91df512270ea1d530df1dd76e48c622076f4db3108:25
gitlab-br-botbuildstream: merge request (zip->master: WIP: Add a new zip source) #131 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13108:25
*** persia has quit IRC09:12
*** persia has joined #buildstream09:12
*** tlater has joined #buildstream09:35
*** ssam2 has joined #buildstream09:35
valentindtristan, Yes. I will. I will try to make a simple C program that reproduce it.09:45
valentindI think it is: call open read+write+create on a non existing file. Write on it, mmap that fd, hard link the file to another name and unlink the original name.09:47
valentindThen try to access the mmaped memory.09:47
tristanouch, interesting09:48
valentindI run localedef with a prefix on /tmp for now and then move the result.09:50
tristanvalentind, fwiw - I have an idea about the correct fix - I think some of it is discussed in this ostree report: https://github.com/ostreedev/ostree/issues/92509:51
tristanvalentind, at least on our side, we should not be re-duplicating files from hardlinks, when they dont link outside of the sandbox09:52
valentindOh, I had weird bugs sometimes where tar would not work because files changed.09:52
tristanAlso, when we stage hardlinks from the artifact into the sandbox - we should preserve the state of which files were linked together, in case they are intentionally hardlinks; but fixing that depends on fixing the upstream ostree bug as well, because ostree assumes that "every identical file should be deduplicated as a hardlink"09:53
tristanwhich loses the precious information of which files were initially linked together at ostree commit time09:53
tristanso that is impossible to restore at checkout time09:53
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 2 commits (last: plugins/sources/tar.py: Ignore possible leading '.' directory.) https://gitlab.com/BuildStream/buildstream/commit/9870257fd81299c282f909d04b88d821f90b374310:03
gitlab-br-botpush on buildstream@multiple_targets (by Tristan Maat): 19 commits (last: Adjust build command to multiple targets) https://gitlab.com/BuildStream/buildstream/commit/80dbc08ba07743f78e51bb8f452c03e92ab7230310:15
tristantlater, minor nitpick, lets make the name of the arguments consistent10:19
tristantlater, before we had 'element' and 'target', I guess we started with 'target' and in some cases decided the element is not used in a 'target' context10:19
tristantlater, lets call them 'elements' across the board then ?10:20
tristanNote; this will effect absolutely nothing except for man pages and `bst --help` output10:20
tlatertristan: Yup, that's a good note.10:20
valentindtristan, open+write+mmap is enough to reproduce the bug.10:24
tristanvalentind, ok thanks, please file it at https://gitlab.com/BuildStream/buildstream/issues :)10:27
tristanI got loads going on, lets not forget, it's probably a critical bug10:27
tristanvalentind, better to mention that it effects localedef, also10:27
gitlab-br-botbuildstream: issue #143 ("mmap does not work properly on SafeHardlinks") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/14310:32
tristanvalentind, thanks !10:35
valentindI wonder how fuse deals with r+w mmaps.10:36
valentindDoes it make write calls on flush?10:36
tristanDont know, what we use is an internal fork of fusepy with a minor fix for bsd I think10:39
tristanor for something10:39
ssam2it's a fix to add ppc64 support :-)10:39
tristanvalentind, we use a higher level API of fuse which doesnt care about mmap - I assume this means do nothing and let the underlying fs handle it passthrough style10:40
tristanwhich seems appropriate, you would need to open for writing first to get an fd to mmap10:40
valentindI looked at the fuse C api, and there was no mmap.10:40
valentindApart for block device.10:41
valentindSeems related https://sourceforge.net/p/fuse/mailman/message/32694975/10:49
*** givascu has joined #buildstream11:03
*** tristan has quit IRC11:03
*** tlater has quit IRC11:13
*** tlater has joined #buildstream11:14
gitlab-br-botbuildstream: merge request (incremental-build->master: Add support for doing incremental builds) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12611:14
*** valentind has quit IRC11:23
*** adds68_ has joined #buildstream11:30
*** adds68 has quit IRC11:31
ssam2updating .expected files in the test suite when rebasing is very tedious!11:49
ssam2is there a shortcut way?11:49
gitlab-br-botpush on buildstream@multiple_targets (by Tristan Maat): 3 commits (last: main.py: Make CLI wording for elements consistent) https://gitlab.com/BuildStream/buildstream/commit/d9bc4ae4e62a1b38bdb75ea78c14c74da2772b1211:49
ssam2i guess i can script it myself11:50
tlaterssam2: There's no shortcut way yet, no11:53
ssam2for future reference: https://pastebin.com/v1c8aNu111:58
tlater\o/12:08
gitlab-br-botpush on buildstream@multiple_targets (by Tristan Maat): 10 commits (last: _loader.py: Adjust the loader to support multiple targets) https://gitlab.com/BuildStream/buildstream/commit/afb03daad6700a3f06554059fc3cb6a71e98ef6c12:10
gitlab-br-botpush on buildstream@sam/1.0-pre (by Sam Thursfield): 10 commits (last: buildelement.py: Issue #121 - Remove traces of pre-/post- commands) https://gitlab.com/BuildStream/buildstream/commit/506196de5c9cbf2aca172b1e224d24794e533fbb12:12
gitlab-br-botpush on buildstream@multiple_targets (by Tristan Maat): 4 commits (last: Stop using pipeline.target for UI widgets) https://gitlab.com/BuildStream/buildstream/commit/dd5fdea5e295a74df5baaed0eb983ff7655a088112:13
gitlab-br-botbuildstream: merge request (multiple_targets->master: Multiple targets) #135 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13512:18
gitlab-br-botpush on buildstream@multiple_targets (by Tristan Maat): 3 commits (last: main.py: Make CLI wording for elements consistent) https://gitlab.com/BuildStream/buildstream/commit/e99f1ee71111540bf1e55285e40a2774336e41b212:19
gitlab-br-botbuildstream: merge request (multiple_targets->master: Multiple targets) #135 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13512:19
* tlater ended up splitting this off the tracking changes branch, because it was actually a fairly large change12:21
tlaterIt had a lot of collateral12:21
gitlab-br-botpush on buildstream@multiple_targets (by Tristan Maat): 3 commits (last: main.py: Make CLI wording for elements consistent) https://gitlab.com/BuildStream/buildstream/commit/194603ece50bb120748a5d0d4f6ee9aa857dd45313:29
gitlab-br-botbuildstream: merge request (multiple_targets->master: Multiple targets) #135 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13513:29
gitlab-br-botpush on buildstream@tracking-changes (by Tristan Maat): 12 commits (last: _platform/linux.py: Add preflight check to detect user namespaces) https://gitlab.com/BuildStream/buildstream/commit/a9a2bcece3b90092d9260f5c46675a0e17df381d13:39
gitlab-br-botbuildstream: merge request (tracking-changes->master: WIP: Tracking changes) #119 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/11913:39
*** WSalmon has joined #buildstream14:50
tlaterssam2: Do you have a test element for the unhandled compose-list-exception you recently fixed?15:36
tlaterssam2: Gah, sorry, nevermind, I found your test cases.15:37
*** adds68__ has joined #buildstream16:00
*** adds68_ has quit IRC16:00
*** WSalmon has quit IRC16:19
ssam2the bst-external repo isn't working for me16:30
ssam2i cloned it and did `pip3 install --user .`16:30
ssam2but i still get: Error loading pipeline: No Element type registered for kind 'x86image'16:30
ssam2ah, https://gitlab.com/BuildStream/buildstream/merge_requests/12516:33
ssam2except that that branch is empty16:33
ssam2seems I need to use buildstream-external:x86-image for the `kind`16:34
* ssam2 will send a patch to update the readme at https://gitlab.com/BuildStream/defs2bst/16:35
tlaterssam2: Do you know what tristan aims for in this comment: https://gitlab.com/BuildStream/buildstream/merge_requests/129#note_44913951 ?16:36
tlaterI see no convenient way to keep a stack of provenances, is he suggesting a global variable into which every provenance is written as we parse?16:37
ssam2i didn't think on it too deeply16:40
ssam2it does seem like we lose the provenance inside the _yaml module16:40
ssam2so it can't report useful errors itself, and has to depend on the code calling into it to attach provenance info16:40
ssam2not sure if a global variable is the best way; perhaps a keyword argument to the functions would be better ?16:42
tlaterSimplest way to do that is an optional kwarg named 'provenance', but it seems like tristan had a very specific solution in mind...16:42
ssam2that may be the case; but we'll have to wait for him to explain it if so16:42
tlaterI suppose I'll do that for now and pester tristan about all the things I need to pester him about tomorrow.16:43
tlaterta though, ssam2 :)16:43
gitlab-br-botbuildstream: merge request (benchmark->master: WIP: Benchmark) #136 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/13616:48
*** tristan has joined #buildstream16:59
tristanOdd, we have https://gitlab.com/BuildStream/buildstream/-/jobs/38687858 failing and https://gitlab.com/BuildStream/buildstream/-/jobs/38698246 passing... same master tip17:03
tristanerror is expected cached, but received downloadable state17:04
ssam2tests/frontend/pull.py::test_push_pull_all FAILED17:05
tristanseems like we have a race condition when it comes to trusting ostree to report that something is cached directly after caching it ?17:05
ssam2could be17:05
gitlab-br-botbuildstream: Tristan Maat created branch 142-potentially-printing-provenance-more-than-once-in-loaderrors17:07
gitlab-br-botpush on buildstream@142-potentially-printing-provenance-more-than-once-in-loaderrors (by Tristan Maat): 1 commit (last: Issue #142: Ensure we don't append provenances twice) https://gitlab.com/BuildStream/buildstream/commit/7d8b0a95cca0391d998f5853da79d766332c393f17:08
*** givascu has quit IRC17:11
gitlab-br-botbuildstream: issue #144 ("Possible race condition - inconsistent passing test") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/14417:13
adds68__In https://buildstream.gitlab.io/buildstream/elements/autotools.html#module-elements.autotools what format are the conf-args expected as?17:16
adds68__It looks like a string in that example, but i'm not sure17:17
tristanadds68__, all "variables" are strings17:17
adds68__tristan, i'm struggling to write them out using bstDumper17:18
adds68__tristan, i first thought i could pass the conf-args as a list of strings, but those get prefixed with '-' when i dump them17:18
tristanadds68__, I cant really help much at 2am :-/17:18
* tristan is just doing a drive by really17:19
adds68__tristan, haha understood17:19
ssam2adds68__, a list of strings is not the same as a string17:19
tristanadds68__, it is only ever *one string*17:19
tristanadds68__, every variable itself is one string17:19
gitlab-br-botbuildstream: issue #145 ("Tar Source should normalize leading `.`") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/14517:19
*** tiagogomes has quit IRC17:20
*** tiagogomes has joined #buildstream17:20
tristanadds68__, one tip about bstDumper ... it's known that in some cases, serializing strings which have trailing whitespace results in ugly serialization (i.e. quoted with escape sequences looking all jumbled)17:22
tristanif you run into ugly quoted strings in the output, it may be work-aroundable by stripping trailing whitespace17:22
adds68__ssam2, aye, guess i'll just having to convert my list into a string manually17:23
adds68__tristan, cheers shall keep that in mind :)17:23
tristan" ".join(list_of_configure_flags)17:23
adds68__tristan, i need to append the commands with new line delimiters in order to make them look as expected17:24
adds68__should be trivial really17:24
tristanadds68__, also make sure that it really is conf-args you want - I suspect you probably want conf-extra instead17:27
adds68__tristan, for some reason i'm getting a '-' appended after conf-args: |17:28
tristanadds68__, i.e. conf-args is more general, we probably want to set it up on a per-project basis, conditional on whether you're building a flatpak (different prefix ?) or not17:28
adds68__tristan, https://pastebin.com/MT361PKZ17:28
adds68__Not sure why17:28
tristanwhile conf-extra is more intended for individual modules tweaking the commands17:29
tristanor for sweeping statements, it depends, just saying give that some thought17:29
tristanit might be actually best to override configure-commands by appending to it, giving more flexibility to how you use the project17:30
tristanadds68__, take a look at how we're converting JHBuild modulesets as an example, appending module specific args to the configure-commands lines allows the project to define conf-extra on a project wide basis, without screwing with individual module configure args17:31
adds68__tristan, i'm passing these commands to conf-args https://github.com/flatpak/freedesktop-sdk-images/blob/da3ab5e75220e2edbcd219a959519ad29a3a3af5/org.freedesktop.Sdk.json.in#L13217:31
adds68__tristan, will do, stuff like this which takes some though in order to make it work for multiple modules etc17:31
tristanthat is build-commands17:32
tristanI think you rather mean like this: https://github.com/flatpak/freedesktop-sdk-images/blob/da3ab5e75220e2edbcd219a959519ad29a3a3af5/org.freedesktop.Sdk.json.in#L234917:32
tristane.g. "config-opts", is the topic17:33
adds68__tristan, oh sorry wrong line linked17:33
adds68__tristan, https://github.com/flatpak/freedesktop-sdk-images/blob/da3ab5e75220e2edbcd219a959519ad29a3a3af5/org.freedesktop.Sdk.json.in#L103117:33
tristanright17:33
tristanadds68__, https://gitlab.com/BuildStream/jhbuild2bst/blob/master/jhbuild/modtypes/autotools.py#L7917:34
adds68__tristan, that looks useful! Shall take a look tomorrow, got to run, thanks for your help and get some sleep :P17:35
tristanadds68__, with jhbuild, we override configure-commands for each element, and append the module specific configure options, like: %{configure} %{conf-args} --enable-module-specific-option17:35
tristanthat lets us do project-wide tricks later with %{conf-extra}17:35
paulsherwoodtristan: when i finally get around to running buildstream, i hope i don't find it way too complicated :)17:36
paulsherwoodit seems to be growing loads of functionality17:36
paulsherwoodand 14kloc now...17:38
paulsherwoodexcluding tests17:38
tristanpaulsherwood, its a bit biggish, but since you ask; count with radon is better17:52
tristannote that for bst, ~16K SLOC yields ~8K LLOC17:52
tristanybd checkout is at 2.7K SLOC to 2.1K LLOC (i.e., almost no whitespace or comments there)17:53
tristananyway, I dont expect you to find it too complicated17:54
*** ssam2 has quit IRC18:09
*** valentind has joined #buildstream19:27
*** tristan has quit IRC21:22
*** tristan has joined #buildstream22:12
*** valentind has quit IRC23:02
*** tristan has quit IRC23:52

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