/srv/irclogs.ubuntu.com/2012/03/27/#launchpad-dev.txt

wgranthttp://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html00:28
wgrant"They wrote their own BSON implementation which is 10-15 time faster than the one you can download."00:29
StevenKNice of them to release it.00:29
lifelesswgrant: nice post00:47
wgrantIndeed.00:49
wgrantwallyworld_: Your rev breaks 3 JS tests03:04
wgrantThey time out.03:04
wallyworld_not locally, i checked03:04
wallyworld_and the ones which do do not use any of my code03:04
wallyworld_well, they might use my code indirectly03:05
wgrantwallyworld_: I can reproduce the timeout new on 15018 locally.03:05
wallyworld_so i wonder why they pass locally03:05
wallyworld_for me03:06
wallyworld_let me check03:06
wgrantDifferent html5browser version?03:06
wgrantAnyway, reverting.03:06
wallyworld_could be, though i'm fairly up to date03:06
wgrantExactly03:06
wgrantThat's the problem.03:06
wgrantYou're running precise's.03:06
StevenKAhhh, I love fallout between lucid and precise.03:09
wallyworld_i don't :-(03:10
wallyworld_hopefully this will go away soon03:10
wgrantwallyworld: http://paste.ubuntu.com/901543/ fixes the three broken tests03:20
wgrantBut probably breaks others.03:21
lifelesswell, there is our space usage:03:21
lifeless * 54474 Exceptions03:21
wgrantWrong03:21
lifelessFDT03:21
wgrantThat's just normal fastdowntime03:21
wgrantThe space usage is the 25000 OOPSes per day from qastaging and staging03:21
wgrantbecause gandwana doesn't have a memcached03:21
lifelessah03:22
wallyworld_wgrant: hmm. i don't see why .prototype is needed if i am using yui inheritance03:22
lifelessthanks for tracking that down, are ops on it?03:22
wgrantlifeless: The immediate problem will go away once I unbreak the build.03:22
wgrantlifeless: Since the garbo job that's whinging about memcached is about to be deleted.03:22
wgrantBut did ping webops about memcached.03:22
spmoops. sorry, one sec03:23
lifelessinteresting, adsl modem isn't dropping link anymore, but apparently having routing issues nonetheles04:09
lifelesss04:09
hloeungtried moving to the motherland Australia? ;-)04:11
lifelessbeen there done that04:12
StevenKlifeless might have even got the t-shirt.04:16
lifeless'last ride on the big dipper'04:17
* StevenK missed out on the big dipper04:17
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
lifelesswgrant: whats up with deleting the decoratedresultset doctest thunk06:50
wgrantlifeless: It was already being run by test_doc06:53
wgrantThe registration got duplicated during the apocalypse.06:53
lifelesskk06:53
lifelesshttp://attractivechaos.github.com/HN-prog-lang-poll.png07:19
lifelessflacoste: http://ceklog.kindel.com/2011/08/06/90-of-the-decisions-you-make-dont-matter/07:27
adeuringgood morning07:50
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
lifelessstub: lib/lp/services/mail/sendmail.py line 9. Possibly the oldest TODO in the code base.09:03
stub\o/09:04
stubFrom before we had a working bug tracker to track that sort of thing :)09:04
cjwatsonSo I have a trivial patch for bug 966092 that doesn't increase LoC in itself (and is arguably a slight simplification).  Before the new maintenance policy I'd have added a 20-line test for it without worrying.  What should I do now?10:40
cjwatsonI guess I could try to find some bits of those tests to compactify or something10:42
cjwatsonor I could not add a test on the (dubious) grounds that it's currently untested anyway10:42
cjwatsonI don't know what people would prefer10:43
lifelessyou could reduce duplication/waste in the tests, you could reduce it elsewhere to make room for your test10:44
cjwatsonthat general approach then?  ok10:47
cjwatsonbut in particular I guess you'd prefer not to see a branch where I hadn't written a test in order to comply with the maintenance policy?10:47
lifelessthe working theory is that we've had little/no pressure for compact code, and we now have one.10:48
lifelessRight, that would be pathological, and reviewers would reject it anyway : if it wasn't ok to do that before, its not now.10:48
cjwatsonok10:48
lifelessAn alternate strategy is to ask someone that has been deleting lots of code for some credit; we don't really track per-person or anything, but something of a barter system has arisen10:49
cjwatsonyeah, I should have saved my big deletions for after this policy was instituted ;-)10:50
lifelessPush comes to shove, we'd rather have simpler-and-correct code in than not.10:50
cjwatsonI'll figure something out.  Thanks10:50
lifelessthe LoC thing is documented to be a proxy metric. If you do decide you need a waiver for more LoC, flacoste or I can provide one.10:50
wgrantcjwatson: Ah. I've been considering fixing that for a while, but thought there must be some catch that had kept that horrid step in place for 6 years.11:06
cjwatsonwgrant: yes, it's called "inertia"11:13
wgrantHeh11:13
=== matsubara-afk is now known as matsubara
salgadobenji, hi there.  so, I've done the changes that lifeless suggested to that branch (https://code.launchpad.net/~linaro-infrastructure/launchpad/team-engineering-view/+merge/99342).  would you have some time for another look? :)12:42
benjisalgado: sure, I can look at it now12:42
benjisalgado: looks great12:50
salgadobenji, cool, thanks!  would you mind ec2-landing it again? :)12:51
benjisalgado: sure12:52
nigelbbenji: Great post about tests! I didn't realize LP tests could be run in 45 minutes now. That is cool.12:57
benjisalgado: the ec2 wheels are turning12:58
salgadobenji, great, thanks!12:58
benjinigelb: hopefully we can pull together a few more loose ends and get it deployed so buildbot will be a bit more responsive than it is now12:59
nigelb\o/12:59
deryckMorning, all.13:07
deryckrick_h, ping for standup13:31
deryckrick_h, so we need a bug describing the issue that led to:  https://code.launchpad.net/~rharding/convoy/add_listmod_header/+merge/9443714:13
deryckrick_h, it's implied in the MP, but a proper bug describing the problem would be nice. ;)14:13
rick_hderyck: ok14:13
deryckrick_h, and to clarify, the reason U1 and Landscape didn't get hit by bug 966220 is because they run convoy in tree, rather than as a separate service?14:15
_mup_Bug #966220: using the path info to route breaks in various deployment cases <Convoy:New> < https://launchpad.net/bugs/966220 >14:15
rick_hderyck: well it's not clear they're running the updated convoy at all.14:16
deryckrick_h, ah.14:16
rick_hderyck: but it's that their not doing any routing, so as it works now, we couldn't get it to work either14:16
deryckrick_h, what do you mean by routing?14:16
rick_hderyck: so in the way it broke works toward how U1 and landscape work14:16
deryckah14:16
rick_hso /combo/12345 would get eaten in apache to /12345 which convoy then ate the first part of and so no path hint to do extra path finding on disk14:17
rick_hderyck: so what we need is /combo/12345 to make it to convoy as /12345 which tells convoy to look in /12345/build/js/...14:17
deryckrick_h, so they're not using the new feature of revnos being significant?  right.  Their use only cares about the constructed query?14:18
rick_hderyck: right, they only care about the ?yui-min...14:18
deryckrick_h, and the current version of convoy is backwards compatible to work either way, i.e. even if they did upgrade, they wouldn't notice because of using convoy the way they do. is that right?14:19
rick_hrigght14:20
rick_hderyck: correct, so in order to really make things work 'as they should' would require being backwards incompatible14:20
deryckrick_h, so why don't we get hit by this in local dev?14:22
rick_hderyck: because we don't attempt to use the revno locally14:22
rick_hso path is just /combo?14:22
rick_hwhich gets cut to just /14:22
rick_hand that doesn't effect our routing to the build location on disk at all14:22
deryckrick_h, and by routing, you mean a script alias directive?  We're using that, not a proxy pass directive, right?14:30
rick_hso currently it looks at what the server puts into thw wsgi PATH_INFO env variable14:31
rick_hderyck: right, this is all seperate from any proxy pass/etc14:31
deryckrick_h, i.e. it's the script alias directive that consumes the +combo fragment and hands off the rest to mod_wsgi?14:31
deryckrick_h, sorry if I'm being overly specific here. just trying to think it through.14:32
rick_hderyck: think so, but not 100% sure. let me pull up the apache config14:32
rick_hright, the proxy pass says NOT to proxy /combo urls, but then it hits the alias, which passes the request to convoy and the url is different in there14:33
deryckrick_h, ok, I see now.14:38
* deryck is playing locally14:38
rick_hderyck: yea, I'm reading the pep docs to see just what PATH_INFO needs/should be14:38
deryckrick_h, this feels to me like there ought to be some apache magic we can do to make sure the script gets passed everything it needs.14:39
=== al-maisan is now known as almaisan-away
rick_hderyck: right so in testing out a different server there's a RAW_URI environment variable I could use, but that's not available in pure wsgiref14:41
rick_hso it blows up in tests/etc14:41
rick_hbut really, I think the magic should be on the other end. If you want to ignore the url and not deal with extra paths, you should rewrite your urls to get rid of it14:41
rick_hso if you want a magic ignored /12345 it should be on you to rewrite that to /14:41
rick_hthe problem is we're trying it do it backwards and it's causing things to break down14:42
deryckrick_h, does convoy log anywhere locally?14:42
rick_hderyck: no, it doesn't14:43
deryckrick_h, how can I tell what URL it's getting handed?14:43
abentleyadeuring: Could you please review https://code.launchpad.net/~abentley/launchpad/run-via-celery/+merge/99099 ?14:43
adeuringabentley: sure14:44
rick_h:) playing with the source to print/log/pdb14:44
rick_hderyck: ^14:44
deryckouch :)14:44
rick_hderyck: yea, it's not the best thing ever writte, but that's why I think it's been wanting to move on14:44
rick_hderyck: so in looking, if we wanted to keep doing the magic I've been doing, I'd need to combine the SCRIPT_NAME and PATH_INFO to keep the full url14:52
rick_hand then keep doign the regex/cleaning I do now14:52
deryckrick_h, yeah, exactly.  I was trying to see if mod_wsgi had some directive to include script_name in path_info.14:53
rick_hbut I think that would then still break things for the other users.14:53
rick_hderyck: I don't think so, I don't think it's meant to be done. They have clear goals for each part of that14:54
deryckrick_h, right.  so at the least, if convoy.wsgi gets something like environ['PATH_INFO'] = environ['SCRIPT_NAME'] + environ['PATH_INFO'] that should work, right?14:57
rick_hderyck: right, so if I used that, it should work I think, but when I look at that, I think it'd still end up backwards incompat with U1/landscape.14:58
deryckrick_h, how so?  if they're dropping the first part of path_info anyway?14:59
rick_hderyck: looking, sec15:03
deryckrick_h, np.15:04
rick_hderyck: can we jump on a call?15:06
deryckrick_h, was just about to ask you the same.  spin up a hang out and give me 2 minutes to warm coffee.15:06
rick_hhttps://plus.google.com/hangouts/extras/talk.google.com/orange-one-on-one15:06
rick_hderyck: ^^15:06
jcsackettcan someone point me to docs about landing lazr stuff? particularly lazr.restfulclient?15:14
adeuringabentley: I'm wondering, if line 34 of the diff might result in a race condition: You call CeleryRunJob.delay() for an "absolutely fresh" job: What happens if celeryd tries to execute the job before txn.commit() is called in the transaction that creates the job?15:19
abentleyadeuring: I think you're right.  Is there a way to hook in so the next txn.commit executes CRD.delay()?15:21
adeuringabentley: I have no idea. But if there no such mechanism, we could also let celeryd wait for a few seconds, I assume15:22
abentleyadeuring: We could, but we would lose the responsiveness we gain by using Celery.15:23
adeuringabentley: right... And a hook for "after txn.commit() work" would anyway be much cleanr15:24
abentleyadeuring: transaction appears to support current.addAfterCommitHook15:26
adeuringabentley: sounds good15:26
deryckjcsackett, what kind of docs do you need?  I've always just branched, coded, put up for mp,done.  or do you mean how to update versions in lp after that?15:26
jcsackettderyck: nothing happens post MP? just mark approved and it lands?15:27
deryckrick_h, also, I'm going to drag that card  in progress for you on the board.15:27
rick_hderyck: thanks15:27
* jcsackett hasn't landed lazr.restful stuff before15:27
deryckjcsackett, same story as us.  submit to pqm like lp.15:28
jcsackettderyck: ah.15:28
deryckjcsackett, then you need to make a tarball and added to download-cache and update versions.cfg to use the new version.  for us.  not sure about packaging releases if you need to do that.15:28
adeuringabentley: in class UniversalJobSource, you override the dbuser. That sounds fine for branch management job, but it will not be useful for example in translation imports.15:32
jcsackettderyck: thanks.15:32
deryckjcsackett, np, man!15:33
abentleyadeuring: Indeed.  I'm not worried yet, since BranchScanJob is the only supported job type in that branch.15:34
adeuringabentley: well, ok, let's defer that to another branch15:34
abentleyadeuring: I want to talk to lifeless about using launchpad_main for all Jobs, because the alternative is pretty messy.15:34
adeuringok15:35
abentleyadeuring: i.e. you have to switch DB user after you've loaded the job, and then you have to re-load the job so it uses the new db user.15:35
adeuringright15:36
abentleyadeuring: skip_celery should be True only in tests.15:52
adeuringabentley: yes, that's how I understand it. Just worth a short explanation, Ithink ;)15:52
abentleyadeuring: Ah.  Your review said "...skip_celery should be False only in tests"15:53
deryckabentley, adeuring, rick_h -- forgot to remind in standup, self reviews and peers selected due tomorrow.15:53
adeuringabentley: gah, I like to mix up reft and light15:54
deryckrick_h, you and I probably need to chat about this later, since you haven't done it yet.15:54
deryckbut for now, it's lunch and work out time ;)15:54
=== deryck is now known as deryck[lunch]
=== salgado is now known as salgado-lunch
=== salgado-lunch is now known as salgado
=== matsubara is now known as matsubara-lunch
=== deryck[lunch] is now known as deryck
rick_hderyck: convoy MP approved and pushed so hopefully this helps the deploy/test crew.17:26
rick_hderyck: let me know when you want to chat re review stuff. I filled out the one, but looks like we need to chat re goals17:26
deryckrick_h, yeah.  let's hangout once more.17:31
deryckrick_h, https://plus.google.com/hangouts/extras/talk.google.com/orange-dudes17:32
salgadobenji, did you get any failure/success from that ec2 land you did for me?  it should be done by now, right?19:27
benjisalgado: I got a failure.  I thought that a message would be sent to you too.  If not, I will forward it.19:27
salgadobenji, no, I didn't get it.  probably because is not owned by myself but by a team19:28
benjiah19:28
salgadothe branch, I mean19:28
benjisalgado: email forwarded19:29
salgadothanks benji19:29
lifelessmorning19:29
benjinp19:29
salgadobenji, looks like I broke it when I replaced the Join+Coalesce on Person.  the filter I wrote didn't have the exact same semantics of coalesce19:47
salgadobenji, I've fixed it and pushed the change: http://paste.ubuntu.com/902724/19:47
lifelesssalgado: sounds like fallout from my suggestion... sorry@!19:48
benjisalgado: cool, I'll warm up the ec2 machinery19:49
salgadolifeless, yeah, I shouldn't trust you when it comes to coalesce! (everything else I think I can, though ;)19:49
salgadothanks again, benji19:49
lifelesssalgado: did it bring an unintended workitem,.. from a spec that the spec assignee was a participant19:49
salgadolifeless, yep. luckily my tests caught it.  if only I hadn't forgotten to run my tests after that one final change, I'd have found this out earlier19:50
lifelesscool19:57
lifelessdid you update to use the public bugtaskset.search API?19:57
salgadoyes19:57
lifelessgreat19:57
lifelesssorry that its not clear that its private19:57
lifelessI'll nag wgrant (who extracted it for code hygiene only) to make that really clear19:58
lifeless(that the other function is private I mean)19:58
StevenKsinzui, wallyworld_, wgrant: http://pastebin.ubuntu.com/902944/22:06
sinzuiwallyworld_, wgrant, StevenK: http://people.canonical.com/~curtis/audit/22:57

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