IRC logs for #buildstream for Tuesday, 2018-05-22

*** bochecha_ has quit IRC00:08
*** bochecha_ has joined #buildstream00:08
*** bochecha_ has quit IRC00:12
*** bochecha_ has joined #buildstream00:12
*** bochecha_ has quit IRC00:23
*** bochecha_ has joined #buildstream00:27
*** bochecha_ has quit IRC00:30
*** cs_shadow has quit IRC02:21
*** Prince781 has joined #buildstream04:53
*** mohan43u has quit IRC04:55
*** slaf has quit IRC04:55
*** pro[m] has quit IRC04:55
*** connorshea[m] has quit IRC04:55
*** oknf[m] has quit IRC04:55
*** segfault3[m] has quit IRC04:55
*** alatiera has quit IRC04:55
*** awacheux[m] has quit IRC04:55
*** rafaelff[m] has quit IRC04:55
*** asingh_[m] has quit IRC04:55
*** theawless[m] has quit IRC04:55
*** Demos[m] has quit IRC04:55
*** jjardon[m] has quit IRC04:55
*** kailueke[m] has quit IRC04:55
*** albfan[m] has quit IRC04:55
*** inigomartinez has quit IRC04:55
*** m_22[m] has quit IRC04:55
*** ptomato[m] has quit IRC04:55
*** waltervargas[m] has quit IRC04:55
*** mattiasb has quit IRC04:55
*** ssssam[m] has quit IRC04:55
*** abderrahim[m] has quit IRC04:55
*** cgmcintyre[m] has quit IRC04:55
*** ernestask[m] has quit IRC04:55
*** csoriano has quit IRC04:55
*** csoriano has joined #buildstream04:56
*** mohan43u has joined #buildstream04:57
*** Demos[m] has joined #buildstream04:57
*** slaf has joined #buildstream04:57
*** pro[m] has joined #buildstream04:57
*** connorshea[m] has joined #buildstream04:57
*** oknf[m] has joined #buildstream04:57
*** segfault3[m] has joined #buildstream04:57
*** alatiera has joined #buildstream04:57
*** awacheux[m] has joined #buildstream04:57
*** rafaelff[m] has joined #buildstream04:57
*** asingh_[m] has joined #buildstream04:57
*** theawless[m] has joined #buildstream04:57
*** jjardon[m] has joined #buildstream04:57
*** kailueke[m] has joined #buildstream04:57
*** albfan[m] has joined #buildstream04:57
*** inigomartinez has joined #buildstream04:57
*** m_22[m] has joined #buildstream04:57
*** ptomato[m] has joined #buildstream04:57
*** waltervargas[m] has joined #buildstream04:57
*** mattiasb has joined #buildstream04:57
*** ssssam[m] has joined #buildstream04:57
*** abderrahim[m] has joined #buildstream04:57
*** cgmcintyre[m] has joined #buildstream04:57
*** ernestask[m] has joined #buildstream04:57
*** csoriano has quit IRC04:57
*** csoriano has joined #buildstream04:57
*** Prince781 has quit IRC06:17
*** ernestask has joined #buildstream06:48
*** Prince781 has joined #buildstream07:20
*** bochecha_ has joined #buildstream07:33
*** toscalix has joined #buildstream07:55
finnThe email was waiting for approval by a mod on the bst mailing list07:56
finnI don't like BREWS, reminds me too much of a bruise.08:08
finn(Buildstream Remote Execution and Worker Service)08:08
ltuwho's a moderator on that list apart from tristan? jjardon?08:17
*** jonathanmaw has joined #buildstream08:18
ltuwe should get that approved asap08:18
*** Prince781 has quit IRC08:19
*** Prince781 has joined #buildstream08:21
juergbifinn: are you subscribed to the list?08:40
juergbiif you are, it should normally get through immediately08:41
juergbiotherwise, cancel the pending mail, subscribe now, and resend it08:41
finnI should be08:41
finnActually, I wonder if it's on the @codethink.com alias rather than .co.uk08:41
juergbiyes, the address must match08:41
juergbithe pending approval mail should state the reason08:42
finn"Post by non-member to a members-only list08:42
finn"08:42
juergbiyes, so you sent it from a mismatching address08:45
*** solid_black has joined #buildstream08:46
*** solid_black has quit IRC08:48
toscalixfinn: that is expected when redirecting mails from a different mailing list08:49
toscalixI shouldn't have sent it that way in first place08:50
*** bethw has joined #buildstream08:58
*** tiago has joined #buildstream09:03
gitlab-br-botbuildstream: merge request (jmac/virtual_directories->master: WIP: Abstract directory class and filesystem-backed implementation) #445 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/44509:13
*** dominic has joined #buildstream09:24
*** aday has joined #buildstream09:25
finnI've applied for my .co.uk alias on the mailing list, just waiting for approval either tristain or jjardon09:29
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42109:53
gitlab-br-botbuildstream: merge request (jmac/virtual_directories->master: WIP: Abstract directory class and filesystem-backed implementation) #445 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/44510:19
*** jonyvx has joined #buildstream10:49
*** jonyvx has left #buildstream10:49
jmacI've updated !445 (above) to move the virtual directory things into 'storage/' instead of 'sandbox/'. I'm now getting intermittent pylint errors about importing. I've been tearing my hair out trying to figure out what's going on there - can anyone else take a look?11:20
toscalixjmac: is iot possible to add to the !445 the issue it is related to?11:23
jmacCertainly, apologies for not doing that before11:23
toscalixno problem11:23
toscalixthe description is clear, thanks11:24
jmacActually, it is - https://gitlab.com/BuildStream/buildstream/issues/394 is the issue and that shows !445 as linked. But the merge request doesn't show it in the other direction.11:24
toscalixsadly gitlab has severe limitations related with the issue tracker11:25
jmacWe should list the issue number in the commit messages we use, which I will try to remember to do when I squash this11:26
toscalixI included it in the policy draft already11:26
toscalixhummm, let me improve it so it clearer11:28
jmacIt's mentioned in HACKING.rst11:29
toscalixIt is considered in the merge request template, which I hope to implement later today11:31
*** Prince781 has quit IRC11:50
*** aday has quit IRC12:21
gitlab-br-botbuildstream: issue #403 ("Stripping of whitespace from tracking refs") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/40312:36
*** tiagogomes has joined #buildstream13:04
*** tiago has quit IRC13:05
*** aday has joined #buildstream13:41
toscalixvalentindavid: it seems https://gitlab.com/BuildStream/buildstream/issues/387 will be readu  for testing tomorrow and it might fix https://gitlab.com/BuildStream/buildstream/issues/27613:43
toscalixwhich was the main task assigned yesterday to you13:43
toscalixso the recommendation is that you document your findings on #27613:44
toscalixand stop working on it13:44
toscalixso you can focus on #331 if a I recall correctly13:45
toscalixunless you have a different plan13:45
*** tiagogomes has quit IRC13:54
jennisjmac, i've got the linting passing locally13:59
jennisDid you manage to sort it out?13:59
jmacjennis: Can you try it again? It appears to be intermittent?13:59
jennisseems fine14:00
*** tiagogomes has joined #buildstream14:00
valentindtoscalix, OK.14:00
jennisjmac, do you have an init file?14:00
jmacjennis: Weird. Thanks for trying.14:00
jmacjennis: Yes, there's an __init__.py in storage, written in the same way as sandbox/__init__.py.14:01
jennisIf so, have you actually commited it, because when I cloned your directory, I had to create my own14:01
jmacOh, might have missed it14:01
jennisSo that's why it may be failing in CI14:01
jennisAlso, I suspect you'll get a warning regarding the grouping of your imports14:02
jennisAlso, I suspect you'll get a warning regarding the grouping of your imports14:03
jenniswhoops14:03
tlaterHeh, good job spotting that one jennis :)14:08
jmacI'm not sure what you mean by grouping14:09
gitlab-br-botbuildstream: merge request (jmac/virtual_directories->master: WIP: Abstract directory class and filesystem-backed implementation) #445 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/44514:10
jennisSo convention is that you group standard library imports, related third part imports and then local application/library imports14:11
jmacThat's not the reason for the failure, though14:11
jmacRight, that's a minor issue, not the problem I'm seeing14:11
jennisyes it is, but I'm surprised pylint isn't complaining about it14:11
tlaterjmac: Here's the relevant pep https://www.python.org/dev/peps/pep-0008/#imports14:12
tlaterjennis: Only recent versions of pylint support warning about it14:12
* jennis has that link open already :p14:12
tlaterjmac may be using an older one :)14:12
jennistlater, I remember getting this warnings before though, and I'm not getting them now14:12
* tlater isn't sure why he doesn't get them either14:13
tlaterI thought I was just using the debian version of pytest14:13
tlaterWhich is far too old for this14:13
ltujonathanmaw, did you have an open issue to improve the documentation for the filter element?14:24
ltuI'm struggling to find it (and starting to appreciate how useful labels gitlab will be!)14:25
ltugitlab labels*14:25
jonathanmawltu: there was https://gitlab.com/BuildStream/buildstream/issues/27814:25
gitlab-br-botbuildstream: merge request (jmac/virtual_directories->master: WIP: Abstract directory class and filesystem-backed implementation) #445 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/44514:25
*** aday has quit IRC14:27
*** jennis has left #buildstream14:29
*** jennis has joined #buildstream14:29
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42114:31
*** aday has joined #buildstream14:43
ltuthanks jonathanmaw - i think it may need re-opening?14:51
ltuwill comment on the issue14:51
jmacOK, my pylint problems have magically disappeared14:56
*** bochecha_ has quit IRC15:34
*** cs_shadow has joined #buildstream15:35
*** Prince781 has joined #buildstream15:37
gitlab-br-botbuildstream: merge request (jennis/136-clean-remote-cache->master: WIP: jennis/136 clean remote cache) #421 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/42115:39
jennisjuergbi, tristan is concerned about how regularly my code will be calling a _get_dir_size() function, that essentially walks through the cache and determines the size of every file then sums it. Now, with my current implementation, this will only be called if the user sets a cache quota. However, when a quota is set, it will be called every time OSTreeReceiver is run, so, every time bst-artifact-receive is called15:41
jennisDo you know if there will be a more optimal way to do this with CAS?15:42
jennisRather than Python15:42
jennisBecause I'm not sure it's worth trying to pursue circumventing this with OSTree (as opposed to Python) when CAS is about to land, I would like to know your thoughts?15:43
jmacIt's certainly possible but with the current implementation, I think asking for the size of a directory will be just as expensive15:44
* paulsherwood believes that CAS will be an optional dependency, not guaranteed?15:44
jennispaulsherwood, the CAS branch landing == no more ostree repo15:44
jmacIs _get_dir_size asking for the total size of the cache, or a subdirectory of it?15:44
jennisjmac, so it's similar, just a walk?15:45
jennisjmac: It calculates the size of the cache15:45
paulsherwoodjennis: so bst will have a hard dependency on CAS???15:45
jennisby walking through all files and directories15:45
jennispaulsherwood not sure what the exact name is, but yes15:45
jennisafaik15:45
* paulsherwood is surprised, to say the least15:46
jennisgrpcio is the dependency15:46
jennisdependency15:47
jmacIt's a bit tricky with CAS as there is no single root directory, so you would have to walk the underlying files and query all their sizes, AIUI15:47
jennisC&P didn't work15:47
jennishttps://pypi.python.org/pypi/grpcio15:47
jennisahh, so similar idea15:47
paulsherwooddoes this mean that bst will require to access google infrastructure?15:48
paulsherwoodor some equivalent that supports grpc?15:48
jmacNo15:48
jennispaulsherwood, I believe this was mentioned on Juergs proposal email for CAS15:48
jennisAnd everything I know about the hard dependency stems from that :p15:49
paulsherwood:)15:49
*** bochecha_ has joined #buildstream15:49
jennisSo an alternative implementation that tlater suggested, was to maintain a file, on the remote machine, which just keeps a record of the cache size15:50
jmacHopefully juergbi will be able to chip in soon but as far as I know, the google imports are just the protocols; all the implementation is still our work15:51
jennisWhich is prone to falling out of sync, however we could implement some sort of cron job that re-invokes the _get_dir_size() fn15:51
paulsherwoodok so juergbi's proposal says optional dependency on grpcio, while retaining ostree as an optional dependency. i assume that means bst will need one, or the other (not possible to use it practically without either)?15:51
*** Prince781 has quit IRC15:52
jmac"This will add grpcio as a hard dependency"15:52
* paulsherwood goes to read it again15:53
tlaterpaulsherwood: ostree will remain an optional dependency for source plugin reasons.15:53
jennisPaul, I (think I) have forwarded you the email15:54
paulsherwoodi have it15:54
paulsherwoodi literally misread it15:54
juergbiyes, the plan is to replace the ostree-based artifact cache with the grpcio/CAS-based one15:55
jennisahh ok15:55
juergbithere is no need for google infrastructure access for this15:55
paulsherwoodjuergbi: is it 'trivial' to setup a grpcio/CAS-based cache server?15:55
juergbiyes15:55
jmacEasier if anything than setting up an ostree based one15:56
*** ernestask has quit IRC15:56
juergbiclient and server side will be part of buildstream15:56
paulsherwoodjuergbi: even to the extent of being able to run the cache server on (say) a developer laptop?15:56
juergbiyes15:56
paulsherwood(this was a use-case for ybd a couple of times)15:57
paulsherwoodcool then. i'll stop worrying :-)15:57
paulsherwoodsorry for the noise15:57
juergbi:)15:57
paulsherwood:-)15:57
jmac"Content-Addressable Storage" might sound a lot more complicated than it actually is15:58
paulsherwoodheh15:59
finnQuick question, will BuildStream's REAPI/RWAPI implementation be hosted on github or gitlab?15:59
paulsherwoodso does 'Keyed Binary Artifact Server' :)15:59
jmacThe storage implementation is about 20 lines of Python, plus some autogenerated protocol source15:59
juergbiyes, it's kept very simple15:59
* paulsherwood is delighted to hear it15:59
tlatergrpc is also not a cloud interface, but a library that basically helps creating protocols :)16:00
* paulsherwood obviously had completely the wrong impression16:00
jmacAs did I before I started on this :)16:01
paulsherwoodso much to learn, so little time...16:01
juergbiit's a bit more than 20 but the MR deletes more lines than it adds if we ignore generated code16:01
jmacI hope that didn't sound like I was trivialising your work juergbi16:03
jennisSo what do we think about maintaining a file on the server where we can keep track of the cache size?16:03
jennishaha16:03
juergbi;)16:03
jmacjennis: I think that's the best way to go16:03
juergbijennis: it's definitely an option16:03
* jennis waits for a but16:04
juergbithere is no atomic compare and replace in POSIX, though, so it might need a lock file or similar, and tristan doesn'16:04
juergbit like that much16:04
juergbi(in POSIX filesystem API, I mean)16:04
tlaterFor what it's worth, I'd be looking to implement this on the client side as well if it's acceptable16:05
jmacJust a thought, what would performance be like if we made a whole new filing system on the server, maybe loopback mounted?16:05
tlaterThough perhaps as a future optimization16:05
jmacThen we could use the file system to keep track of free space16:05
tlaterjmac: That sounds like implementing yet another FUSE mount.16:06
juergbii.e., FUSE based on a single file instead of a native directory?16:06
jmacjennis: Yes16:06
jmacEr16:06
jmacjuergbi: Yes16:06
jmacNot a whole new filing system, that was a bad phrase - I meant a new ext4 fs in a file16:07
juergbithat'd be platform specific16:07
jmacYes, that's true.16:07
tlaterI wonder how python's API for creating filesystem-in-files is16:07
juergbiit would also require root16:08
juergbior userspace ext416:08
juergbiit is an interesting option but there are some caveats, so I'm not considering it for right now16:09
jmacIt just popped into my head, probably not workable16:09
*** bethw has quit IRC16:09
* tlater likes it, but probably just because he likes filesystem-in-files16:10
paulsherwoodjmac: what's the problem this would be solving?16:10
juergbiif we support both repository size and free disk space based configuration, anyone with root access could setup such a loopback without any special code in buildstream16:10
jmacpaulsherwood: It's expensive to calculate how much space is being used by the artifact cache at the moment.16:10
paulsherwoodack16:11
juergbia 'repository size' file could work pretty well, if we're ok with using a lock file or equivalent16:12
juergbiwe might anyway need it for safe purging16:12
ltufinn, that's one to run past sstriker, without a doubt16:13
* tlater figures not hosting it on gitlab would be a little odd, seeing as everything else buildstream does is in the buildstream group16:13
juergbioh, missed that question. I would go for a new gitlab group16:14
ltutlater, this isn't going to be part of the BuildStream group16:15
tlaterAh, I missed that. Is there a reason for that?16:15
tlaterJust curious :)16:15
cs_shadowIs it just me or does GitLab thinks that you are a bot as well when trying to post something? I don't think I have ever managed to create anything on GitLab without seeing "We detected potential spam in the issue. Please solve the reCAPTCHA to proceed"16:16
tlatercs_shadow: It might not like your name16:16
cs_shadow:(16:17
tlatertbf, your name specifically contains odd characters iirc?16:17
tlater"odd"16:17
cs_shadownothing too exotic - just a "-"16:17
juergbiI've never seen that message16:18
ltutlater, BuildStream will be a client of the implementation of BuilfGrid (or whatever name we decide), but the implementation of it should be totally generic16:18
* cs_shadow blames our corp proxies, nevermind16:18
* tlater has seen it, probably because he switches devices and location often16:19
jennisTristan has suggested cleaning up the remote server based on how much disk space remains on the partition (see the last paragraph of his comment here: https://gitlab.com/BuildStream/buildstream/merge_requests/421#note_72664689)16:19
tlaterjennis: That's also an option, but less user friendly16:20
tlaterWould probably work best when hosting an artifact cache with docker, since you can then partition the disk size without having to worry about other applications.16:20
tlaterBut this isn't really acceptable for the local cache, and would be a bit weird for the server cache.16:20
toscalixa new subgroup can be created. later than sooner, the current repos will also be moved to its own subgroup16:21
toscalixas they grow16:21
finnBuilfgrid - I like it16:22
jennistlater, I guess we should ask tristan about the lock file then16:22
tlaterjennis: He was pretty opposed to it when I suggested it :)16:22
*** toscalix has quit IRC16:23
ltufinn, :)16:23
jmacThe partition's free space approach requires little effort to implement so if we want something that works right now, that's probably the best way16:25
tlaterHm, I think jmac might be right here, actually16:26
tlaterWe can recommend using docker with appropriate flags in the documentation for this, if multiple applications are a consideration16:26
jmacI think the lockfile is the only reliable and 'correct' way to do it but there's also a lot of room for mistakes in it.16:27
tlaterIt certainly would drag the branch out further16:27
* juergbi has been mentioning this for a long time16:29
tlaterjennis: Think that's enough people voting in favor?16:31
jennisI was going to leave a comment for Tristan on the MR outlining thetwo options16:33
tlaterI think the old comment you mentioned earlier is enough to show his opinion :)16:33
jennisperhaps he's reconsidered how he feels about lock files16:34
jennisI will leave the comment and look into implementing the free space approach16:35
*** bethw has joined #buildstream16:43
jmacjennis: Your description of the lockfile approach on the issue wasn't quite what I had in mind16:43
jennisWhat did you have in mind?16:44
jmacI think the plan there was to record the size of each artifact at the time it was created, updated or deleted16:44
jmacand record the change in size of the whole cache in a file somewhere, which needs to be atomically updated, i.e. locked16:45
jennisyes that is what I meant16:45
jmacSo you know the size of the cache by recording everything going in or out, and you'd never need to call get_walk_dir.16:45
jennisI figured we'd need to call _get_dir_size() just once, at the beginning and then manually update when artifacts are pushed/expired from there16:45
juergbijennis: I forgot to mention, another option tristan and I discussed was to use SQLite to store the repository size, or a somewhat similar storage approach in our own code16:45
jmacRight, in that case we are thinking of the same thing16:46
jennisand then the cron job, just to make sure we're not out of sync16:46
jennisjmac I'll update the comment to make it more clear16:46
jmacjennis: Yes, OK then, we are on the same page. Sorry for the noise.16:46
jennisjuergbi, ok thanks, I have no idea what that is, but I'll update the comment16:47
jennisAssuming Tristan is going to be the one who gives an ultimatum?16:47
tlaterjennis: sqlite is a nice database that's fairly easy to depend on by software. Databases handle all the issues of concurrent access & co for you16:47
tlaterSqlite could also be used to keep a manifest of the files in the cache16:48
jmacIt seems somewhat over the top to use a relational database to store one integer, but yes, it does handle all the atomic stuff16:48
tlaterjmac: Fully agree there, but something something on the shoulders of giants ;)16:48
juergbiwe have to keep in mind that we might anyway need a lock file for safe purging16:50
tlaterjennis: One note about sqlite is that it doesn't require a daemon, which is fairly unique among databases.16:50
juergbiwhere sqlite doesn't really help16:50
tlaterjuergbi: It could if it also keeps track of the artifacts. You'd have to just first remove the note that the artifact exists from the database16:51
tlaterOh, safe purging in terms of ostree committing/pruning, right16:52
juergbithe tricky aspect is to not delete a blob that is still needed16:52
juergbiunless we want to completely move away from the filesystem-based approach, sqlite doesn't help here16:52
juergbiI don't think we want to duplicate everything16:52
tlaterYeah, that's unfortunate16:52
*** tiagogomes has quit IRC16:53
*** dominic has quit IRC16:55
*** aday has quit IRC17:06
*** aday has joined #buildstream17:07
*** Prince781 has joined #buildstream17:09
*** jonathanmaw has quit IRC17:09
*** bethw has quit IRC17:20
*** Prince781 has quit IRC17:27
*** Prince781 has joined #buildstream19:09
*** aday has quit IRC19:33
*** Prince781 has quit IRC20:58
*** Prince781 has joined #buildstream21:19
*** Prince781 has quit IRC21:54
*** bochecha_ has quit IRC22:17

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