IRC logs for #buildstream for Tuesday, 2018-06-26

*** Prince781 has quit IRC00:13
*** Prince781 has joined #buildstream00:19
*** tristan has quit IRC01:28
*** Prince781 has quit IRC01:37
albfan[m]Do we have buildstream account in twitter already?06:05
albfan[m]should I include https://gitlab.com/albfan/buildstream-flatpak-gtksourceview in doc examples. it is another flatpak deps + git project06:07
*** bochecha_ has joined #buildstream06:46
*** coldtom has joined #buildstream07:51
*** Phil has joined #buildstream08:17
*** bethw has joined #buildstream08:27
gitlab-br-botbuildstream: merge request (jmac/cas_virtual_directory->jmac/googlecas_and_virtual_directories_2: WIP: CAS-backed virtual directory implementation) #481 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/48108:29
*** abderrahim[m] has quit IRC08:39
*** krichter[m] has quit IRC08:39
*** albfan[m] has quit IRC08:39
*** m_22[m] has quit IRC08:39
*** theawless[m] has quit IRC08:39
*** asingh_[m] has quit IRC08:39
*** rafaelff[m] has quit IRC08:39
*** ernestask[m] has quit IRC08:39
*** alatiera has quit IRC08:39
*** inigomartinez has quit IRC08:39
*** kailueke[m] has quit IRC08:39
*** mattiasb has quit IRC08:39
*** ptomato[m] has quit IRC08:39
*** jjardon[m] has quit IRC08:39
*** waltervargas[m] has quit IRC08:39
*** pro[m] has quit IRC08:39
*** cgmcintyre[m] has quit IRC08:39
*** oknf[m] has quit IRC08:39
*** segfault3[m] has quit IRC08:39
*** theawless[m] has joined #buildstream08:49
*** bochecha_ has quit IRC08:54
*** jonathanmaw has joined #buildstream09:08
*** aday has joined #buildstream09:14
*** aday has quit IRC09:15
*** dominic has joined #buildstream09:16
*** aday has joined #buildstream09:26
*** Phil has quit IRC09:42
*** Phil has joined #buildstream09:43
*** jonathanmaw has quit IRC09:44
*** jonathanmaw has joined #buildstream10:00
*** Phil has quit IRC10:22
*** Phil has joined #buildstream10:23
*** bochecha has joined #buildstream10:30
*** rafaelff[m] has joined #buildstream12:40
*** kailueke[m] has joined #buildstream12:40
*** alatiera has joined #buildstream12:40
*** connorshea[m] has joined #buildstream12:40
*** mattiasb has joined #buildstream12:40
*** abderrahim[m] has joined #buildstream12:40
*** asingh_[m] has joined #buildstream12:40
*** ssssam[m] has joined #buildstream12:40
*** albfan[m] has joined #buildstream12:40
*** waltervargas[m] has joined #buildstream12:40
*** oknf[m] has joined #buildstream12:40
*** Guest29107 has joined #buildstream12:40
*** ptomato[m] has joined #buildstream12:40
*** cgmcintyre[m] has joined #buildstream12:40
*** inigomartinez has joined #buildstream12:40
*** jjardon[m] has joined #buildstream12:40
*** segfault3[m] has joined #buildstream12:40
*** m_22[m] has joined #buildstream12:40
*** Demos[m] has joined #buildstream12:40
*** aday has quit IRC13:08
jonathanmawHi valentind, I've been working on implementing source mirroring with API changes instead of weird hacks, and I'm mostly happy with it now (branch at https://gitlab.com/BuildStream/buildstream/tree/jonathan/mirror-client-sourcedownloader)13:49
jonathanmawthough I'm having a thorny issue with versioning13:49
jonathanmawAIUI, buildstream's versioning logic is based around checking whether buildstream is too old for a given plugin, rather than whether a plugin is too old for buildstream13:50
laurencereminder: we have the monthly buildstream irc team meeting in 10 minutes time, over in #buildstream-meetings13:50
jonathanmawmy specific issue is calling the likes of Source.fetch(), where I've added an alias_override arg13:51
laurence(don't forget the s on the end of meetings :))13:51
jonathanmawBut I'm struggling to figure out the correct way to check whether a source plugin is too old to support the new function signature13:51
tlaterHm, I wonder if we could do a reverse lookup on `bst workspace close` if the user attempts to close a directory13:53
tlaterPersonally, I keep trying to close the directory because conceptually that's the workspace13:53
jmacI've written a small tool to inspect & extract hashes from CAS which might be useful to people working on it: https://gitlab.com/jmacarthur/cas-inspector13:54
jmac(Might post to the list later too)13:54
jonathanmawvalentind: at worst, I suppose I can catch a TypeError for the sources not supporting that function signature, but I'll keep looking for a nicer way13:57
jonathanmaw:/ Plugin.BST_FORMAT_VERSION is almost what I'm looking for, but that is for whether the config field has a new format, not an API change in the plugin13:58
jonathanmawhrm, I suppose if I add Source.BST_API_VERSION = 0, and then set all the source plugins' versions to 1, I can determine that any source with BST_API_VERSION of 0 hasn't been changed14:03
cs_shadowgitlab is throwing 500 again :(14:16
paulsherwoodthey're moving to gcloud14:16
cs_shadowlike right now?14:16
paulsherwoodunclear14:16
paulsherwoodhttps://about.gitlab.com/2018/06/25/moving-to-gcp/14:17
* paulsherwood asked (perhaps unfairly) if this is related to the MS github deal14:17
cs_shadowthanks for the link.14:19
cs_shadowIt says "The failover is currently scheduled for Saturday, July 28, 2018." so I guess this is just _normal_ GitLab14:19
cs_shadowit's mildly amusing how about.gitlab.com is perfectly fine but status.gitlab.com is throwing 50214:19
paulsherwoodcs_shadow: to be fair they've seen a significant uptick in usage since the ms announcement, which seems to have caught them somewhat14:20
cs_shadowthat's fair. Perhaps this is all part of an evil plan by GitHub to drown GitLab in their own success ;)14:22
paulsherwoodlol14:23
jonathanmawjuergbi: Can you give input on my versioning conundrum?14:40
valentindlaurence, I am sorry I missed the meeting. I had something I did not expect.14:41
valentindlaurence, Is the transcript posted somewhere?14:42
laurencevalentind, dw, i think that we will have enough discussion f2f next week at GUADEC14:45
valentindjonathanmaw, I will have a look at the branch later today.14:46
jonathanmawthanks valentind14:47
*** Demos[m] has quit IRC14:55
*** rafaelff[m] has quit IRC14:55
*** mattiasb has quit IRC14:55
*** m_22[m] has quit IRC14:55
*** connorshea[m] has quit IRC14:55
*** ptomato[m] has quit IRC14:55
*** albfan[m] has quit IRC14:55
*** theawless[m] has quit IRC14:55
*** waltervargas[m] has quit IRC14:55
*** abderrahim[m] has quit IRC14:55
*** inigomartinez has quit IRC14:55
*** kailueke[m] has quit IRC14:55
*** Guest29107 has quit IRC14:55
*** alatiera has quit IRC14:55
*** oknf[m] has quit IRC14:55
*** ssssam[m] has quit IRC14:55
*** jjardon[m] has quit IRC14:55
*** segfault3[m] has quit IRC14:55
*** asingh_[m] has quit IRC14:55
*** cgmcintyre[m] has quit IRC14:55
*** coldtom has quit IRC14:58
*** awacheux[m] has joined #buildstream15:04
*** coldtom has joined #buildstream15:06
*** tristan has joined #buildstream15:12
*** coldtom has quit IRC15:17
*** coldtom has joined #buildstream15:17
valentindtristan, To be able to detect if a "source" in from an include in a junction, do you think it is fine to keep track of the original project in the Provenance? Or there is smarter than that.15:28
tristanvalentind, I think that is a novel idea15:45
valentindI am not sure it all make sense.15:46
valentindBut we need it.15:46
tristanWell, the provenance is supposed to tell you where each final resolved bit of loaded YAML originally came from15:46
tristanand it's used both for serializing back at track time (without project.refs in play), and for error messages15:47
tristanI mean, it seems a decent place15:47
tristan*however*15:47
tristanvalentind, I have to admit that it sounds quite memory intensive now that I think of it15:47
tristanit would be nicer if we had a shared object for provenance objects to hold the filename and project portions15:48
valentindOK. I was going to propose that.15:49
valentindI will try that.15:49
tristanI have to say that, I suspect there still remains some fringe bugs where provenance is not properly resolved on a node15:49
tristanhowever this has never been known to happen with a source15:49
* tristan thinks that _yaml.composite_node() is imperfect when it comes to crawling lists15:50
laurenceseems that my emails aren't getting through to the buildstream mailing list16:10
laurencenot sure where exactly the issue is, but i'm not having any other email issues atm16:11
jmacCan someone remind me where juerg's CAS Fuse work is?16:12
valentindtristan, it seems tracking errors are translated into warnings. Should we keep this behavior for inline tracking with fragment from junctions?16:18
jmac^ found it16:20
valentindhttps://gitlab.com/BuildStream/buildstream/blob/master/buildstream/_scheduler/trackqueue.py#L6516:20
*** Prince781 has joined #buildstream16:26
*** coldtom has quit IRC16:37
tristanvalentind, right, the system errors we can get from writing the file happen at an inopportune place16:37
*** bethw has quit IRC16:37
tristanvalentind, they need to become an error, but possibly from a high priority timeout16:38
tristaniirc16:38
tristanvalentind, yes I think that falls under the same category16:38
tristanvalentind, and we explicitly forbid includes in project.refs / junction.refs to keep things simpler16:39
valentindtristan, should we save the last exception found and raise it after all results have been treated?16:42
tristanYou mean to turn that into an error ?16:44
valentindtristan, I have to read a bit more the code of the scheduler. I get confused.16:44
tristanvalentind, that code happens as a side effect of a process completing, and with fresh eyes it looks like that comment predates some more recent changes16:46
tristanat this point, raising an exception there is safe, but still not altogether the most desirable16:46
valentindWe do catch BstError higher.16:46
tristanit will be treated as a post processing failure16:46
valentindin queue.py16:46
tristanright, we started doing that16:46
tristanthat's the one that handles core side responses to completions of tasks, exceptions there used to result in hangs hehe16:47
tristanSo yeah it's decent but it could still be better16:47
tristanthose failures have no recourse for retry, for instance16:48
tristanvalentind, I suppose that a post processing failure is still a better behavior than the warning ?16:49
tristanNot sure16:49
tristanthere be some dragons around there too16:49
*** Phil has quit IRC16:51
tristani.e. fail vs. fail permanently distinction is missing (sources re-downloaded when tarball in fact has a mismatching checksum), the errors being collected as messages at the frontend level, not synchronized with task completion16:51
* tristan should probably fix that problem16:51
*** jonathanmaw has quit IRC17:10
*** paulsherwood has quit IRC17:26
*** jmac has quit IRC17:26
*** Nexus has quit IRC17:26
*** Nexus has joined #buildstream17:26
*** adds68 has quit IRC17:27
*** paulsherwood has joined #buildstream17:27
*** jmac has joined #buildstream17:27
*** dominic has quit IRC17:28
*** finn has quit IRC17:29
*** tlater has quit IRC18:03
*** milloni has quit IRC18:03
*** aiden has quit IRC18:03
*** laurence has quit IRC18:03
*** valentind has quit IRC18:03
*** aiden has joined #buildstream18:04
*** aiden has quit IRC18:05
*** aiden has joined #buildstream18:05
*** laurence has joined #buildstream18:06
*** paulsherwood has quit IRC18:07
*** jmac has quit IRC18:07
*** Nexus has quit IRC18:07
*** benbrown has quit IRC18:07
*** milloni has joined #buildstream18:08
*** tlater has joined #buildstream18:08
*** valentind has joined #buildstream18:09
*** Prince781 has quit IRC18:16
*** Guest45103 has joined #buildstream18:33
*** ptomato[m] has joined #buildstream18:33
*** theawless[m] has joined #buildstream18:33
*** waltervargas[m] has joined #buildstream18:33
*** m_22[m] has joined #buildstream18:33
*** rafaelff[m] has joined #buildstream18:33
*** abderrahim[m] has joined #buildstream18:33
*** asingh_[m] has joined #buildstream18:33
*** connorshea[m] has joined #buildstream18:33
*** mattiasb has joined #buildstream18:33
*** kailueke[m] has joined #buildstream18:33
*** cgmcintyre[m] has joined #buildstream18:33
*** inigomartinez has joined #buildstream18:33
*** jjardon[m] has joined #buildstream18:33
*** alatiera has joined #buildstream18:33
*** segfault3[m] has joined #buildstream18:33
*** ssssam[m] has joined #buildstream18:33
*** albfan[m] has joined #buildstream18:34
*** Demos[m] has joined #buildstream18:34
*** oknf[m] has joined #buildstream18:34
*** jcampbell has quit IRC19:20
*** jcampbell has joined #buildstream19:22
*** tristan has quit IRC20:27
*** paulsherwood has joined #buildstream21:03
*** bochecha has quit IRC21:33
*** bochecha has joined #buildstream21:34
*** bochecha has joined #buildstream21:34
*** bochecha has joined #buildstream21:35
*** bochecha has quit IRC21:36
*** bochecha has joined #buildstream21:36
*** bochecha has joined #buildstream21:37
*** bochecha has quit IRC21:37
*** bochecha has joined #buildstream21:37
*** bochecha has quit IRC21:41
*** tristan has joined #buildstream22:24
tlatertristan: Btw, for these scheduler resources, would you use classes or just a nested dict? It seems like one of those cases where a class is totally overkill, but I seem to gravitate to that a lot...23:16
tlaterI suppose it's easy enough to change that in the future, so I'm wasting time even considering that23:17
tristanwoops23:31
tristanoh not that long ago :)23:31
tristantlater, I don't understand about nested dicts and scheduler resources23:32
tristantlater, I remember the "resources" API we discussed yesterday23:32
tristantlater, you need a resource to describe itself and have a list of named resources, and you're talking about the data structure to declare those per resource behaviors ?23:33
tristani.e. since we said that "some resources are limited"23:33
tristanfor the purpose of --fetchers / --builders / --pushers23:33
tlaterYes, basically23:35
tlaterWhat I've gone with is to let the scheduler maintain a dict of these, and to use tokens on all resources. I'm currently thinking about how to work with exclusive access, I'll probably allow acquiring a special token for each resource, and the scheduler will have to make sure that we make room for that process23:37
tlater(Sorry if this is too deep into implementation, always hard to step back and try to let someone have a peek in my mind (: )23:39
tlaterThe workflow is; when someone wants to start a job, they first ask the scheduler for a set of "resources" the job may require.23:41
tlaterThe scheduler then goes and checks its little list of how many tokens for each resource it has lying around23:42
tristanHmmm23:42
tristantlater, it's not just "A job exposes what resources it wants, and whether it wants them exclusively" ?23:42
tristantlater, and let the scheduler work out what to do ?23:42
tristantlater, or, does it mean the scheduler needs to be selective in which jobs it pops off the queues ?23:43
tlaterIt has to be a bit selective so that we can handle the priority case still23:43
tristani.e. so that the jobs stay on queue until we really process it ?23:43
tristanright23:43
tristantlater, a place for that could be _scheduler/__init__.py or a new file23:44
tristantlater, if we can achieve something where the queues no longer ever import the scheduler for any reason, that would be good23:44
tristani.e. not a challenge for you, but a generally good direction for the scheduler23:45
tlaterHm, I suppose the functionality is nicely encapsulated, so that will work23:45
tristanI think after my last refactor there still was reasons... the job executes methods on the scheduler directly for instance23:46
tristanthat should ideally be different and layered, jobs could just have their own callbacks for the scheduler to handle itself23:46
tlaterI suspect that this will want another refactor when events come in23:47
tristanbut anyway, I don't expect a revolution, just saying ideally we want to walk towards a world where jobs dont import queues or scheduler, and queue also doesnt import scheduler23:47
tlaterI noticed that the scheduler/queues were suddenly a lot less reliant on the frontend, too... Or I suppose the other way around23:48
tlaterI guess there has been some refactoring there too since I started this work.23:49
*** tristan has quit IRC23:50

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