IRC logs for #buildstream for Wednesday, 2018-03-28

*** mohan43u has quit IRC00:05
*** mohan43u has joined #buildstream00:09
*** tristan has quit IRC01:18
*** tristan has joined #buildstream01:18
*** tristan has quit IRC01:56
gitlab-br-botbuildstream: merge request (jjardon/index_problems->master: Use toctree instead normal list  so correct index always appear in the left menu) #345 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/34502:27
*** tristan has joined #buildstream02:31
*** tristan has quit IRC03:14
*** tristan has joined #buildstream03:22
gitlab-br-botbuildstream: issue #322 ("Pylint should probably complain about our ostree imports in CI") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/32203:30
gitlab-br-botbuildstream: issue #314 ("buildstream should exit inmediatelly if the format is not supported") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/31403:45
*** benbrown has joined #buildstream06:42
*** valentind has joined #buildstream07:09
*** valentind has quit IRC07:34
gitlab-br-botbuildstream: merge request (146-use-minimum-python-version-3-4-for-integration-tests->master: Resolve "Use minimum python version (3.4) for integration tests") #266 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/26608:25
gitlab-br-botbuildstream: merge request (146-use-minimum-python-version-3-4-for-integration-tests->master: Resolve "Use minimum python version (3.4) for integration tests") #266 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/26608:25
tristanWasn't this fixed: https://gitlab.com/BuildStream/buildstream/issues/257 ?08:28
tristanseems still open, I think it was fixed, though08:28
* tlater never noticed an MR for it08:30
jennistristan, hi, I'm getting a bit confused about how invoking.html is generated. You've filed the issue regarding the broken output of the man pages, which are generated with click_man. And this broken output is the same broken output that is seen in invoking.html08:30
tristanjennis, I put two links there to upstream bug reports, did I put the same link twice ?08:31
jennisHowever, looking at invoking.rst I assume that it generates it with sphinx_click directly from _frontend/cli.py, is that correct?08:31
tristanYes, it's generated by the metadata encoded into python with the decorators in _frontend/cli.py08:31
tristanAs is the --help output, automated by click08:32
jennisok. So man pages with click_man, invoking.html with sphinx-click08:32
tristantlater, I dont know if there was an MR for it, but I think it must be solved... lemme just check08:32
jennisand both have the same broken output08:32
tristantlater, confirmed, it is *still* doing that; did we merge the version stuff ?08:33
tlatertristan: Version stuff is merged, but didn't touch that08:33
tristanthat at least was corrected to not overwrite the file for no reason08:33
tlaterYep, it was :)08:34
tristanI would have thought it might be fixed as a consequence of that :-/08:34
tristanoh well08:34
* tristan was sure that, being as trivial as it is, it must have been fixed by now08:34
tlaterIt being trivial is probably half the reason why it isn't fixed, just makes it feel like very low priority.08:36
tlaterI think aiden was looking at it? Probably been caught up in other things though.08:36
tristanSome times, it's the accumulation of many minor annoyances that amount to a lot of frustration...08:37
* tristan will try to make a run at fixing a lot of trivial things08:37
* tristan still also has a pending refactor of _pipeline.py and how it interacts with the frontend, regarding selections of elements... which desparately needs to be done08:38
tristanbusiness logic related to artifact caches seems to be bubbling up too far into the _pipeline.py module too08:38
tristanthis makes it harder to review and understand the code (and consequently, to contribute to it)08:38
tlatertristan: On issue #322 - pylint only does static analysis. This means that if the types are purely generated on the fly, pylint should complain about the types not existing in the first place08:51
tlaterIn either case, that issue came up after we saw pylint complaining about importing arpy - this gi import follows the exact same pattern08:51
tlaterjennis suspects it doesn't come up with a warning because we disable warnings for that class in general, but it's worth ensuring that pylint is doing what it should08:52
*** Nexus has joined #buildstream08:54
*** Nexus has joined #buildstream08:55
*** jmac has joined #buildstream08:55
gitlab-br-botbuildstream: issue #322 ("Pylint should probably complain about our ostree imports in CI") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/32208:58
tristantlater, okay, reopened.08:58
tristantlater, you dont think perhaps pylint was smart enough to detect that this, though ?08:58
tristanI suppose it needs investigation08:59
tlatertristan: We've seen it dumb enough not to, so yeah, I'd like to investigate when I get to it08:59
tristanI suspect this is done by overriding how import works, similar to pluginsbase09:00
tristanSo I wouldnt be surprised if the linter was smart enough to ignore such things09:01
*** noisecell has joined #buildstream09:02
*** bethw has joined #buildstream09:05
tristantlater, I think this is quite satisfactory at this stage, wouldnt you ? https://gitlab.com/BuildStream/buildstream/issues/17109:11
tlatertristan: It could be made a little bit faster still, I think, but yeah, it's quite good now09:12
*** aday has joined #buildstream09:14
*** aday has quit IRC09:16
*** aday has joined #buildstream09:20
gitlab-br-botbuildstream: merge request (jmac/performance-ci->master: WIP: Add benchmark to CI test and document CI.) #341 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34109:20
tristantlater, good enough to close the bug I think ?09:21
tlaterYeah, I agree09:22
tristanI think part of the perceived slowness (on our part), is that you often have to tab twice in order to see a completion09:22
*** aday has quit IRC09:22
tristanif so, and if that can be rectified; we should consider that as a separate thing09:22
* tristan closes that one09:22
gitlab-br-botbuildstream: issue #171 ("bash completions are slow") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/17109:23
*** aday has joined #buildstream09:25
laurencetlater, not urgent, but I was looking at this re workspaces - https://gitlab.com/BuildStream/buildstream/issues/209, and wondering which bits were complete, so i added check boxes.09:26
laurencehope that's okay09:26
* tlater thought that issue was solved, in fact, so this neat :)09:27
tlaterLong shot, but does you have any thoughts on the errors I'm getting in this CI? https://gitlab.com/BuildStream/buildstream/-/jobs/5989525009:29
tlaterIt seems like ruamel.yaml is incapable of serializing `set` objects in python3.409:29
tlaterWorkaround is just to use list, but there's a pretty sizable performance downgrade09:29
* tlater would preferably do something else, but can't think of anything09:30
tristantlater, I think this is completely solved by your integration test refactor, right ? https://gitlab.com/BuildStream/buildstream/issues/12609:32
tlatertristan: Yep, we only check for filenames anymore09:33
*** aday has quit IRC09:33
tristanand I think what we check depends a lot on the case, they are more focused on what they are testing09:34
gitlab-br-botbuildstream: issue #126 ("Relax integration tests a bit") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/12609:34
gitlab-br-botbuildstream: merge request (soft-arpy-dependency->master: Soften arpy dependency) #342 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34209:39
juergbitlater: is it possible that the issue is old ruamel in Debian, not Python 3.4? just a wild guess09:42
tlaterjuergbi: I'm not sure, thought we installed it through pip, but it's a good guess09:42
* tlater takes a look at the image09:42
tlatertristan: Would you mind reviewing an MR or two? They are quite small...09:42
tlaterhttps://gitlab.com/BuildStream/buildstream/merge_requests/342 and https://gitlab.com/BuildStream/buildstream/merge_requests/31909:42
juergbiit's installed with apt09:42
tlaterAh09:42
tlaterYeah, that would make sense09:43
tlaterjuergbi: That leaves the question, should we work around this or update our image to use an up-to-date ruamel?09:43
juergbiwe anyway install some packages with pip, so I'd just move that to the pip installation09:44
tlaterNexus: Do you happen to know what your to-be-merged documentation suggests? Installing ruamel.py via apt or pip?09:44
juergbiyes, we need to make sure it matches the documentation09:44
tristantlater, 342 done...09:45
Nexustlater: apt09:45
tlaterEgh, unfortunate09:46
tlaterNexus: Ta, that probably means we should work around it, or change the doc09:46
juergbithat can be changed as well. if we anyway include both apt and pip installs in the documentation, I don't see an issue moving a package between the two09:46
Nexusat this point, my docs are horribly out of date09:46
Nexusso much so that the MRs have been pulled09:47
juergbiif we currently don't need pip at all according to the documentation, then we may have to reconsider09:47
tlaterOk...09:47
Nexus(removed)09:47
Nexusprobably shouldnt use git termanology09:47
tlaterNexus: Comment on what juergbi says? I suppose we could change the doc to use pip, but it would be nice to stick to apt if we can09:47
*** aday has joined #buildstream09:48
Nexusjuergbi: i believe pip is only used to install bst09:48
juergbiright, the documentation recommends installing buildstream itself with pip, but that automatically pulls in dependencies09:49
tristantlater, 319 done, I think we just go ahead and land 319 as is09:49
juergbiso can't we just remove ruamel from the apt line?09:49
tlatertristan: ta :)09:49
* tlater will get to rewording 342 in a bit09:49
tristanjuergbi, I think there were some problems with pip installation of some of the libs on some platforms09:49
tristanhence why some things ended up recommended to install with package manager09:50
juergbiah, I thought ruamel was pure Python09:50
Nexustlater: i think we should arrange a sit down to discuss workspaces09:50
juergbianyway, we should first test whether the ruamel version is even the issue. it was just a wild guess09:50
tristanjuergbi, but I'm not sure it's a great argument, as one can still install via pip; it should be instead made to "just work"09:50
* tlater thinks using distro package manager versions is better practice anyway09:50
tristanjuergbi, ruamel.yaml is pure python, probably we need to pin the version at something specific though, those install docs predate a lot of discovery09:51
juergbiif they are up-to-date, sure..09:51
tristanI just recall that there "was problems"09:51
tlatertristan: Would you like it to "just work" for someone refusing to use pip in debian-8?09:51
juergbithe install documentation is also not for Debian 8, though, it's for Buster+, so ruamel in the distro might be just fine there09:52
tristantlater, I dont know what our distribution story is for installing buildstream on a distro, yet09:52
juergbiit's just our 3.4 testing image that has this oldstable Debian09:52
tristantlater, one thing is sure; we cannot reliably abide by the idea that "The version of a dependency which the distro 'foo' has chosen, is the one which will work for BuildStream"09:52
tristantlater, I think currently there is techniques with venv for people who want to be particularly difficult, but I removed that from docs as it was not really used, and quite verbose09:53
tlatertristan: I was just wondering if we should support the versions of dependencies that a few supported distros ship09:54
juergbihave we written down what distros we actually (want to) support? this should be useful for future determinations when to drop Python 3.4 e.g., but also for other dependency versions09:54
gitlab-br-botbuildstream: merge request (jmac/performance-ci->master: WIP: Add benchmark to CI test and document CI.) #341 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34109:54
tlaterWe've stated that we'd support debian-8 a while ago, which is the entire reason for this MR09:54
juergbiah, really? I thought Python 3.4 dependency was due to other (enterprise?) distros09:55
tristantlater, I have a feeling that ultimately, our distro targetting packaging should include a pip-using step which downloads the exact things we intend to use, and that gets bundled up into a release tarball, which gets installed in such a way that we have carried the exact versions of things we intend to use09:55
tristanjust a feeling, but it's hard to walk the line between pip and distros09:55
tristanwe need to focus on reliability more than making either fan club happy, I think09:56
juergbidefinitely09:56
tristan:)09:56
tlaterHm, shouldn't we stick to distro packages then, as those tend to be more reliable?09:56
persiaIf they are supported.09:57
juergbidepends on your definition of reliable..09:57
tristantlater, distro packages "a version of something", with a philosophy that "things" respect the rules of API compatibility, usually09:57
juergbifrom the upstream perspective, distro packages are highly unreliable09:57
juergbias they vary across the different distros and distro versions09:57
persiaMy suggestion is to assign folk to care for pypi, and each distro, working with the relvant teams to make sure there are consistent working things in those places.09:57
tristantlater, python things tend to on the other hand, completely disregard this, and say "Use version == x.y.z" rather than "Use version >= x.y"09:58
*** aday has quit IRC09:58
tlaterI suppose it makes sense to defer figuring out packaging to the actual distros, so yeah, pip makes sense09:59
tristanpersia, that implies though, that BuildStream itself must be functional against a wider variety of versions of things, and we need to keep track of those externally decided versions09:59
persiatristan: I only meant to imply that if BuildStream cares whether it works in some environment, the best way to achieve this is to have someone take care of it who is associated with a BuildStream identity.10:00
persiaLeaving things to folk not involved in the BuildStream identity is a great way to be surprised when something doesn't work because of unexpected versions.10:00
tristanpersia, however, assuming that on the distro, it is always possible to parallel install multiple versions of the same python module... we could work with upstreams to ensure they have the versions BuildStream will use10:00
persiaMany distros aren't like that.10:01
tristanAnyway, I dont think we'll solve this problem today, but it's something we should think about before 1.210:01
*** aday has joined #buildstream10:02
persiaAlso, I'm not sure what you mean by "upstream" there: for most of the distro-related interactions I have, distros are "downstream", with the rare exception of derivative distros that are incredlbly far downstream and so will sometimes use "upstream" to indicate an ancestor.10:03
*** aday has joined #buildstream10:03
tristanpersia, misnomer/typo/thingy, oops :)10:06
persiaAh, OK :)10:06
*** tristan has quit IRC10:43
tlaterjuergbi: looks like the ruamel version actually wasn't the issue10:46
tlater:|10:46
Nexusis it possible to run all tests after x? so ./setup.py --addopts "after test-foo"10:46
tlaterNexus: Define "after"10:46
Nexustlater: i know that the first 40% of tests pass and are unaffected by my work, so i don't wanna run them most of the time10:47
Nexusbut i want to the the rest10:47
tlaterNexus: Not aware of any such ting, might be something in the pytest library though10:47
Nexuskk10:48
tlaterIf you'd like to test individual/a pattern of tests there's '-k' though, which I find more useful for this sort of scenario10:48
Nexusyeah i use that a lot, but it's limited to the location of the test, and that seems to have nothing to do with the execution order :/10:48
*** aday has quit IRC10:51
Nexus... hm10:51
* Nexus seems t have a hanging test10:51
Nexustests/artifactcache/junctions.py::test_push_pull10:51
gitlab-br-botbuildstream: merge request (146-use-minimum-python-version-3-4-for-integration-tests->master: Resolve "Use minimum python version (3.4) for integration tests") #266 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/26610:52
tlaterNexus: Gah, not again :|10:52
Nexus:)10:52
gitlab-br-botbuildstream: merge request (jmac/performance-ci->master: WIP: Add benchmark to CI test and document CI.) #341 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34110:54
*** mohan43u has quit IRC11:05
gitlab-br-botbuildstream: merge request (146-use-minimum-python-version-3-4-for-integration-tests->master: Resolve "Use minimum python version (3.4) for integration tests") #266 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/26611:06
*** mohan43u has joined #buildstream11:08
gitlab-br-botbuildstream: merge request (jmac/performance-ci->master: Add benchmark to CI test and document CI.) #341 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34111:11
gitlab-br-botbuildstream: merge request (146-use-minimum-python-version-3-4-for-integration-tests->master: Resolve "Use minimum python version (3.4) for integration tests") #266 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/26611:16
tlaterjuergbi: I think the python3.4 MR is finally ready https://gitlab.com/BuildStream/buildstream/merge_requests/26611:28
tlaterI went with encoding lists in the end, as it does appear to be a python3.4 bug11:28
tlaterOr at least something not supported by ruamel atm11:28
* tlater considers writing an issue, but for now the performance shouldn't be too bad11:29
tlaterIt could just be better11:29
tlaterHrm, I need a feature from 2017.11 for my artifact cache expiry branch11:43
tlaterUnless there is a better way to list local refs, would it be ok to bump the ostree version to ^?11:43
*** aday has joined #buildstream11:54
*** aday has quit IRC11:55
*** aday has joined #buildstream11:55
jennisJust a sanity check here: When the build log says "Caching Artifact " does this imply local? And when it says "Pushing Artifact" + "Preparing compressed archive" + "Sending Artifact", that's all remote cache?11:59
tlaterjennis: Yep12:00
*** aday has quit IRC12:05
gitlab-br-botbuildstream: merge request (jennis/ensure_consistent_build_log_output->master: element.py: Make artifact lowercase in time_activity()) #346 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34612:09
jennis^^ tlater do you mind reviewing this, just a very tiny bug bear that I wanted to quickly fixed12:12
jennisI've tested a build with that branch and it does as expected12:12
tlaterjennis: Sure, give me a minute12:12
jennisNo rush12:13
* Nexus personally prefers the capital 'A'12:13
jennisNexus, it's not consistent with all other build output though12:13
tlaterYeah, most build output has all caps, sticking with that seems best12:13
* Nexus is confused12:14
gitlab-br-botbuildstream: issue #146 ("Use minimum python version (3.4) for integration tests") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/14612:14
gitlab-br-botbuildstream: merge request (146-use-minimum-python-version-3-4-for-integration-tests->master: Resolve "Use minimum python version (3.4) for integration tests") #266 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/26612:14
jennistlater, huh?12:14
jennishttps://paste.baserock.org/alewahekal12:14
tlater:O ty juergbi!12:14
tlaterjennis, Nexus: Sorry, that's what I meant12:15
tlaterStupid fingers being faster than my brain12:15
jennishehe12:15
NexusWHO ARE YOU AGREEING WITH!?!?12:15
jennisNexus, look at this: https://paste.baserock.org/alewahekal12:15
jennisYou'll see what I mean about the build output12:16
jennisIt's always first word capitalised, the rest lowercase12:16
tlaterNexus: Agreeing with jennis12:16
Nexusok, thats fine12:16
Nexusjennis: i know, i'm just saying i prefer capitals on all12:16
tlaterjennis: On that note, no issues with the MR, but I can't merge it x)12:16
Nexusi.e. would change all to be Pascal Case12:17
tlaterjennis: Did you check if any tests rely on that text being uppercase?12:31
tlaterLooks like there's one that's failing12:31
Nexusthat sounds like a horrific test12:33
* tlater can't see why else a test would fail here, just guessing12:34
tlaterI restarted the pipeline expecting this not to be the case12:34
Nexustests/frontend/push.py::test_push_after_pull12:40
Nexusfailed in that CI12:40
* Nexus wonders why jennis's changes broke the test12:43
Nexusjennis: try rebasing?12:44
*** aday has joined #buildstream12:49
*** mohan43u has quit IRC13:10
jennismhmm I didn't will look at that now tlater13:10
*** mohan43u has joined #buildstream13:13
jennisHow long do hastebin links last?13:14
jennis30 days ^^13:14
* tlater wonders why ostree lists a ref but then refuses to remove it :|13:15
gitlab-br-botbuildstream: merge request (jennis/ensure_consistent_build_log_output->master: element.py: Make artifact lowercase in time_activity()) #346 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34613:18
jennistlater, any thoughts on this13:23
jennisI can't see anything related to "artifact" or "Artifact" in that test13:24
tlaterjennis: It's probably in the assert_pushed_elements helper13:26
tlaterWhich probably parses the buildstream output to see which elements were pushed13:27
jennisfound it lol13:31
jennistlater, ok it passes the push.py test now. I'll just make sure it passes all of the other tests then push13:41
Nexusjs, it now being BST in england is messing up all of my email filters with buildstream...13:42
tlaterI like how they named a time zone after us.13:43
jennishaha yeah i'm getting incorrect timestamps on my remote server13:43
* Nexus politely requests we rename bst to bs13:46
* Nexus doesnt care which one13:46
jennisutc?13:47
Nexusbut noone uses it13:48
gitlab-br-botbuildstream: merge request (jennis/ensure_consistent_build_log_output->master: element.py: Make artifact lowercase in time_activity()) #346 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34613:50
jennisCould someone give that a quick review ^^, just case changes.13:52
jennisPlease (:13:52
jmacLooking13:52
jmacOk, looks good to me13:53
*** noisecell has quit IRC13:59
*** Prince781 has joined #buildstream14:02
tlaterCould I enlist someone to take a look at an ostree problem with me?14:05
tlaterI'm really struggling to remove a commit that I'm certain exists in the cache14:05
tlaterOstree happily lists it, but tells me it doesn't exist when I ask it to remove it :(14:06
gitlab-br-botbuildstream: merge request (135-expire-artifacts-in-local-cache->master: WIP: Resolve "Expire artifacts in local cache") #347 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34714:06
* tlater creates an MR to point to tests14:06
Nexustlater: i can help if you think i can14:12
tlaterFeel free to, I'm at a loss: https://gitlab.com/BuildStream/buildstream/-/jobs/5997524814:13
tlaterShould take a bit to finish, but then you can see the exceptions...14:13
jennisawwwh tlater, its definitely not as simple as a rm -rf14:14
jennishttps://paste.baserock.org/foxubajujo14:14
jennisIt really doesn't like it... It kills my docker container14:14
Nexus"simaple_bst_project"14:14
Nexustypo maybe?14:15
tlaterjennis: No idea what's wrong14:15
tlater*But* the docker container exiting probably means that the daemon crashes14:15
tlaterSo check your docker container output for debugging info14:15
*** noisecell has joined #buildstream14:15
tlaterDocker also keeps handy logs for you if you need them14:16
jennislooooool14:16
tlateri.e. `docker log *`14:16
Nexusis the type really not an issue?14:16
jenniswell spotted Nexus14:16
Nexuswoo \o/14:16
* tlater finds it amusing that Nexus mistypes typo14:16
NexusSHUT UP14:16
NexusNOONE SAW14:16
jennishahaha14:16
Nexuswhy14:17
Nexusdo14:17
Nexusthe14:17
Nexustests14:17
Nexustake14:17
Nexusso14:17
Nexuslong‽14:17
jennislinting + pytest + benchmarks14:19
tlaterHmm14:19
* tlater discovered something interesting14:19
Nexusis it 42?14:20
Nexusbecause i already knew that14:20
* tlater might have been feeding this thing the wrong key this entire time14:21
Nexus...14:21
tlaterOh, nevermind, I haven't14:21
Nexus...14:21
Nexuswhy is pylint complaining about my empty except?14:22
Nexus"bare-except"14:22
tlaterNexus: You could capture system exceptions with that14:22
tlaterIt's bad, don't do it14:23
tlaterUnless you have a *very* good reason to14:23
Nexusi do have a *very* good reason to14:23
tlaterYou're too lazy to figure out the exact exception you'd like to catch?14:23
Nexusi'm planning on removing the line as soon as this suite passes and therefore am too lazy to figure out the exact exception you'd like to catch if i'm going to delete the work anyway14:24
Nexuss/you'd/i'd/14:24
tlater;p14:24
Nexus:)14:24
jennisuhhhhhh14:33
jennisI've managed a stop gap remotely14:34
Nexusgj?14:34
jennison the remote*14:34
jennisIt's just very specific... So not sure if it's a good idea14:34
jennisWould like to discuss14:34
Nexusthen by all means do so14:35
* jennis will type it up elsewhere then C&P14:35
jennis1 min14:35
Nexuskk14:35
jennisSo basically the remote cache has the directory /data/artifacts14:40
Nexuswoo ci failed14:40
jennisThis contains: config  extensions  objects  refs  state  summary  tmp14:40
jennisWhere config and summary are files, the rest are directories.14:40
jennisSo I tried a `rm -rf /data/artifacts/*` then tried to build something that pushes to this. I got complains about there not being a config file.14:40
jennisLuckily, the only files in a "fresh" remote cache are config summary, so I decided to remove all files (EXCEPT config and summary) whilst maintaining the directory structure with: `find /data/artifacts/*/ ! -type d -exec rm '{}' \;`14:40
jennisNow, when I re-build, it pushes to a somewhat "fresh" remote cache again.14:40
jennisThe only problem is, I'm not sure whether specific projects will require files in some of the other directories to remain undeleted...?14:40
Nexuscan't you just put summary and config one dir up or put everything else in a subdir?14:42
jennis / does this seem like a good temporary solution14:42
Nexusthat seems neater to me14:42
jennisWhat and use a simpler command?14:42
jennisNo because I need to retain subdirectory structure14:42
tlaterjennis: ostree refs --delete14:42
jennisbecause there are subdirs in refs/ that NEED to be there14:42
tlater^ Or rather ostree --repo=/data/artifacts refs --delete14:43
tlaterThat should remove every ref in the repo14:43
jennis:|14:43
tlaterOf course, if you can, access that via pygobject14:43
tlaterAnd then you're already half done deleting individual artifacts :)14:43
jennisSo don't use: `find /data/artifacts/*/ ! -type d -exec rm '{}' \;`14:43
tlaterjennis: It's a cute hack, and probably works14:44
tlaterBut the above uses ostree, so it's likely safer14:44
tlaterYou might have to `ostree prune` after14:44
jennis<tlater> Of course, if you can, access that via pygobject14:44
jennisThis is something you're unsure of, yes?14:44
tlaterI know you can14:45
tlaterBut I'm not sure you'd like to go down that rabbit hole just yet, otherwise you wouldn't be trying to rm -rf, no?14:45
tlaterjennis: Referenceis here: https://lazka.github.io/pgi-docs/#OSTree-1.014:45
jennisok thanks tlater14:46
Nexustlater: did you modify the yaml constructor?14:46
tlaterNexus: Which one, when?14:46
jennisI'm going to try and use the commands you suggested instead of my hack and see if that works14:46
tlaterAh, my CI finished14:47
tlaterNexus: I think that stuff is unrelated and due to the python3.4 switch T.T14:47
* tlater tries to find the error he's looking at 14:47
tlaterWell, nice, it doesn't show up in debian-814:48
Nexusyay?14:48
* tlater will have to make it debian compatible first, then14:48
Nexusyay more waiting14:48
tlaterNexus: Probably will do once I know what's causing this14:49
Nexuspastebin me the error?14:49
tlaterYeah, I can do that, hang14:49
* Nexus hangs14:49
tlaterNexus: https://hastebin.com/raw/iyofupobix14:54
* tlater wonders where jennis dug up hastebin14:54
* tlater enjoys hastebin14:54
Nexusok14:55
Nexusso it's failing to delete the sha14:55
Nexusdoes '7075411a7610d309fe99ee03e7022765648be3dd7933f6c7585e6c014daefa8e' definitely exist?14:56
tlaterYep14:56
tlaterAt least, ostree lists it when I ask it what refs exist14:56
Nexusrun it with -s?14:56
* tlater doesn't really see the point, as the entire log is in the output already14:57
tlaterEven the entire test is in the output14:57
jennistlater, I saw paulsherwood use it14:57
Nexusi was hoping for more info on what happened when it TRIED to delete the sah14:58
Nexussha*14:58
jennisIt's everything you want in a pastebin14:58
tlaterNexus: Well, the reason there's no massive error is because I catch it for extra context14:58
Nexusmyy first thought ws permissions14:58
tlaterI can remove that catch14:58
Nexusmy second thought was that i can't type14:59
tlaterjennis: It doesn't seem to do much beyond markdown syntax, but I've not read much into it14:59
tlaterFor the most part it seems really cool14:59
tlaterMight start hosting one myself14:59
tlaterNexus: This is without my error-catching: https://hastebin.com/ayovotocan.md15:02
NexusDeleting object 37c245160bf8187fad8196a3838566549056e7a40114ea807066a21fad4a6e70.commit: unlinkat(37/c245160bf8187fad8196a3838566549056e7a40114ea807066a21fad4a6e70.commit): No such file or directory (1)15:03
tlaterYep15:03
Nexuslooks like OSTree.ObjectType.COMMIT isn't a dir where it should be?15:03
tlaterNexus: Note this isn't os.rmtree or anything like that15:04
tlaterCalling OSTree.Repo.delete_object()15:04
tlaterWhich we give a ref that ostree itself gave us15:04
juergbitlater: might it be a dangling ref?15:04
juergbii.e., the commit is listed in refs but the commit object is not actually in the repo?15:05
tlaterjuergbi: The artifact for that commit is built in the invocation just before this one15:05
tlaterHow would I end up with a dangling ref in that case?15:05
juergbithat shouldn't be the case but have you made sure that's not the case?15:06
tlaterHrm, not sure how I would. I have quadruple checked that I'm getting the refs I'm expecting15:07
juergbii.e., have you checked whether the repo is hosed for some reason before the delete or whether the delete itself is behaving incorrectly?15:07
tlaterI could try to prune and then list the refs before I delete15:07
juergbitlater: can you run ostree fsck before the delete?15:07
tlaterOh, that exists?15:07
* tlater will try15:07
tlaterta jeu15:07
tlaterjuergbi:15:08
tlaterAlso ta Nexus, of course :)15:09
* Nexus didn't help at all15:09
* Nexus is still reading the OSTree.Repo.delete_object() docs15:10
Nexusis something failing to mount?15:13
* tlater doesn't think so, as the build succeeds15:14
tlaterjuergbi: fsck fails, though I really don't understand why: https://hastebin.com/avitalusif.sql15:15
Nexus16:13 < Nexus> is something failing to mount?15:15
Nexusunmounting itself afterwards?15:15
juergbitlater: so the commit object is missing. why that is the case I can't say without more information15:15
tlaterHm, well, at least it's a lead I suppose15:16
juergbiis this happening in pushed code?15:16
Nexuscheck just before the build finished to see if the commit object is there, and then just after15:17
Nexussee when (if at all) it stops existing15:17
juergbi+115:17
tlaterjuergbi: Yep, though the CI fails for unrelated errors: https://gitlab.com/BuildStream/buildstream/merge_requests/34715:17
* tlater doesn't think there will be anything obvious to see though, still very WIP15:18
juergbitlater: _ostree.remove removes the commit without removing the ref15:18
juergbii.e., it makes the ref dangling15:19
tlaterjuergbi: I think ostree.prune gets rid of it after?15:19
juergbithat's the other way round15:19
juergbiif you delete the ref, prune will delete the commit object15:19
tlaterAh!15:19
tlaterNonetheless, the method fails the first time it's called15:19
tlaterBut I suppose let's see if I figure out how to use prune correctly15:20
juergbibtw: I don't expect prune to be very cheap, so if you're deleting multiple refs, you probably want to first delete all these refs and then call prune() once15:20
juergbidefinitely sounds odd it would fail the first time15:21
juergbidoes delete_object fail or prune?15:21
tlaterdelete_object does15:21
tlaterHmm... I wonder if all this time I was looking for `prune_static_deltas`15:22
tlaterIt doesn't even prune anything T.T15:25
Nexus:p gj15:29
juergbiwe don't use static-deltas, afaik15:38
juergbiso there is nothing to prune15:38
tlaterjuergbi: I wasn't sure what static-deltas were, but clearly that's not useful15:40
tlaterIt looks like it wasn't the first iteration of removing though15:40
juergbithat would make sense15:40
tlaterMy safety margin wasn't large enough, so it started removing artifacts sooner than I thought it did15:40
tlaterrepo.set_ref_immediate(None, ref, None) solves everything \o/15:41
tlatertyvm for the assistance juergbi :)15:41
tlaterAlso Nexus ;)15:41
juergbiyw15:41
gitlab-br-botbuildstream: merge request (135-expire-artifacts-in-local-cache->master: WIP: Resolve "Expire artifacts in local cache") #347 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34715:49
*** bethw has quit IRC15:59
*** Prince781 has quit IRC16:00
*** Prince781 has joined #buildstream16:02
*** Prince781 has quit IRC16:11
*** bethw has joined #buildstream16:12
*** aday has quit IRC16:15
gitlab-br-botbuildstream: merge request (jennis/ensure_consistent_build_log_output->master: element.py: Make artifact lowercase in time_activity()) #346 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34616:29
*** mohan43u has quit IRC16:31
jennisjuergbi, if you have a second !346 should be mergeable. No worries if not :)16:31
jennis^^ just a bug-bear fix16:31
*** mohan43u has joined #buildstream16:32
juergbijennis: fyi, in general the goal is for tests to pass for every commit. we're not completely strict about this but e.g. here we should squash the two commits16:36
jennisOh I see, I will do that now16:40
jennista juergbi16:40
*** aday has joined #buildstream16:41
gitlab-br-botbuildstream: merge request (jennis/ensure_consistent_build_log_output->master: element.py: Make artifact lowercase in time_activity()) #346 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/34616:43
jennisthere you go juergbi :)16:43
*** mohan43u has quit IRC16:47
*** mohan43u has joined #buildstream16:48
jennistlater, still there?16:54
tlaterKindq16:55
tlater*kinda16:55
jennishehe16:56
tlaterWell, probably not anymore in 5 mins16:56
jennisSo ostree refs give me my list of refs16:56
jennisnow ostree refs --delete <something_from_that_list> works16:56
gitlab-br-botbuildstream: merge request (jennis/ensure_consistent_build_log_output->master: element.py: Make artifact lowercase in time_activity()) #346 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/34616:57
jennisAny ideas on how to remove all of them?16:57
jennisA simple * doesn't do the trick16:57
jennisand I'm failing to find examples online16:57
tlaterI think giving *no* argument should do it16:57
tlater`ostree refs --delete`16:57
tlaterOtherwise, sorry, not sure :(16:57
jennisdoesn't work either :/16:57
tlaterThe gobject interface certainly can do it16:58
jennis[root@c053b21a625b artifacts]# ostree refs --delete16:58
jenniserror: At least one PREFIX is required when deleting refs16:58
tlaterAww16:58
tlaterMight have to loop manually16:58
jennisYeah that's an option I guess17:01
jmacI never found a good way of doing this from the command line17:02
*** bethw has quit IRC17:04
*** tristan has joined #buildstream17:29
*** brlogger has joined #buildstream18:36
*** xjuan has joined #buildstream18:48
*** mohan43u has quit IRC19:05
*** mohan43u has joined #buildstream19:09
*** tristan has quit IRC19:14
*** Prince781 has joined #buildstream20:38
*** xjuan has quit IRC21:50
*** mohan43u has quit IRC22:07
*** mohan43u has joined #buildstream22:10
*** aday has quit IRC22:26
*** Prince781 has quit IRC23:01

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