IRC logs for #buildstream for Saturday, 2020-05-09

*** mohan43u_ is now known as mohan43u02:05
*** slaf has quit IRC02:52
*** mohan43u has quit IRC04:19
*** mohan43u has joined #buildstream04:48
*** slaf has joined #buildstream06:12
*** tristan has quit IRC06:34
*** tristan has joined #buildstream07:12
*** pointswaves has joined #buildstream07:45
*** pointswaves has quit IRC08:13
*** ChanServ sets mode: +o tristan08:22
tristangrrr08:22
tristanHow come I cannot push a new bst-1.4 branch ??08:22
tristan ! [remote rejected]     bst-1.4 -> bst-1.4 (pre-receive hook declined)08:23
tristanSeems like you need to change the protected branches setting in https://gitlab.com/BuildStream/buildstream/-/settings/repository to work around this08:32
*** aminbegood has joined #buildstream08:38
abderrahim[m]or you can create the branch from the UI08:39
abderrahim[m]without actually "pushing" things to it08:39
tristanabderrahim[m], can you ?08:40
tristanmaybe you can, I didnt dig that deep08:40
abderrahim[m]I think I did it once08:40
tristanhttps://gitlab.com/BuildStream/buildstream/-/branches has a "New branch" button indeed08:40
* tristan is starting to cook up some 1.6 related material08:41
tristanThe junction include backport: !191208:42
tristanhmmm, might have issues, I was surprised that the format tests passed on the first try08:43
*** aminbegood has quit IRC08:47
tristanhmmm, I thought we had fixed that issue with ostree gpg API09:00
tristanjjardon, fixed it in 1318bb7f99086013e24fddd20965af60e1c7f706, but half of our CI is broken ??09:02
*** benschubert has joined #buildstream09:31
tristanDid we recently change the docker images used in bst-1 CI ?09:33
benschubertnot sure, why?09:35
benschubertoh tristan since you're here and if you have time :) I'm battling with design questions around cache key tests09:36
tristanbenschubert, the bst-1 branch CI is totally borked09:36
benschubertlet me see09:37
tristanit's that repo.remote_gpg_import() back to haunt us from the dead09:37
tristanhttps://gitlab.com/BuildStream/buildstream/pipelines/14432590109:37
tristanThat is a pipeline which triggered by side effect of creating the bst-1.4 branch for example09:37
tristanfedora tests pass, and debian/ubuntu tests fail09:37
tristanWith an incorrect error message I'm presuming09:38
*** aminbegood has joined #buildstream09:38
tristanWe're getting 'TypeError: Must be number, not NoneType' from repo.remote_gpg_import(remote, stream, None, None)09:38
*** toscalix has joined #buildstream09:38
tristanBut the last 2 parameters in the underlying C API are return pointer locations09:39
benschubertso the debian 10 is new (4th of april)09:39
benschubertthe others havent moved for quite a bit and are actually not in sync with the rest :/09:40
tristanit must have passed it's CI when it was merged ?09:40
benschubertcorrect09:40
* tristan thinks it would be nice to see "What is the last passing CI run for this branch"09:40
benschubertyou can see that normally09:40
tristanOr rather, do we have some distortion in here ? if everything passed CI to land, how can it stop working on a later date ?09:41
benschubertI don't think we are pinning bst-plugins-experimental dependnecies?09:42
benschubertso maybe that?09:42
tristanThis is bst-1 though09:42
benschubertah good point09:42
*** aminbegood has quit IRC09:43
benschubertit's the bst-1 branch right? Not bst-1.409:43
tristanthey are currently exactly the same09:44
tristanI just branched bst-1.4 for the sake of https://gitlab.com/BuildStream/buildstream/-/merge_requests/191209:44
benschubertaccording to https://gitlab.com/BuildStream/buildstream/-/commit/62eee7be681c74c6b6aa679acac9d27bf1b871e9/pipelines, there hasn't been a single successful pipeline there09:45
tristanthen !1912 failed CI, for this unrelated change... looking at .gitlab-ci.yml and requirements files, there is no variables09:45
tristani.e. PyGobject is pinned and I suppose ostree is from the docker09:45
benschubertand https://gitlab.com/BuildStream/buildstream/-/merge_requests/1898 was force pushed09:45
tristanHow did that happen ?09:46
tristanI had to reach into settings just to create bst-1.4, because apparently, no stabled branches are allowed to be created, by anyone (as per protected branch rules)09:47
tristanin fact 62eee7be681c74c6b6aa679acac9d27bf1b871e909:48
tristanthere is a gitlab generated fluff commit, so it was probably not force pushed09:48
benschubertI'm not sure? seems like juergbi merged it?09:48
benschubertor am I reading all of this right?09:49
tristanunless juergbi hand crafted the fluff commit but I doubt he would have done it so perfectly09:49
benschuberthttps://gitlab.com/BuildStream/buildstream/-/merge_requests/1898 the pipeline here seems to have failed right? Though it went it09:49
tristanbenschubert, I think the confusing part is that when you look at a merge request, the pipeline linked to it changes over time09:50
benschuberthttps://gitlab.com/BuildStream/buildstream/-/merge_requests?scope=all&utf8=%E2%9C%93&state=merged&target_branch=bst-109:50
tristanit was possibly merged with a successful pipeline, but it might have been the branch tip when a nightly pipeline failed ?09:50
juergbitristan: I simply added a line to link to the MR...09:50
juergbiyes, I manually merged it as it was blocked by unrelated CI issue which we couldn't immediately track down09:51
tristanjuergbi, you disabled the setting and force pushed it with a fabricated merge commit ?09:51
tristanOk09:51
benschubertah :) that explains, thanks09:51
juergbii temporarily gave myself permission to push directly09:51
benschubertand it's the first one doing so09:51
benschubertthe previous commit was fine09:51
tristanI don't really feel comfortable doing anything at all to bst-1 sans fixing the broken CI09:52
juergbidoes the manual merge cause any issues?09:52
tristanespecially that it is a clear indication that BuildStream 1 is broken :-S09:52
juergbiwe definitely need to fix the bst-1 CI properly. however, it was also clearly not related to the branch and non-debian-based CI passes09:52
juergbiit seems debian-based CI broke without any change on our side (also no docker image change)09:53
tristanYeah, it's the gobject introspection horror show09:53
juergbibut do you know which component changed?09:53
juergbithe pip install list from the logs still look the same09:53
tristanCertainly something must have changed right ?09:53
juergbiand the same docker image versions09:53
benschuberthttps://gitlab.com/BuildStream/buildstream/-/jobs/515691731 last successful build, compared to last build https://gitlab.com/BuildStream/buildstream/-/jobs/53924040109:54
tristanyeah the requirements.txt pin PyGObject and other than that everything comes from docker09:54
benschubertsame image09:55
juergbiPyGObject==3.32.2 in both09:55
tristanthere is 0e1ede11c7a82443a49d9beba1f111f44c03287a on April 4th which does a bunch of docker image swapping09:56
tristanbut that's a while back09:56
benschuberttristan: both builds I linked are using the same imag09:56
benschubertand same pygobject09:56
benschubertone fails the other not09:56
benschubertonly difference I see there is one is using the permanent-runner the other not -_-'09:57
tristanThe docker image change is !1853 and that pipeline passed09:57
tristanbenschubert, Weird09:57
tristanhttps://gitlab.com/BuildStream/buildstream/pipelines/14433184809:59
tristanOk so that is my horrible patch ^^^^09:59
tristanWhich seems to be passing at the tip now, but it's really horrible09:59
benschubertyep... well, it works I guess?09:59
benschubertmind adding a comment above though? I would not bet we are not hitting that again in a month :)10:00
tristanIf I look at v2019.2-10-gaa5df899, the ostree commit which "fixes" the introspection data10:00
tristanI see this: https://paste.centos.org/view/131b83bd10:01
benschubertpygobject might not be doing the conversion correctly? 'None' is a python object, not a null pointer10:01
tristanThis is the commit which passes the CI: https://gitlab.com/BuildStream/buildstream/-/commit/1ba3884ec12561cf3a163cd9d52209c88b6c66b410:01
tristanWell, you'd think that pygobject would know to do the right thing with the None object when it comes to pointers10:02
benschubertthat's true10:02
tristanI have a feeling that passing 0 there is fooling pygobject to pass along a valid pointer with the value 0, which luckily means NULL10:02
tristanor NULL luckily means, rather10:02
tristanbenschubert, yeah I'll prepare an MR and add a comment10:04
benschubertthanks :)10:04
benschubertif you have a moment after that, I'd like to discuss cache key tests :)10:04
abderrahim[m]tristan: your change works because 0 can be either the out parameter (in old ostree) or the cancellable (in new ostree)10:04
tristanHonestly I was just firing in the dark when I pushed that commit, curious about whether pygobject would be "happier with a number" since that's what it asked for10:04
tristanhowever I wouldn't call this "getting to the bottom of it"10:05
tristanUhhhh10:05
tristanabderrahim[m], I thought the API didn't *actually* change, only the GIR data was clarified, no ?10:05
abderrahim[m]at least that's how I see it10:05
abderrahim[m]which means the python api did change10:05
tristanabderrahim[m], but nothing involving cancellables changed as far as I can see: https://paste.centos.org/view/131b83bd10:06
tristanallow-none (previously) became nullable and optional respectively, for the last 2 parameters10:06
abderrahim[m]going from 6 arguments (including self and the optional cancellable) to 510:07
abderrahim[m]out_imported became an out parameter10:07
abderrahim[m]so it's no longer an argument in python, but rather a return value10:07
tristanThe cancellable is still there10:07
tristanWhat !!!!10:07
tristanHoly shit10:07
tristan"became an out parameter" caused the return to change, how... crazy10:08
tristanSo that *was* an API break after all10:09
tristanI was always thinking that it was okay, because it was only clarifying or strengthening the declaration of the params10:09
tristanso older incorrect python might have a clearer warning instead of exploding unexpectedly10:10
tristanbut if pygobject is changing the whole signature that seem... horrible :-S10:10
abderrahim[m]I think at the time we said that the old ostree is quite old and no longer "in the wild"10:10
tristan*seems10:10
tristanMyeah that's not something I would be comfortable with I think10:11
abderrahim[m]do we still test against debian 9? as that would probably have the old ostree10:11
tristanI rather think we should ideally have a try/except block in there and handle every mistake our dependencies have made10:11
tristanabderrahim[m], currently CI breaks in both debian 9 and 10 with the same error10:12
tristanbut then, there was the older error10:12
juergbido you know what caused it to suddenly break?10:12
tristanNo idea10:12
tristanthat is also frustrating10:12
abderrahim[m]yup, debian 10 has ostree 2019.110:13
juergbiyes, I don't like sudden changes10:13
tristanbenschubert, appears to have found 2 pipelines with same image and same pygobject, one fails and the other passes10:13
abderrahim[m]pygobject version shouldn't affect this10:13
juergbiafaict, at some point in April or May it suddenly broke with the exact same setup10:13
juergbibut ostree version should be fixed in the Docker image10:14
juergbiincluding the .gir/.typelib10:14
tristanSo what comes to mind but is painful to say...10:14
tristanis that possibly ostree got upgraded in the remote hosting ?10:14
tristanOr the state of the ostree repo changed somehow ?10:14
tristanThat is really stretching it, that line of thinking really hurts :-S10:15
tristanright, docker image is static data, we don't change the image without an explicit commit to .gitlab-ci.yml10:15
tristanso docker image changes need to also go through CI10:15
juergbithe docker image should definitely be unmodified10:17
juergbithe only thing that makes sense to me is that something implicitly gets updated. but not sure by what10:17
tristanthere is no ostree install happening afaics10:18
abderrahim[m]there couldn't be a buildstream artifact cache, right?10:20
abderrahim[m]or ~/.cache/buildstream/sources10:21
benschubertthose are normally hold in a temp directory, which shouldget cleanedup10:21
tristanAh !!!10:26
tristangood catch10:26
tristanabderrahim[m], benschubert ... I think the "integration tests" are optimized by persisting the artifact cache in the gitlab cache right ?10:26
tristanthat might be a contributing factor ? but I'm not entirely sure...10:26
tristanThe source cache maybe ? which is relevant here because it's an ostree source in the autotools test ?10:27
benschubertah we do have the INTEGRATION_CACHE, not 100% sure anymore what it does10:27
tristanbenschubert, it's there to cache sources from CI runs10:31
abderrahim[m]that would explain it10:32
abderrahim[m]the error is in fetch, so if the source is already cached we don't get an error10:32
tristanSo when we do the integration tests, we're actually testing sandbox functionality which requires external things, but we're not actually testing the downloads10:32
tristanRight10:32
tristanSo if we zapped the caches and ran a new CI run, we would expect that... fedora would equally fail ?10:33
tristanI guess ?10:33
abderrahim[m]probably not, if fedora has the new ostree10:33
tristanlets try that anyway, gitlab caches deserve a healthy dose of zaps10:33
abderrahim[m]actually fedora should have the new ostree10:33
tristanbut both debian 9 and 10 fail, I still run debian 910:34
abderrahim[m]but the cache is reused for other tests using other oses10:34
abderrahim[m]we could make the cache be per-os, it would take more space but at least we shouldn't have such issues10:35
tristanHow do you zap the caches anyway ?10:35
tristanabderrahim[m], do you think they are reused ?10:35
abderrahim[m]i'll take a look and see how they are stored10:35
benschuberthttps://gitlab.com/BuildStream/buildstream/pipelines -> clear runner cache?10:35
tristanAh10:35
abderrahim[m]no, they aren't10:36
* tristan runs https://gitlab.com/BuildStream/buildstream/pipelines/144340670 with naked caches10:36
abderrahim[m]tristan: this one is for master?10:37
abderrahim[m]and btw, the caches are shared across branches10:38
abderrahim[m]they probably shouldn't10:38
tristanwaaaait a sec no it's not that one10:39
tristanwhy did I get that one ?10:40
tristanSo weird10:47
tristanI started a pipeline for bst-1 twice and they both chose to do master instead10:47
tristanAgain !10:48
tristangitlab is broken yay10:48
tristanabderrahim[m], I don't know if theres a way to have caches for bst-1 and master separate, because you definitely want the caches to be shared with any branch *off* of bst-1 or master10:49
abderrahim[m]worked for me https://gitlab.com/BuildStream/buildstream/pipelines/14434189710:50
tristani.e. you want to optimize merge requests, or branches which will become merge requests, targetting master/bst-1 respectively10:50
tristannice10:50
tristanI did "Run Pipeline" from the pipelines page, selected bst-1 and clicked the Run button and I kept getting master :-S10:51
* tristan is going to abandon ship for the evening, will have to revisit the introspection nightmare tomorrow :-S10:51
abderrahim[m]we can do it manually, i.e. have 1 and 2 in the cache key10:52
tristanabderrahim[m], ah that would work yeah10:52
tristanencoded into .gitlab-ci.yml I suppose10:52
abderrahim[m]yup10:52
*** pointswaves has joined #buildstream11:12
benschuberttristan: I'm trying to extract the 'cachekey' test for sources so that external plugins can also implement it. I've got https://gitlab.com/BuildStream/buildstream/-/commit/576e3da33e8b977a33e997d4ce80dc3c17d5da15 in mind. I'm not sure if we should keep it as a `file.bst, file.expected` instead and the `repo` would just return the path to a project that contains all the files the plugin wants to test?11:31
benschubertI'm also not 100% sure how we would like to handle element plugins. any thoughts?11:32
*** pointswaves has quit IRC12:33
*** aminbegood has joined #buildstream14:36
*** aminbegood has quit IRC14:45
*** phoenix has joined #buildstream15:33
tristanbenschubert, not a good time for me but; what I think we want is to not discriminate between sources and elements, and offer an API which allows external repos to make explicit calls to a generic fixture, providing expected results for each element15:42
benschubertah let's talk about it next week then? :)15:43
tristanyeah that's better, it's late here and I'm a little tipsy15:43
benschuberthaha no worries, enjoy your weekend!15:44
tristanthanks :)15:44
*** toscalix has quit IRC16:10
*** toscalix has joined #buildstream16:10
*** phoenix has quit IRC16:15
*** phoenix has joined #buildstream16:15
*** toscalix has quit IRC17:29
*** narispo has quit IRC18:55
*** phoenix has quit IRC18:55
*** narispo has joined #buildstream18:56
*** narispo has joined #buildstream18:56
*** toscalix has joined #buildstream20:05
*** narispo has quit IRC20:49
*** narispo has joined #buildstream20:49
*** toscalix has quit IRC21:42
*** narispo has quit IRC21:49
*** narispo has joined #buildstream21:49
*** narispo has quit IRC21:54
*** narispo has joined #buildstream21:54
*** aminbegood has joined #buildstream23:12
*** benschubert has quit IRC23:35

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