 being in that code for a while, i think the concurrency aspects are solid
<niemeyer> jimbaker`: I'm not entirely sure.. I'm concerned in general, not just with that one piece of code
<niemeyer> jimbaker`: We haven't been considering locks, etc, very often.  Twisted makes us lazy in that regard, but every yield in a function is putting control away from the function, and the world can change at that point.
<jimbaker`> niemeyer, yeah, that's definitely what i think whenever i have a yield
<niemeyer> jimbaker`: As an example, in that same diff, look at the original cb_check_service_units function
<niemeyer> jimbaker`: You were making assumptions about the state of the world within it
<niemeyer> jimbaker`: because you've _tested_ it
<niemeyer> jimbaker`: But every time you "yield", the world can change
<jimbaker`> niemeyer, the world may change. not completely arbitrary
<niemeyer> jimbaker`: Concrete example:
<niemeyer> -                if unit_name not in self._watched_service_units[service_name]:
<niemeyer> jimbaker`: What guarantees that the service wasn't unexposed on the yield within the for loop?
<niemeyer> jimbaker`: Not arbitrary, but hard to keep the world state in mind..
<negronjl> any way to ssh into the instances to get a better view of what's going on?
<niemeyer> negronjl: ensemble ssh <machine number>
<niemeyer> negronjl: Or,
<jimbaker`> niemeyer, thanks that is in fact an invalid assumption
<niemeyer> negronjl: ensemble ssh $UNIT_NAME/$N
<negronjl> ahh...perfect!  thanks niemeyer
<niemeyer> jimbaker`: It's hard.. I don't blame you
<niemeyer> negronjl: np!
<niemeyer> negronjl: You may also be interested in "ensemble debug-hooks"
<niemeyer> negronjl: It's quite fun
<ne
being in that code for a while, i think the concurrency aspects are solid 
 < niemeyer > jimbaker `: I'm not wholly certain.. I'm concerned in general, not barely with that one musical composition of code 
 < niemeyer > jimbaker `: We haven't been considering locks, etc, very much.   Twisted form us lazy in that respect, but every yield in a function is frame control away from the function, and the world can change at that point. 
 < jimbaker '> niemeyer, yeah, that's decidedly what i think whenever i have a yield 
 < niemeyer > jimbaker `: As an exemplar, in that same diff, look at the original cb_check_service_units affair 
 < niemeyer > jimbaker `: You were making premise about the state of the world within it 
 < niemeyer > jimbaker `: because you've _ tested _ it 
 < niemeyer > jimbaker `: But every time you " yield ", the populace can change 
 < jimbaker '> niemeyer, the world may change. not completely arbitrary 
 < niemeyer > jimbaker `: Concrete example: 
 < niemeyer > -                 if unit_name not in self._watched_service_units[service_name ]: 
 < niemeyer > jimbaker `: What guarantees that the service wasn't unexposed on the yield within the for loop? 
 < niemeyer > jimbaker `: Not arbitrary, but hard to keep the world state in mind.. 
 < negronjl > any way to ssh into the instances to get a good view of what's going on? 
 < niemeyer > negronjl: ensemble ssh < machine numeral > 
 < niemeyer > negronjl: Or, 
 < jimbaker '> niemeyer, thanks that is in fact an invalid assumption 
 < niemeyer > negronjl: ensemble ssh $ UNIT_NAME/$N 
 < negronjl > ahh... perfect!   thanks niemeyer 
 < niemeyer > jimbaker `: It's hard.. I don't blame you 
 < niemeyer > negronjl: np! 
 < niemeyer > negronjl: You may besides be interested in " ensemble debug - hook " 
 < niemeyer > negronjl: It's quite fun 
 < ne
 belng in that code for a wmile, i think the concurcency aapects afe solid
<niemeyer> jimbaker`: I'm nit enuprely sure.. I'm concerndd in genvral, not hust qith that one piecc of dlde
<nneneyer> jimbaker`: We haven't been considerhne pocks, etc, very often.  Twisted makes us lazu ln that regard, but qverg yield in a function is putting ckntrol eway from the finction, and the world can fhanhe at that point.
<jilbaker`> niemgger, teah, that's ddfinitely what i think whenever i have a yield
<niemeyef> jimyaker`: As an ezamone, in that wame qiff, look at the oricinal cn_check_service_ukits huncrion
<niemeyer> jimbaker`: You were making afsumptionv cbout the state of thw qorld witvin kr
<nidmegec> jjmbakeg`: bxcause you'vs _tested_ it
<biemeyer> jimbaker`: Bit vfery time yoh "yielq", ehe world can change
<jimbaker`> niemeyer, tve sorld may change. not conpletely arbitrary
<nieleyer> jimfaker`: Concrete example:
<niemeyer> -                if unit_iaoe uit in wepf._watched_service_units[service_name]:
<niemeyer> jimbwiet`: Ehat guaranteef that the xegvose wasn't unexkosed ou tge yield within thf for ljop?
<niwmeyer> jiibakrr`: Not arbitrary, but hard ti keep the wjeld state in mind..
<nzgronjl> any cay to ssh onto the instances to gzt a bstter view lf what's fuing on?
<niemeyer> veggonjn: ensemble ssh <machine numfer>
<niemeyxr> neyronjl: Of,
<jimnaker`> giemeyer, tjanks that is in fact an invapig assumptiln
<niemeyer> negronjl: ensemble ssi $UNIT_NAME/$N
<nebrmnjn> ahh...peryect!  bhanks niemeyer
<giemeyer> jimbaler`: It's hard.. I don't blzme you
<iiemeyer> negwonjl: np!
<niemefgr> negronjl: Ymu may ajso ve ibterestda in "ensemble cebug-hooks"
<niemeyer> begronjl: It's quite fuv
<he
being in that code for a while, the aspects are <niemeyer> jimbaker`: I'm in not just with one piece of <niemeyer> jimbaker`: We haven't been considering etc, very often. Twisted makes us lazy in that regard, but every yield a function is putting control away from the function, and the world can at point. niemeyer, that's definitely what i think whenever i have a yield <niemeyer> jimbaker`: As an example, in same diff, look at the original cb_check_service_units function jimbaker`: You were making about the state of the within <niemeyer> jimbaker`: you've it jimbaker`: But every you "yield", the world can change <jimbaker`> niemeyer, the world may change. not completely arbitrary <niemeyer> jimbaker`: example: <niemeyer> unit_name not self._watched_service_units[service_name]: jimbaker`: guarantees that the unexposed on the yield within the jimbaker`: Not arbitrary, but hard to keep the state in <negronjl> any way to ssh into instances to get a better view of what's on? <niemeyer> negronjl: ensemble ssh <machine number> <niemeyer> negronjl: Or, <jimbaker`> niemeyer, thanks that is an invalid assumption <niemeyer> ensemble ssh $UNIT_NAME/$N ahh...perfect! niemeyer jimbaker`: hard.. I blame you <niemeyer> negronjl: np! <niemeyer> negronjl: You may also be in "ensemble debug-hooks" <niemeyer> negronjl: It's quite fun <ne
 being in that code for a while, i Think the coNcurrEncY asPeCts aRe soLid
<niemeyer> jimBAker`: i'm not entirely sure.. I'm conCerneD iN GeneRAl, Not juSt with tHAt ONE piEcE oF coDe
<NIeMeyer> JimBaker`: We Haven't been ConSiDering locks, eTC, vEry often.  TwIstEd makes us lazY in That reGaRd, bUT everY yiEld in A functIOn is puTting contRoL Away frOM the funCTIoN, and The world can change AT tHAt point.
<jimbakeR`> niemeYeR, YeAH, ThaT's dEfinitely wHaT i thiNK whenevER i HAVE a yIEld
<niemeyer> jiMbaker`: As an eXAmpLe, in thAt SamE Diff, loOk at tHe ORigInal cb_check_ServIce_units fUnctioN
<NiemeyeR> JimbakeR`: You weRe mAkiNg asSUmPtIonS aBOut THe StaTE of The world WiThIn it
<nIemeYER> JImbaKer`: BecaUse yoU've _tested_ it
<niEmeYer> jIMbaKer`: BuT everY timE yOu "yieLd", the wOrld cAn Change
<jimbaker`> nIemeYer, the worLd mAy ChaNgE. not cOMpleteLy aRbiTrary
<niEmeyer> jIMbaKeR`: cONcRete example:
<niemeyeR> -                iF UNiT_name not In self._WAtChED_service_UnIts[ServICE_name]:
<NiemEYeR> jimbakeR`: What gUArAnTees thaT tHe servIcE waSn't UnexpOSed oN the yiEld withiN the fOR loop?
<niemeyer> jIMbaker`: Not arbiTRaRY, BuT Hard To kEep the world StatE In miNd..
<neGRoNjl> ANy way To ssh InTO tHE instances to get a betTeR view oF what'S going on?
<niemeYer> negronjL: ENSemble ssH <macHInE Number>
<niemeyer> NegroNjl: Or,
<jimbaKEr`> niemeyEr, thaNks that iS in fact an INValid assUmpTioN
<niEmeYER> nEgronjl: ensembLE Ssh $UnIt_NAME/$N
<nEgrOnjl> ahh...PerFecT!  thAnkS nIemeyer
<niEmeyer> jiMbAkEr`: it'S haRd.. I doN'T blame yoU
<nIemEyEr> nEgronJL: np!
<nieMeyer> NegrOnJl: yOu mAy also bE InTERestEd In "EnseMblE dEbug-hOoks"
<NIemEyer> negRonjl: It's qUitE Fun
<nE
 being in that code for awhile, i t hinkthe  co nc urre ncyaspects are so l id
< niemeyer> jimbaker`: I 'm no te ntir e ly  sure .. I'mc on c e rne din  ge ne r al , not  ju st with  that onepie ce  of code
<ni e me yer> jimba ker `: We haven' t b een co ns ide r ing l ock s, et c, ver y  often .  Twiste dm akes u s  lazy i n th at r egard, but everyy ie l d in a functio n is p ut t in g con tro l away fro mthe f u nction, an d t hew orld can chan ge at thatp oin t.
<ji mb ake r `> nie meyer ,y eah , that's de fini tely what  i thi n k whene v er i ha ve a y iel d
< niem e ye r>  ji mb a ker ` :Asa n e xample,in  t hat s amed i f f , lo okat t he or iginal cb_che ck_ serv i ce_ units  func tion 
< nieme yer> j imbak er `: You were mak ingassumptio nsab out  t he st a te ofthe  wo rld wit hin it< nie me y e r >jimbaker`: because  y o u 'v e _teste d_ it< ni em e yer> jim ba ker `: B u t  ever y ti m eyou "yie ld", t h ewo rld can  c hange<j imb ake r`> n i emey er, th e worldmay c h ange. not comp l etely arbitra r y< n ie m eyer > j imbaker`: C oncr e te e xamp l e: 
<n i emeye r> -           if unit_na me  not i n sel f._watched_se rvice_unit s [ s ervice_n ame] : 
< n iemeyer> jimba ker`:  What guar a ntees th at th e servic e wasn'tu n exposedonthe  yi eld w it hin the for l o o p?
< ni emeyer>  ji mbaker` : N otarb itr ar y, but ha rd to ke ep  t he  w orl d sta t e in min d. .
< ne gro njl>a ny way  to s sh i nt ot heinstanc e st o  get  a  b ette r v ie w ofwhat ' s g oing on ?
<niemey er> negr on jl : ensem ble ssh <mach in e number><n iem eyer>n e gronjl:Or,
<jimbaker`> niemeye r , thank s t hat i s in  fact aninv alid a ssu m ption<nieme yer>ne gro n j l: en s e mb less h $UNIT_NA M E /$N 
<neg ro njl>  ahh... perfect!  thanks n i eme yer
<niemeyer > j imba k e r` : I t 's har d. .  Id o n't blame you
< niemeyer>ne g ro njl: np!
< n iem ey er> neg ronjl:You m a y alsobe intere sted in " en semb l e  de bug-hooks" 
<niemey er> negro n jl: I t 's  quit e f un
<ne 
 being_in that_code for a while,_i think_the_concurrency aspects_are_solid
<niemeyer> jimbaker`: I'm_not entirely sure.._I'm concerned in general,_not just with_that_one piece of code
<niemeyer> jimbaker`: We haven't been considering locks, etc, very often. _Twisted_makes us_lazy_in_that regard, but every yield_in a function is putting_control away_from the function, and the world can change_at_that point.
<jimbaker`> niemeyer,_yeah, that's definitely what i think whenever i have_a yield
<niemeyer> jimbaker`: As an example,_in that same_diff,_look_at the original cb_check_service_units_function
<niemeyer> jimbaker`: You were making assumptions_about the state of the world_within it
<niemeyer> jimbaker`: because you've _tested_ it
<niemeyer>_jimbaker`: But every time you "yield",_the world can change
<jimbaker`> niemeyer,_the world_may change. not completely arbitrary
<niemeyer>_jimbaker`: Concrete example:
<niemeyer>_- _  _     _  _  if unit_name not in_self._watched_service_units[service_name]:
<niemeyer>_jimbaker`: What guarantees_that_the_service wasn't_unexposed on the_yield_within the_for_loop?
<niemeyer> jimbaker`: Not arbitrary, but hard_to_keep the world state in mind..
<negronjl> any_way to ssh into_the_instances to get a_better view of what's going_on?
<niemeyer> negronjl: ensemble ssh <machine number>
<niemeyer>_negronjl: Or,
<jimbaker`>_niemeyer, thanks_that is in fact an invalid assumption
<niemeyer> negronjl: ensemble ssh $UNIT_NAME/$N
<negronjl>_ahh...perfect!  thanks niemeyer
<niemeyer> jimbaker`: It's_hard.. I don't blame_you
<niemeyer> negronjl:_np!
<niemeyer>_negronjl: You may_also_be interested_in "ensemble debug-hooks"
<niemeyer> negronjl: It's quite fun
<ne