/srv/irclogs.ubuntu.com/2010/07/19/#launchpad-dev.txt

nigelbbryceh: just fyi, your blog has some trouble with openid ;)01:29
nigelbanyway, thats a neat new feature :)01:29
brycehnigelb, it does?  howso?02:07
brycehI didn't even know it could do openid02:07
brycehnigelb, although I did notice nobody wrote comments :-/02:07
nigelbbryceh: heh, I tried to login with LP02:11
nigelbfailed02:11
nigelbyou want me to grab the error?02:11
brycehyeah02:13
brycehI upgraded my web server to lucid, and drupal got upgraded, however it seems there is some bug that causes upgraded drupals to break in lucid02:13
bryceh(which is why I haven't been blogging for a long time)02:13
brycehmaybe that bug is why user registration doesn't work either02:14
nigelbyeah02:17
nigelbhold on, doing it again02:17
ajmitchis the drupal issue that it's using deprecated functions?02:19
nigelbit probbaly is02:19
nigelblucid only has 5.302:19
ajmitch</3 php02:19
nigelbhttp://pastebin.com/r3fTKwmQ02:20
brycehajmitch, no it looks like just a bug in the upgrade script, doesn't set fields to autoincrement02:20
ajmitchlucid does have a drupal6 package, fwiw, but it's even OT for here :)02:20
nigelbyeah, autoincrement thing :)02:21
brycehnigelb, ok yeah I've reproduced that error02:21
nigelbthat explains the comments :)02:21
nigelbwhy don't you move to something like wordpress for ease of use?02:22
brycehnigelb, why?02:29
nigelbdrupal is nice, but just "complicated" ;)02:30
brycehnigelb, I develop on launchpad and x.org, I shouldn't be put off by "complicated" ;-)02:31
brycehnigelb, is wordpress open source?02:31
nigelbbryceh: hahahaaha02:31
nigelband yes, its open source02:32
nigelbalso complicated for visitors is what I meant :)02:32
brycehwell, if I wanted something simple for visitors I'd just post to facebook02:36
nigelbhahah02:37
nigelbbut that still needs signup02:37
nigelbbtw, you're still in Prague?02:38
brycehnope02:38
brycehgot home last night02:38
nigelb:)02:41
nigelbsomeday I gotta start hacking on LP.02:41
wgrantnigelb: JOIN US!02:44
nigelbwgrant: I'm just worried02:44
nigelbI use this system for work02:44
brycehnigelb, it might be interesting for the LP folks to know what is holding you back, so they can work to eliminate that as an issue02:44
nigelbso, can't have my apache dying on me02:44
wgrantnigelb: LP doesn't usually eat systems alive, and if you're really worried you can use a VM.02:45
nigelbthe instructions say that the settings used for working on LP means usual web development cannot happen02:45
brycehnigelb, do you not have another system you could use for development on?02:45
wgrantrocketfuel-setup will try to remove PHP (because it installs apache2-mpm-worker), but that can be worked around.02:45
wgrantlaunchpad-database-setup obliterates all PostgreSQL databases, but that can also be worked around if required.02:46
nigelbbryceh: not yet.  My own system is in the shop awaiting motherboard replacement02:46
wgrantBut apart from that, it coexists fine.02:46
wgrantJust adds some vhosts to Apache.02:46
* nigelb developes on PHP :(02:46
nigelbVM seems like a good idea.02:47
wgrantnigelb: that just means you have to tweak rocketfuel-setup to not install apache2-mpm-worker.02:47
wgrantIt's not actually required.02:47
brycehnigelb, well, like wgrant says, running in a VM works too.  that's how brian does it02:47
wgrantBut yes, a VM works too.02:47
nigelbI'll let a VM run rocketfuel overnight today :)02:47
* nigelb gets sucked in LP02:48
brycehwgrant, maybe the newbie intro docs should just be written from the start to nudge the user towards setting up launchpad in a VM?  it'd sidestep so many issues and worries02:51
wgrantbryceh: Possibly. I'm not sure who manages those docs these days, though, since Karl disappeared.02:52
nigelbdisappeared?02:53
ajmitchthere was someone who'd stepped up to that role I think02:53
lifelessthere is a volunteer, yes.03:20
brycehwho?03:29
lifelessit was announced to the list03:31
brycehheh this is a bad sign if no one knows03:31
lifelesspublic I think.03:31
lifelessI know, it just not paged in.03:32
wgrantlajjr03:32
lifelessalso, I present, another victem of the heat.03:32
brycehnigelb, anyway I think you may be right I should just use wordpress.  I had visions of using drupal for some more sophisticated website stuff, but these days I hardly have time to mess around with updating my website anyway03:35
nigelbbryceh: heh :)03:35
nigelbjust be sure to update regularly03:35
brycehunfortunately that means losing all my old blog posts03:36
brycehnigelb, does something bad happen if you don't update regularly?03:36
lifelessgrrr jmkuhn - thanks mwhudson.03:37
nigelbbryceh: vulnerabilities get reported often and get security updates03:37
nigelbif you're lazy, you get owned :D03:37
brycehthat sounds bad03:38
lifelessbryceh: wordpress.com ++03:38
brycehnigelb, is updating as simple as apt-get upgrade wordpress or is more to it?03:38
nigelbthere would be a zip file i guess which you would use03:38
brycehick03:38
nigelbI've never done it.  I just use wordpress.com ;)03:38
lifelessthere is also a bzr branch you can just pull03:38
nigelbyay, bzr++03:39
nigelblifeless: that should be a snap then :)03:39
mtaylorlifeless: I just coped the planet.ubuntu.com idea of launchpad team + bzr branch of config for adding to blog syndication03:40
mtaylorlifeless: total win - should be a launchpad feature...03:40
lifelesscool03:40
lifelesshmm03:40
lifelessinteresting folk are here03:40
lifelesshere is a crazy idea I had.03:40
lifelesswhat if every object was [crudely] available as a 1-item-long rss feed (using accept-encoding negotiation)03:41
mtaylorinteresting03:41
wgrantTo what end?03:41
lifelesspubsubhubbub03:41
* mtaylor hates it that lifeless answer word is real and that I know what it is03:42
lifelesswe would pingthesemanticweb on a change to any object [excluding private in the first instance]03:42
lifelessthat is monitored by at least one hub03:42
wgrantHmm.03:42
lifelessand you can get callbacks when the object has changed.03:42
mtaylorwould make it easier to monitor things like lists-of-available-merge-requests03:43
lifelesswant to know when a build has finished on arm + i386? subscribe to the build03:43
mtaylorany thing that gets me callbacks will make me happy as far as those things go03:43
nigelbbryceh: I stand corrected.  There is a press-button upgrade feature.03:44
brycehnigelb, mm03:45
wgrantmwhudson: Hmmm, so you're actually going to fix LP and modularise it (and the model classes)?04:16
mwhudsonwgrant: well04:57
mwhudsonwgrant: to some extent or other04:57
spmrewrite from scratch. in php.05:06
mtaylorewwww05:07
* wgrant stabs spm repeatedly.05:07
* mtaylor pokes spm until he stops05:07
ajmitchspm: that's the official word from what the LOSAs want then?05:07
spmajmitch: um....05:07
ajmitchnext he'll be saying that PHP 5 is too new, let's go for 405:08
spmtho I will concede my troll has been matched, and the trolling stacks raised higher than I'm prepared to go.05:08
spmOooo! didn't think if that! ta! yes! php4 ftw.05:08
* ajmitch shouldn't continue down this path05:10
mtaylorfuck that... cobol forms are much more powerful05:10
mtaylorspm: I just got a message that said that ~swift-bugs is subscribed to openstack - but I cannot for the life of me see _why_ that would be the case05:11
spmmtaylor: hrm. looking05:12
mtaylorspm: also, I think we're clear to delete all of those -private things05:12
spmmtaylor: ahh. sweet. I'll do that first. it's possible one is causing the other.05:12
mtaylormmm. good point05:12
spmopenstack-private gone05:13
mtaylorwoot05:14
spmswift-bugs-private swift-core-private gone05:14
spmgah. swift-private is being recalcitrant, per that answers request you have. been looking at that this morning to no joy05:15
mtaylorglad to know I haven't stopped causing you grief :)05:15
spmactually.. thinking about that - I suspect it may have been self inflicted, by myself.one I need to chase.05:16
spmmtaylor: I assume the ozone ones can go too?05:17
mtaylorspm: yes. all ozone can die05:18
spmkk05:18
wgrantIs there some DB load issue at the moment?05:31
wgrantFor the past 24-36 hours, my script that heavily uses getBuildRecords has timed out every time.05:31
wgrantIt previously only timed out one every few hours.05:31
spmthat's not cool...05:31
spm1 min load is higher than usual, but 5 and 15 is normal. light even.05:32
spmwgrant: you wouldn't happen to know what table that references?05:34
wgrantspm: BinaryPackageBuild, PackageBuild and BuildFarmJob, mainly.05:34
spmis that talking to edge? I'd suggest not but... ?05:36
wgrantIt may be... let's see.05:37
wgrantIt moves around depending on where the API is least broken.05:37
spmheh05:37
wgrantIt's currently using edge.05:37
spmI'm seeing a few timeouts for queries with BinaryPackageBuild in them, all via edge05:38
wgrantThese should be 12-15 minutes past the hour.05:38
spmta! that helps hugely.05:39
spmhrm. these are all almost uniformly on the hour; so possibly not you.05:40
wgrantHmm.05:41
spmwine, firefox, kdm,?05:42
spmubiquity is another05:42
wgrantMy script requests everything with a build failure05:42
brycehnigelb, http://www2.bryceharrington.org:8080/wordpress/?p=305:42
spmwgrant: are you getting an oops from these? the commonish query that somewhat matches is taking around 10secs based on a quick random grab. cop enough of those...05:45
wgrantspm: I'm getting OOPSes, but this old launchpadlib doesn't display them.05:46
wgrantMaybe I should upgrade that host to Lucid at some point.05:46
spmbleh05:46
wgrantHm, wow, nearly a year since the open sourcing.05:48
=== mtaylor is now known as mtaylor|beach
wgrantArgh.06:06
wgranthttps://code.edge.launchpad.net/~ted/+recipe/indicator-applet-dx/+build/177 is redispatching constantly.06:06
wgrantPresumably because there is no longer a warty/i386 chroot.06:06
wgrantAh, and there are hoary and breezy builds too.06:06
nigelbbryceh: w00t w00t!06:08
lifelesswgrant: timeouts ?08:15
wgrantlifeless: Yes. spm reminded me that you reduced the timeout last week.08:16
lifelessthere is a bug script hammering one bug on prod with trouble08:17
lifelessthe hourly edge graph is clean though08:17
lifelesswhat issue are you having?08:17
lifelesswgrant: ^08:18
wgrantlifeless: distroseries.getBuildRecords is frequently timing out for me.08:18
lifelessgot an oops id ?08:18
wgrantThis old launchpadlib doesn't display them, so no :/08:19
lifelesscan you get one, please ?08:19
wgrantOK. You can't easily find OOPSes for a particular method?08:19
* wgrant turns httplib2 debugging on.08:20
spmi wonder... if oopses record the remote IP, lifeless, you should be able to fgrep -R on devpad and hunt thru them all? brute force, but...08:21
wgrantIt's hopefully reproducible.08:22
lifelesswgrant: no, not yet.08:22
wgrantIt normally happens within the first five minutes of the script, and it's running with debug logging on now...08:22
lifelessI'll file a bug on finding oops by method08:22
lifelessspm: seeing ip addressess is a bug08:23
lifelesswe need to fix that - and seeing private urls : both should be limited to losa and gsa08:23
lifelesshttps://bugs.edge.launchpad.net/oops-tools/+bug/60708708:24
_mup_Bug #607087: enable 'search by method' <OOPS Tools:New> <https://launchpad.net/bugs/607087>08:24
lifelesswgrant: any sign ?08:30
wgrantlifeless: It seems to be an excellent Heisenbug.08:31
wgrantarrrgh.08:31
wgrantJust died now.08:31
lifelesscool08:31
wgrantBut there's no X-Lazr-Oops header...08:31
lifelessits not in the oops report either FWIW08:31
lifelesswgrant: :(08:33
lifelesswhat is there ?08:33
lifelesspastebin ?08:33
wgrantHm. Maybe timeouts don't create an X-Lazr-Oops header :(08:34
lifelesswgrant: this is what edge was last night -08:34
lifeless=== Top 10 Time Out Counts by Page ID ===08:34
lifeless    Hard / Soft  Page ID08:34
lifeless      63 /  618  DistroSeries:EntryResource08:34
lifeless      12 /   71  Person:+participation08:34
lifeless       9 /   13  ScopedCollection:CollectionResource08:34
lifeless       8 /   29  BugTask:+index08:34
lifeless       5 /   50  Sprint:+temp-meeting-export08:34
lifeless       5 /    6  Archive:+copy-packages08:34
lifeless       4 /    2  DistroSeries:+index08:34
lifeless       3 /    3  BugTask:+editstatus-page08:34
lifeless       2 /    3  Milestone:+index08:34
lifeless       2 /    1  Person:+map08:34
lifelesswgrant: we do get timeout oops on edge apis08:34
wgrantIt's probably the first one.08:34
lifelessOOPS-1660EB240808:34
wgrantIt would come under the first one, that is.08:34
wgrantThe request URL should have ws.op=getBuildRecords08:35
StevenK!pastebin08:35
lifelessQUERY_STRING: build_state=Failed+to+build&ws.op=getBuildRecords&ws.start=200&ws.size=5008:35
lifelessStevenK: !sanity08:35
wgrantThat's the right kind of request.08:35
wgrantGET /1.0/ubuntu/maverick?build_state=Failed+to+build&ws.op=getBuildRecords&ws.start=1750&ws.size=5008:35
wgrantThat's the one that failed just now.08:35
StevenKlifeless: You should know better. :-P08:36
wgrantI'd only expect 24 hard OOPSes a day from this, though.08:36
lifelessStevenK: 12 lines in a totally dedicated channel is not a problem08:36
lifelessStevenK: when there are no other discussions taking place.08:36
lifelessStevenK: we are, after all, here to *communicate*08:36
wgrantlifeless: I can has that OOPS?08:37
wgrantlifeless: Ah, thanks for the review.08:37
lifelessSQL time: 12978 ms08:38
lifelessNon-sql time: 1499 ms08:38
wgrantAha.08:38
wgrantWhat're the big queries?08:38
wgrantOr are there lots?08:38
lifelesshttp://pastebin.com/DsDmLqLk08:39
lifelessone repeated query is the culprit I think08:39
wgrantForgive me -- I've no idea what those columns mean.08:39
wgrantI'd really like to know where that query is coming from.08:41
wgrantHmm.08:41
wgrantMaybe current_source_publication, I guess.08:41
wgrantAlthough that query should be pretty quick.08:41
wgrantlifeless: Do you have sufficient powers yet to land that branch?08:43
lifelesswgrant: probably but EBUSY08:47
lifelesswgrant: please grab someone else08:47
wgrantlifeless: OK.08:47
lifelesswgrant: oh, the 37 is repetitions08:47
lifelessrow reps time avg time-avg db-id query08:48
lifelessthere are also two very slow queries08:48
lifeless12 seconds total08:49
lifelesshttp://pastebin.com/VsQpzqUq08:49
lifelesswgrant: ^08:49
lifelesswgrant: thats actually the issue, probably.08:49
wgrantWTF is it doing a count for.08:49
lifelessthe rest is inefficient but broadly noise.08:49
wgrantThanks.08:50
wgrantThose are indeed the problems.08:50
lifelesswgrant: I'd like to lower the timeout again today; is that ok with you, given you're about to propose a fix ? :)08:50
wgrantlifeless: My other scripts are reasonably happy, so go ahead.08:50
wgrantI fully support any measures to make LP less slow.08:52
=== almaisan-away is now known as al-maisan
mrevellHey up09:01
wgrantCan I get an EXPLAIN ANALYZE executed, or is that a stub thing?09:01
spmwgrant: any of the losas can do it for you. fire away.09:03
wgrantspm: Can you EXPLAIN ANALYZE the second query on http://pastebin.com/VsQpzqUq, please?09:04
spmwgrant: http://paste.ubuntu.com/465800/09:09
wgrantspm: Which DB was that? main master?09:10
spmone of the slaves09:11
wgrantAh. Thanks.09:11
lifelessspm: it was running on main09:41
lifelessspm: you might want to check its the same?09:42
lifelessactually nevermind09:42
lifeless7.7secs is 7.7secs09:42
wgrantIt's about a second slower, so it's pretty simialr.09:42
spmheh, i'd be impressed if that made a difference, and no, looks near as identical.09:43
spm7.9 vs 7.7; within the bounds of load/server abuse09:43
wgrantThere are some recipe builds redispatching constantly, since they are targetted to series without chroots.09:58
wgranthttps://code.edge.launchpad.net/~ted/+recipe/indicator-applet-dx09:59
bigjoolsrockstar: can you fix that?10:04
* bigjools sighs at people making builds for breezy, hoary and warty10:05
bigjoolsthe UI should have blocked that10:05
wgrantIt does.10:05
wgrantI bet the API doesn't, though.10:05
rockstarwgrant, why are they targetted to series without chroots?10:06
wgrantBut we should fail builds if the chroot's missing, I think.10:06
bigjoolsrockstar: see the series I mentioned10:06
wgrantrockstar: Because Ted thought it was fun, I guess.10:06
rockstarbigjools, the UI does block that, so I guess it was an API thing?10:06
bigjoolsvalidation in browser code is largely useless now we have the API :/10:06
bigjoolsyay for fat models10:07
bigjoolsrockstar: yeah it must be10:07
wgrantbigjools: Also, we have a whole lot of impossible builds being created in the primary archive when security updates with failed builds are copied.10:07
rockstarbigjools, truthfully, that should probably take place in the model anyway.10:07
rockstarwgrant, can you file a bug?10:07
wgrantThey get marked as failed immediately, but they clutter up build listings and probably shouldn't exist at all.10:07
* rockstar does not have a shortage of recipe bugs to fix10:08
bigjoolsheh10:08
wgrantrockstar: One for preventing creation, and another for dealing with broken ones?10:08
wgrant(since they can become broken after creation)10:08
rockstarwgrant, I think the broken ones is probably a buildmaster issue, right?10:08
wgrantrockstar: No. You pick the chroot in lp.code somewhere, and that'd be what's crashing.10:09
wgrantAlso, what's going on with porting SPRBs and TTBJs to the new model?10:09
bigjoolsit needs to fail the build10:09
bigjoolsin progress10:10
wgrantExcellent.10:10
bigjoolsthe latter is pronounced as "Titty Bee Jay" BTW10:10
wgrantHeh.10:11
bigjoolsrockstar: so those builds that won't ever complete, you should poke some SQL at the LOSAs to remove them10:11
bigjoolsand add a "cancel" button to the UI10:11
poolieraising the tone10:11
wgrantThere's a cancel branch in progress, right?10:11
rockstarbigjools, there is a cancel button already for admins.10:11
wgrantI thought I saw it floating around last week.10:11
bigjoolsummm10:11
rockstarlosa ping10:11
bigjoolsrockstar: why only admins?10:12
mthaddonrockstar: hi10:12
bigjoolsshould be the user, and buildd-admins10:12
rockstarbigjools, because that's what I wrote the code to do.10:12
bigjools:)10:12
wgrantWhat does it do when the build is in progress or finished?10:12
rockstarwgrant, where are these builds?10:12
pooliewgrant, i thought <https://code.edge.launchpad.net/~leonardr/launchpad/true-anonymous-access/+merge/30088> might please you10:12
wgrantrockstar: the three pending builds on https://code.edge.launchpad.net/~ted/+recipe/indicator-applet-dx10:12
wgrantpoolie: Indeed, I was pleased to see that.10:13
rockstarmthaddon, I have some builds that probably need to be cancelled.10:13
bigjoolsrockstar: what does the cancel button do BTW?  mark them with a new status or delete them?10:13
rockstarmthaddon, https://code.edge.launchpad.net/~ted/+recipe/indicator-applet-dx/+build/175 https://code.edge.launchpad.net/~ted/+recipe/indicator-applet-dx/+build/176 and https://code.edge.launchpad.net/~ted/+recipe/indicator-applet-dx/+build/17710:14
* rockstar makes note to head punch ted10:14
wgrantI'm somewhat concerned that Code is doing things that are impossible.10:14
rockstarbigjools, I originally was deleting the build, but abentley thumped me, so I'm just changing the status now and deleting the buildqueue record if there is one.10:14
wgrantLike deleting branches related to recipes related to builds.10:14
mthaddonrockstar: what is "wrong" with what ted has done here?10:14
wgrantAnd cancelling builds that are in progress.10:14
rockstarmthaddon, requesting builds against unsupported distros.10:15
bigjoolsrockstar: great, sounds fine, with the caveat that wgrant is raising10:15
mthaddonrockstar: should he not be allowed to do that? if so is that a bug that we let him do that?10:15
wgrantmthaddon: Yes, bug #60712510:16
_mup_Bug #607125: Forbid creation of recipe builds for obsolete series through the API <Launchpad Bazaar Integration:New> <https://launchpad.net/bugs/607125>10:16
rockstarI see your caveat, and raise a "well, it's either that, or assume the buildmaster will fix it, which has been a bad assumption so far"10:16
mthaddonthx wgrant10:16
* mthaddon adds to losa watched bugs10:16
wgrantrockstar: Well, cancelling an in progress build will at the moment either not work, or not work and knock the builder out until somebody notices that it has been idle for weeks.10:16
rockstarwgrant, there should be a cancel button on there now though.10:16
rockstarwgrant, this is why we left it up to the admins.  The reason it's here is because builds keep getting re-tried even though they are always failing.10:17
bigjoolswe have some work to do to cancel in-progress builds10:17
mthaddonrockstar: those have been cancelled10:17
bigjoolsrockstar: can you change that permission to buildd-admins please10:17
rockstarmthaddon, great, thanks.10:17
rockstarbigjools, you can...  :)10:17
bigjoolsrockstar: I would but we have all these buildd-manager bugs you keep exposing ;)10:18
* rockstar refrains from "it's open source" comment.10:18
* bigjools might do the same with the next buildd-manager bug10:18
rockstarbigjools, this is a hell of a pissing match...  "My code is more broken than yours!"  "Nuh uh!"10:18
bigjoolslol10:19
wgrantAh, it already raises a CannotBuild when the chroot is missing.10:19
wgrantBut that just causes the dispatch to do nothing.10:19
wgrantSo it's going to be retried on the next run.10:19
rockstarwgrant, ...unless we've cancelled the build.10:20
wgrantrockstar: Right.10:20
rockstarwgrant, "Cancel build" is there so that we don't have to make the losas run SQL.10:20
wgrantI speak of the general case.10:20
rockstarIt shouldn't have to exist at all.10:20
bigjoolsone of my b-m bugs is to detect failures and work out whether to fail the job or the builder10:20
rockstarLuckily, spr is only available on edge.10:20
* bigjools cringes at the 2nd meaning of SPR now :(10:21
rockstarbigjools, maybe just see if the builder failed the last 5 builds before the builder commits seppuku.10:21
bigjoolsrockstar: that's the exact plan10:21
rockstarbigjools, my use of SPR is more important now.10:21
bigjoolsit can see if it's the same builder or the same job10:21
* rockstar only works on important things10:21
wgrantbigjools: We also need to fire the reset trigger if a builder is being stupid.10:21
bigjoolshaha10:21
wgrantbigjools: eg. during an abort.10:21
wgrantOr when we get a <Fault 8002: error>10:21
bigjoolsI have a branch that does that, but I backed it out10:22
wgrant:(10:22
rockstarwgrant, also, recipe builds are about to be able to be re-scored as well.10:22
bigjoolswgrant: it disabled builders that were not resetting quick enough :/10:22
wgrantbigjools: Oh, right.10:22
wgrantbigjools: Once we no longer need to preserve ddebs on the buildd filesystem, is there any need for the virt/non-virt distinction? I think the architecture restriction magic can handle it all.10:24
bigjoolswell yes10:25
wgrantIt would also mean we wouldn't have to lie about ivy and kaylaberry.10:25
bigjoolswe still need a split between non-virt and virtual i386/and6410:26
bigjoolsamd*10:26
wgrantWhy?10:26
wgrantOnce our queue discipline doesn't suck, there's no reason to.10:26
rockstarbigjools, it'd be nice if we could return the spr builds to be "anything but arm" instead of i386 only.10:26
bigjoolsarchive restriction won't work there10:26
wgrantbigjools: Why not?10:26
bigjoolsrockstar: agreed10:26
bigjoolswgrant: because we don't want PPA builds ending up on distro builders10:27
wgrantbigjools: But the distro builders don't need to be special.10:27
bigjoolsyes, they do10:27
wgrantWhyso?10:27
bigjoolsthey're not PPA builders10:27
bigjoolsdistro has its own hardware10:27
wgrantAh, so it is political. Yay.10:28
bigjoolsbesides, not resetting the builder shaves 30 seconds off the build time10:28
wgrantAnyway, regarding the "anything but arm" thing: we could just leave them on i386 and let amd64 builders build i386 and lpia as well, as has been planned for years.10:30
bigjoolsyeah there's a bug about that10:31
bigjoolsit would need a bit of work server-side :)10:32
wgrantNot really.10:32
wgrantThe slave side is done, but not merged.10:32
wgrantAnd the master is simple enough.10:32
wgrantAlthough it might make /builders a little odd.10:37
lifelessmthaddon: hi10:45
mthaddonlifeless: hi10:45
lifelessI has a new config CP on the wiki page10:45
mthaddonlifeless: you've added it to ones already done rather than requested ones10:46
lifelessoh darn10:46
lifelessfixing10:46
mthaddonlifeless: and since this is an edge one, it's not really a cherry pick - just a request for an edge rollout10:46
lifelessmthaddon: ok10:47
lifelessmthaddon: can you please rollout edge then? Sorry about not getting the process right :(10:47
bigjoolswgrant: the hard part is the build dispatch ETA10:48
wgrantbigjools: Yeah. But arch-agnostic builds completely break that too. I think we need a new way to do things.10:51
mthaddonlifeless: ugh, we don't have a new commit to "stable" since the last edge rollout, so it'd make a rollout currently a very manual process10:51
bigjoolswgrant: they don't break it if they end up in the same arch-indep builders each time10:51
bigjoolsit's when the arch is indeterminate, mixed with determinate builds that you have an issue10:52
bigjoolsqueueing theory is a bitch10:52
wgrantYes :(10:52
lifelessmthaddon: here's what I'd like to do: I want to drop the edge timeout to 12 seconds. The ppr suggests 10 might be safe, but I don't totallly trust it.10:53
lifelessmthaddon: I'd like to find out during our work day if that change is an issue so we can rollback in a controlled fashion.10:54
mthaddonlifeless: the next auto rollout would be tomorrow morning (assuming there's a new landing to stable between now and then), so how about that?10:55
lifelessmthaddon: it would make me sad. But if thats the best we can do, its the best we can do.10:58
lifelessmthaddon: also, its a bit risky.10:58
lifelessmthaddon: because if the auto rollout happens, and its bad, we're in the poo, and I explicitly want to avoid that.10:58
mthaddonlifeless: there are LOSAs around during the auto-rollout, or if someone lands a change to stable between now and then, kicking off a rollout is fairly trivial10:59
lifelessmthaddon: could you just do an empty commit then, from praseodymium ?10:59
lifelesscheckout lp:launchpad/stable; bzr commit --allow-unchanged ?11:00
mthaddonlifeless: I *could* but this is more "working around our process rather than fixing our process" which makes me sad11:00
lifelessmthaddon: it makes me sad too11:00
lifelessmthaddon: I don't understand why our process has this limitation.11:00
lifelessCan you tell me about the limitation ?11:00
mthaddonlifeless: the limitation is that we want to be able to push and build code without taking down the current app server - we do that by pushing to a new directory11:01
mthaddonlifeless: the name of the new directory is determined by the revno of the top level bzr dir in the code tree11:01
mthaddonlifeless: so unless we have a commit to that, we'd be pushing over the top of the existing directory11:01
mthaddonlifeless: which our deployment scripts would stop from allowing11:02
lifelessright11:03
mthaddons/would stop from allowing/wouldn't allow/11:03
lifelessthat would be bad.11:03
lifelessso, a few things occur11:03
lifelesswe could make the top level number be a composite - lprevno,configrevno11:03
lifelesswe could use a datestamp - lprevno,$time11:03
lifelessor even $time11:03
lifelessdo you have any other ideas?11:04
mthaddonlifeless: that would be problematic in terms of how the deployment scripts handle other projects (we don't just use it for LP), but the lprevno,$time would work11:04
lifelessok, where is the script, so that I can put a patch together11:04
mthaddonI mean the lprevno,configrevno wouldn't work, but lprevno,$time would work11:04
mthaddonlifeless: lp:~canonical-losas/deployment-manager/trunk11:04
lifelessmthaddon: RepositoryFormatKnitPack1 - you could benefit by upgrading that :)11:06
wgrantbigjools: Is there a reason that external_dependencies are between the archive itself and the other archive dependencies in sources.list? Would the world explode if I moved it to the end (it would make some refactoring simpler)?11:07
bigjoolsI think so, let me remember11:07
wgrantIt's possible that people are relying on it. But that's a bit crazy :/11:08
* mthaddon does it through the UI11:08
bigjoolsI think they are - it was for OEM's migration11:08
wgrantI guess I could just insert them after the first line.11:08
bigjoolsmthaddon: is that a bumper sticker? :)11:08
bigjoolswgrant: what are you changing?11:08
mthaddonbigjools: no, that's "LOSAs do it through the UI" :)11:09
wgrantbigjools: https://code.edge.launchpad.net/~wgrant/launchpad/bug-598345-restrict-dep-contexts/+merge/3020311:09
bigjoolsmthaddon: :D11:09
bigjoolswgrant: yay!11:10
bigjoolsbtw I have a new buildd-manager that I finished (sorta)} last week11:10
lifelesswgrant: so, please tell me you're going to fix the soyuz api :)11:10
wgrantYeah, I saw that. Looks good.11:10
wgrantlifeless: Hm? The timeouts?11:11
bigjoolswgrant: are you stalking me?  I didn't even make an MP yet!11:11
lifelessyes, in particular11:11
wgrantbigjools: I guess I'll just change it to insert the external deps after the first real dep entry.11:11
wgrantbigjools: I stalked lots of LP branches over the weekend :P11:11
bigjoolslifeless: we need a way of jobbing copy-packages before we get rid of the major source of timeouts ;)11:12
lifelessbigjools: you could use the jobs system11:12
lifelessno ?11:12
bigjoolsyes - but it would be a lot of work11:12
lifelesshow is it done now ?11:12
bigjoolsall synchronously in the appserver11:12
lifelessaiieeee11:12
bigjoolsit issues a shitload of queries11:13
bigjoolsthe copy checking is very complicated11:13
wgrantlifeless: This is Launchpad. Launchpad's motto is "Let's do everything in the appserver until it times out, then ignore it for a while after it starts to."11:13
bigjoolsbut it is well-factored so it's just a case of UI changes11:13
wgrantbigjools: But isn't a lot of the time taken in verifying that the copy can actually happen successfully?11:14
bigjoolswgrant: yes, that's exactly what I am talking about11:14
lifelesswgrant: that was last month.11:14
bigjoolsthe copy itself is trivial11:14
bigjoolsthe checking - not so much11:14
lifelessrabbit is now available.11:14
wgrantHmm. Doing that asynchronously sounds a bit awkward.11:14
lifelessthe jobs system is pretty good even without rabbit.11:14
bigjoolslifeless: I hope you saw my comment on that bug about more daemons11:15
wgrantlifeless: There isn't really a jobs "system"...11:15
lifelessbigjools: I did, but I don't have an answer other than 'yes, we should fix it so we don't monkey with apache, pgsql, etc/hosts, etc etc etc'11:15
bigjoolslifeless: the problem is endemic11:15
lifelessagreed11:16
lifelessthis is why I develop lp in a VM11:16
bigjoolsthat's not a cure, it's pain relief11:16
lifelessIf you have suggestions for how to develop software using rabbit without having rabbit present, I'm all ears.11:16
bigjoolsrabbit ears?11:16
StevenKBwahaha11:16
bigjoolswe just need a way of selectively starting this stuff when needed11:16
bigjoolsduring make run, or during the tests11:17
lifelessin this case, perhaps file a bug on rabbitmq in debian11:17
wgrantbigjools: Is buildd-manager really so slow at the moment because of process-upload.py, or is the candidate selection query also taking a while?11:17
lifelessthe package being how it is isn't really my fault :)11:17
bigjoolsI am really fed up of more daemons running in the background :(11:17
lifelessbigjools: we shouldn't/can't use the system rabbit for tests anyhow.11:17
bigjoolslifeless: it's not unreasonable that it starts when you install it11:17
lifelessbigjools: please don't think I'm advocating having it running all the time: I'm not.11:18
bigjoolsbut the lp packages should turn it off11:18
bigjoolswgrant: most of it is upload11:18
lifelessbigjools: that would worry me; too much chance of turning it off on prod.11:18
bigjoolsthe next slowest part is dispatching (it takes 10 seconds to send all the files to the builders)11:18
bigjoolscandidate selection is very fast11:18
wgrantbigjools: Hmm. But there are only 59 builders... and it gets out to 15 minutes sometimes.11:19
bigjoolslifeless: make start should start it11:19
lifelessno11:19
bigjools.......11:19
lifelesswe should not use the system instance at all11:19
lifelessmake start should run a private instance using the system binary11:19
bigjoolswgrant: yeah that's upload time11:19
wgrantHm, I guess that is Hm, I guess that only means 15s of upload time, yeah.11:19
lifelesswhich may be what you mean11:19
wgrantCrazy.11:19
bigjoolslifeless: yep11:19
lifelessalthought, again, make start on prod - we have to be very careful not to mess up there.11:20
wgrantlifeless: But we do the same sort of thing with the librarian, so there's precedent.11:20
lifelesswgrant: the way we use the librarian causes lots of headaches, testing included.11:20
wgrantlifeless: True.11:21
lifelessmthaddon: I am admiring of your unit tests :P11:21
mthaddonlifeless: er.... yeah11:22
bigjoolsI'd really like "make start" to start everything it should do, given the LPCONFIG11:23
jmlI'd like to not start Launchpad using make targets.11:30
lifelessjml: what would you like to start using make targets?11:31
jmllifeless, are you trolling?11:31
lifelessonly a little11:32
jmllifeless, well, I don't understand the question. But to elaborate on what I meant, I'd like to not have make targets for running Launchpad or its bits, and instead use actual scripts.11:32
jmlmaybe even the same scripts mthaddon uses!11:32
lifelesswe should talk about this later11:33
jmllifeless, yes.11:34
jmllifeless, after you review my branch, for example :P11:34
bigjoolsmy point was that I don't want to think about what to start11:34
lifelessI was thinking after LP is fast11:34
jmllifeless, please review my branch before then.11:34
lifelesshaha11:34
lifelessseriously though, if someone else reviews it its all good too.11:35
lifelessuhm, those logouts shouldn't be needed now though, should they ?11:35
bigjoolslifeless: are you lowering hard or soft timeouts on edge?  or both?11:36
bigjoolslifeless: also have you notified launchpad-users?11:37
brycehlifeless, LP is fast???11:37
james_wwhat they did for couchdb was make a couchdb-bin package with all the binaries, and a couchdb package with the init script.11:47
james_wdoing a similar thing would be l-dev-deps could depend on rabbitmq-bin11:47
bigjools+111:48
bigjoolsjames_w: while you're there!  can you check out the LEP for derived distros please?11:48
bigjoolsin particular please make sure we've captured all your requirements11:49
=== al-maisan is now known as almaisan-away
wgrantCan someone please land lp:~wgrant/launchpad/remove-obsolete-buildd-junk?11:58
jmlwgrant, sure, if it's approved.11:59
wgrantjml: It is indeed approved.11:59
lifelessbigjools: prod can't go lower until we deploy edge to prod11:59
lifelessbigjools: because its got many more timeouts as a baseline12:00
jmlwgrant, running ec2 land now.12:00
wgrantjml: Thanks.12:00
jmlnp12:00
bigjoolslifeless: that's not what I asked! :)  you know soft vs hard?12:00
lifelessyes12:00
lifelesssorry, got ELOCAL for a sec12:01
lifelessanyhow, edge - dropping both12:01
lifelessbryceh: that is the goal.12:01
lifelessderyck: hai12:05
derycklifeless, hi12:05
lifelessderyck: If you guys have any slack, or the ability to deal with oops and near-oops, I have a few things for you :)12:06
derycklifeless, yes, we can deal with oops and near-oops.12:06
lifelessderyck: so, I sent you a mail listing 4 pages that are near to timing out on prod12:07
lifelessbut also12:07
wgrantIs stub around this week?12:07
lifelesson friday night there was a big boom12:07
lifelesswgrant: once he gets home, yes.12:08
wgrantlifeless: Thanks.12:08
lifelessderyck: on friday night, one API call went 8boom812:08
derycklifeless, re: mail.  I marked it to look at today, and will respond with comments.  But generally, making those a priority is welcome and not a problem for me.12:08
lifeless4000 times12:08
derycklifeless, I saw that.  The message stuff, right?  Same API stuff bryceh was asking about at the epic, right?12:08
lifelesspoolie and jtv have done some analysis12:08
lifelessI guess, yes.12:09
derycklifeless, yeah.  gmb is testing a fix as we type. :-)12:09
lifelessawesome12:09
brycehlifeless, haha12:09
lifelessbryceh: everyone wants it to be fast.12:10
lifelessso we shall be fast.12:10
lifelessderyck: https://lp-oops.canonical.com/oops.py/?oopsid=1659B1002 for instance12:10
lifelessderyck: poolie reckons its just the calculation of the canonical url per item12:10
deryckhey, there's bryceh :-)  go to bed. ;)12:10
* deryck is reading the OOPS12:11
brycehderyck, yeah, 4am == well past bedtime12:11
=== salgado is now known as salgado-lunch
derycklifeless, so having processed all the info now, I think gmb and I can chase up a fix today for this.  And I'll respond in depth to the timeout email before EOD for me.12:17
lifelessawesome12:18
lifelesswe're getting up some momentum on performance12:18
lifelessif we can just get a bit of a cadence going we'll be at 5 seconds in no time12:18
gmbderyck, lifeless: Have fix will travel: http://pastebin.ubuntu.com/465875/12:18
wgrantlifeless: Crank the timeout down to 1s.12:18
wgrantThen see how quickly things get fixed :P12:18
lifelesswgrant: that would just fuck everyone over12:19
wgrant:(12:19
gmbThere's already tonnes of test coverage.12:19
lifelessgmb: isn't messages.first() or something even cheaper?12:19
gmblifeless, It might be; I can never remember the Storm runes. Let me try it.12:19
lifelessits not first, I don't remember them either12:20
lifelessfood time12:20
wgrantbigjools: Am I OK to go through with https://code.edge.launchpad.net/~wgrant/launchpad/refactor-_dominateBinary/+merge/29667? It seems to be a good cleanup, and is somewhat necessary for ddeb stuff.12:20
bigjoolsmy eyes12:21
bigjoolswhat have you changed?12:22
wgrantOh, right, I haven't added a description yet. Oops.12:22
wgrantYou know the atomic arch-indep domination stuff?12:22
bigjoolsvaguely12:22
bigjoolsI've never done anything in that code12:23
gmblifeless, FTR, first() appears to shave ~2s off test run time, though that could be the weather or the proximity of chickens to the developer for all I know.12:23
bigjoolsit's headfuck territory12:23
wgrantbigjools: Yes. Exactly. I'm trying to unheadfuck it.12:23
wgrantAt the moment, publications have a supersede() method.12:23
wgrantIt basically just sets datesuperseded and the status.12:24
bigjoolswgrant: in tandem with my b-m changes, we might start unheadfucking soyuz12:24
wgrantThe Dominator handles setting supersededby, and it also handles atomic domination rules.12:24
wgrant(atomic domination means that if an arch-indep publication is superseded, other publications of the same binary immediately get superseded too)12:24
wgrantThis makes for exceedingly ugly code, and even uglier tests.12:25
wgrantSo I've moved all of that into the model.12:25
deryckgmb, so like lifeless I think use .first, but otherwise this looks good to me.12:25
wgrantSo Dominator just calls publication.supersede(dominant), and the model works out what else needs to die, sets supersededby, etc. Dominator just finds the candidates and tells them to do their stuff.12:25
gmbderyck, Cool, preparing a branch now.12:26
wgrantA subsequent branch replaces the tests with some that suck less.12:26
gmbs/branch/mp12:26
wgrant*Then* i can extend it to dominate ddebs properly, which is the whole aim of this.12:26
deryckgmb, I wonder if we should look at bug 606911 while we're here, and then cowboy to staging and hit with an api script to see if we're better?12:26
_mup_Bug #606911: Bug.indexed_messages unused? <Launchpad Bugs:New> <https://launchpad.net/bugs/606911>12:26
deryckgmb, especially if that is just dropping unused code.12:26
bigjoolswgrant: ok seems like a rational thing to do12:26
bigjoolswgrant: my concerns are: performance and performance12:27
wgrantbigjools: No performance changes here.12:27
wgrantIt just shuffles methods into the model and wraps them up.12:27
bigjoolsok - I'd still like to do testing pre and post-branch on DF to make sure12:28
gmbderyck, Yeah, I'm thinking that too.12:28
* bigjools doesn't apologise for being paranoid12:28
wgrantHeh, OK.12:29
bigjoolsI hate finding my own code when searching on google for stuff12:30
wgrantHaha.12:30
gmbderyck, Ahaa. Except that indexed_messages is exported as 'messages'.12:30
gmbSo that would be a big bag of fail.12:30
wgrantI hate finding all this Soyuz code that hasn't been touched by anyone who's still around, and is revolting.12:30
gmbwgrant, That's *why* they're not still around.12:31
wgrantgmb: Heh.12:31
gmbderyck, I suggest we just try cowboying the initial_message fix for now.12:31
deryckgmb, that's fine with me.12:32
deryckgmb, I can investigate the other bug today after I settle in.  Then, you can go back to subscriptions hacking after this fix.12:33
gmbderyck, Okay. I'll work up an mp for the performance fix anyway.12:35
deryckgmb, yes, do.  I wasn't suggesting dropping this fix.  Just that you don't have to worry about the other bug for now.12:36
gmbderyck, Right. I managed to put the word "anyway" in there without meaning to. What I meant was "now"12:37
deryckheh, fair enough12:37
lifelessgmb: is it first () ?12:54
gmblifeless, Yes12:54
lifelesshah, who knew :)12:54
gmblifeless, Well intuited :)12:54
lifelessgmb: you win some, you win some more13:02
jmlwgrant, oops. forgot to update download-cache. trying again.13:03
jmlwait. no.13:03
jmlec2 land has been broken by recent changes to Launchpad.13:05
lifelessgmb: https://code.edge.launchpad.net/~gmb/launchpad/bug-606914/+merge/3025913:05
=== mrevell is now known as mrevell-lunch
wgrantjml: Awesomeness.13:06
gmblifeless, Thanks. Will remove the whitespace; bad habit.13:07
jmlwgrant, I'm going to fix those before landing your branch.13:07
lifelessgmb: my overly general rule of thumb is 'if it needs vws in a function, it probably needs two functions'13:07
lifelessjml: what changes broke ec2land?13:08
gmblifeless, Good rule :)13:08
jmllifeless, a change to the webservice.13:08
lifelessjml: .next()13:08
jmllifeless, AttributeError: 'Entry' object has no attribute 'queue_status'13:08
lifelessgrah13:08
lifelessthanks13:08
jmllifeless, I think jkakar has a patch for better testing support with launchpadlib13:09
lifelessjml: a bit, yes.13:09
lifelesshe's trying to get it landed13:10
lifelessbut launchpadlib is a bit single-writer-gated atm13:10
jmlhmm.13:11
pooliejam OOPS-1661ED105713:11
pooliehi there deryck13:11
pooliethanks for looking at the attachment bug13:11
jmlqueue_status is still being exported :\13:11
jmlbenji, good morning.13:12
benjigood morning, jml; how goes it?13:12
lifelessgmb: when you finish with that, I have a question on your reset watches stuff13:12
jmlbenji, alright.13:12
jmlfixing bugs. not taking prisoners.13:13
deryckhi poolie.  np.  glad the fix was easy.13:13
deryckgmb did the heavy lifting :-)13:13
jmlbenji, there are a few pending patches from Launchpadders to zope.testing. would you be interested in reviewing & landing them?13:15
jml(if not, I'll try to find sidnei)13:16
=== almaisan-away is now known as al-maisan
gmblifeless, Sure, ask.13:16
benjiglad to take a look13:16
jmlbenji, https://code.edge.launchpad.net/zope.testing/+activereviews13:16
lifelesswho will be looking for bad attempts to reset bug watches13:16
jmllifeless, wgrant: false alarm. it's my bug.13:17
gmblifeless, I'm not sure what you mean. Do you mean "who will be looking to see which bug trackers need their watches resetting?" or "who will be looking to make sure no-one maliciously resets watches?"13:17
gmbOr something else?13:18
lifelessthe second13:18
pooliederyck, i'd be interested to review the result when it's up for review, for my own education13:19
gmblifeless, Any UserCannotResetWatchesErrors should appear in the OOPS report, shouldn't they? So we should spot them fairly quickly.13:19
deryckpoolie, ok, it's up.  let me find the link.13:19
gmblifeless, Only LP Devs and Admins are able to do the resetting or for that matter see the reset button at all.13:19
deryckpoolie, https://code.edge.launchpad.net/~gmb/launchpad/bug-606914/+merge/3025913:20
pooliegot it thanks13:20
lifelessgmb: who is going to be *looking* for that though13:20
lifelessits going to show up in 'exceptions'13:20
lifelessgmb: and how is it different to any attempt to circumvent permissions - e.g. creating a new private branch, viewing a private bug etc.13:21
gmblifeless, I'm not sure that it is different... Ah, but, instead of the custom Exception it would make more sense to raise the same kind of exception as the other attempts to circumvent permissions do.13:21
gmbI don't know if anyone actively looks for those errors, but I think it's a safe bet that someone does because they get reported fairly quickly.13:22
gmbLet me do some digging.13:22
pooliegmb then i suspect bug 424671 won't be fixed by this13:23
_mup_Bug #424671: attachments: accessing attachment's message is very slow <api> <Launchpad Foundations:Triaged by leonardr> <https://launchpad.net/bugs/424671>13:23
pooliebut it's similar13:23
poolieas you probably already know13:23
lifelessgmb: I think the normal permission denied behaviour is really all that is needed13:24
lifelessgmb: unless you have some particularly special horror story we're expecting13:24
gmblifeless, No, I just wrote that stuff about half an hour before getting on a plane and didn't think about it very hard :)13:25
lifeless:)13:25
gmbI'll change it appropriately.13:25
gmbpoolie, I agree that they're similar but I think they should be fixed separately (if only because I knew exactly how to fix the first bug but wasn't sure I grokked a solution for the second).13:27
lifelessif it fixes the timeout, I'm happy13:27
lifelessthere are 4 other near-timeouts that can queue between 'better' and 'perfect' for this API, IMHO :)13:27
jmlvocabularies.txt is 1428 lines long.13:28
wgrantjml: Don't look at archive.txt...13:29
jmlI probably will eventually.13:29
jmlI'm on a quest to remove all the imports in canonical.launchpad.interfaces.__init__13:30
wgrantahahah.13:30
jmlmy current plan is to do it one import at a time13:31
jmlbut to fix all of the imports in every file I touch13:31
jmlso that it gets easier as I go along13:31
wgrantRight.13:31
lifelesswgrant: your VWS in supersede doesn't really gel for me - please remove or comment13:36
* gmb -> lunch13:37
wgrantlifeless: What's the issue with it?13:39
lifelessits not clear why these lines need special attention drawn to them13:39
wgrantShould I remove all blank lines from both methods?13:40
lifelessI generally follow pep8 here13:41
lifelessby which I mean 'yes, unless you really want special attention'13:41
wgrantHm, OK.13:41
lifelesshttp://www.python.org/dev/peps/pep-0008/13:41
lifeless"  Use blank lines in functions, sparingly, to indicate logical sections.13:42
lifeless"13:42
wgrantThey are, in my opinion, indicating logical sections.13:42
wgrantIt's unfortunate that one of those sections is a super() call, and that it has another section on top of it.13:42
lifelessthus my request to add a comment :)13:43
wgrantLike what? "# Set date and status."?13:44
lifelesswgrant: if its self evident, I don't understand why its really a different section; if its not self evident, surely it should have a comment?13:49
lifelesswgrant: however, its up to you, this isn't a blocking issue.13:49
=== mrevell-lunch is now known as mrevell
wgrantlifeless: I don't think it deserves its own section. But the segments of code above and below it do.13:53
wgrantlifeless: Thanks for the reviews.13:54
lifelessde nada13:57
=== Ursinha-afk is now known as Ursinha
=== salgado-lunch is now known as salgado
wgrantlifeless: Are you landing those, or must I coerce others?14:07
lifelesscoerce14:07
wgrantk14:07
=== vednis is now known as mars
=== beuno_ is now known as beuno
wgrantCan someone please ec2 land lp:~wgrant/launchpad/bug-598345-restrict-dep-contexts, lp:~wgrant/launchpad/refactor-_dominateBinary and lp:~wgrant/launchpad/really-publish-ppa-ddebs?14:27
lifelessderyck: I like your team strat14:49
derycklifeless, for testing?14:49
lifelessand cycle time14:49
deryckah, right.  Cool.14:50
lifelessjml: busy?14:51
lifelessjpds: if you need a hand on https://code.edge.launchpad.net/~jpds/launchpad/fix_116279/+merge/17940 gimme a shout14:54
marsjames_w, ping15:08
jmllifeless, hi15:13
lifelessjml: where could I find you?15:13
jmllifeless, community room15:13
jmlgary_poster, mars: hello. there's a doctest issue?15:14
marsjml, looking15:14
gary_posterjml: hey.  Did you see my discussion about the number of doctests in #launchpad-code15:14
gary_posterWith mars15:14
jmlgary_poster, it's gone down, right?15:14
gary_posterThat would be the fastest way to catch up15:14
gary_posterright15:14
jmlok.15:14
gary_posterand I think I know why, and that it is ok15:14
jmloh good. :)15:14
gary_posterbut would love confirmation15:14
marslooking now15:14
gary_posteryeah, cool15:15
marssimple summary compare15:15
jmlgary_poster, can you tell me why you think why?15:15
jmlrockstar, I'll catch up w/ you re private branch lookup after this.15:15
gary_posterjml: "buildbot went from reporting 26777 tests to 8490 tests when jml landed the branch to use stdlib doctest.  It looks like it might be OK: the amount of time didn't change, so I think this is because Zope's doctest counts each block as a test, while the normal doctest code counts the whole thing as one. "15:15
jmlyeah, that sounds right.15:16
jmlgary_poster, mars, I don't really know how I'd confirm that, other than comparing the fulltext buildbot output.15:17
marsyep, doing so15:18
marstest lines before: 894115:18
marstest lines after: 897615:18
marsso yes, a) zope counts doctests multiple times, and b) our test suite runtime sucks three times more than I thought it did15:19
benjiit's not quite that zope's doctest counts tests multiple times, its that it counted tests slightly differently than the stdlib doctest15:20
marsyep15:21
marsdidn't notice that before15:21
marsby the way, I found that a good sized part of our testrunner time is being spent parsing doctests15:27
marswhich is a pity because it happens in the test discovery phase, and after the doctest is discovered, then the new layer's subprocess means that the work has to be done again15:29
benjithat surprises me; doctests should be very cheap to parse15:29
marsI tried profiling the layer setup, and doctest parsing was a big part of it15:30
marsit was volume more than anything15:30
lifeless\o/15:31
lifelessbenji: 'parse' + 'cheap' does not exist in python.15:31
jmlrockstar, I've commented on the bug for private branches. I figured that was the best way. I'm available for face-to-face convo if you'd like one.15:32
marslifeless, that is part of that mysterious uncounted timesink when you first fire up the runner.  I couldn't isolate .pyc cleanup due to disk caching issues.15:34
benjibtw, mars: remember last week when we were wondering if the lower-memory EC2 instances would work for ec2 test?  I watched one of the instances when running the tests and it ended up using 2.6G of RAM, of which 1.3G was cache/buffers15:34
lifelessmars: nice15:34
marsI also suspect the importfascist may be sinking some time, again due to volume of use15:35
marsbenji, what does 50% memory use as cache/buffer percent mean?15:36
benjithat's primarily disk cache15:36
StevenKThat the kernel is using it as a disk buffer15:36
pooliesalgado, ping for review of https://code.launchpad.net/~leonardr/launchpad/true-anonymous-access/+merge/3008815:36
leonardrpoolie, salgado says it's ok15:37
pooliesweet15:37
leonardri just need to change a comment and i'll land it15:37
pooliefire one!15:37
pooliethanks for doing it15:37
salgadopoolie, yeah, did that over IRC some time ago.  just updated the MP, though15:38
lifelessjtv1: hi16:18
jtv1hi lifeless16:18
lifelessjtv1: https://code.edge.launchpad.net/~ursinha/launchpad/add-ec2land-rules-orphaned-branches/+merge/29255 needs a follow up review16:18
=== jtv1 is now known as jtv
lifelessper your request to urshina16:18
jtvlifeless: cool, thanks for letting me know16:18
lifelessbah16:18
Ursinhalifeless, I haven't finished that yet16:18
Ursinhadoing that today16:18
lifelessirsinha16:18
jtvoh16:18
lifelessUrsinha: oh, ok.16:18
lifelessI'll put it back to wip for now hten16:18
lifeless\o/16:23
lifelessno outstanding reviews16:23
lifeless-> chemist16:23
Ursinhalifeless, ok then, I'm finishing details to resubmit, what I couldn't finish last week :)16:26
Ursinhaand I have a hilight for urshina here, the mispelling happens quite often I consider myself that too16:28
lifelessUrsinha: I'm sorry ;)16:29
Ursinhano problem :)16:29
=== Ursinha is now known as Ursinha-nom
lifelessbigjools: hi16:51
bigjoolshello16:51
lifelessbigjools: if you feel particularly strongly either way about admins & PPA creation via the API, please do what you think is right.16:52
lifelessbigjools: I'm trying to express a logic chain in the review not to mandate that it go either way.16:52
bigjoolslifeless: well I don't feel strongly enough to cry if it's not done, as I said on the review16:52
lifelessbigjools: the underlying reason why I am arguing against a special case here is that the admins have said they want *less* interrupts.16:52
lifelessand given that any user can make a PPA via the web ui already, I don't understand why we'd need an admin override facility here.16:53
lifelessbigjools: sure; I'm being explicit that its your choice.16:53
lifelessI *feel* that we should default one way; however its always changable, and its in your part of the product :)16:54
bigjoolslifeless: I understand your concern.  Mine is that one day we'll need it and the facility is not there.  I don't expect LOSAs to routinely get asked to make PPAs!16:54
lifelessI'm also still feeling moderately crap and I was communicating badly in the review which is why I've upgraded to real-time ;)16:55
* bigjools hears ya16:55
lifelessbigjools: thinking through it more I have another reason/condition around admins making arbitrary PPA's16:55
lifelesswe require a CoC signature from PPA users.16:55
lifelesswould that be done on the admin, or on the user the admin is making the PPA on [in the current code]? If on the admin, then that would be a bug ?16:56
bigjoolsinteresting point16:59
maxblifeless: When you're done with this discussion, I have a question for you - In https://answers.launchpad.net/launchpad-code/+question/117193 you asked me to file a bug for the "class of problem" of requiring LOSA intervention to make code imports work. I don't understand why. Shouldn't bugs be about concrete issues that we can fix?16:59
lifelessgary_poster: hi17:07
gary_posterhey lifeless.17:07
lifelessgary_poster: I want to talk cronscripts with you in a bit17:07
lifelessI've just realised I should answer maxb, and get dinner first.17:07
lifelessgary_poster: the theme will be 'making them safer to upgrade'17:07
maxbI will be around later, I would hate to keep someone from their dinner :-)17:08
lifelessmaxb: the class of problem is 'needing to run ssh <details> and accept the key'17:08
gary_posterlifeless: BTW, I intend to write up the PQM/tarmac requirements; I realized this weekend that there are some bits that I still need to clarify17:08
lifelessgary_poster: awesome17:08
gary_posterlifeless: cronscripts: cool17:08
lifelessgary_poster: I saw the split to a subspec17:08
maxblifeless: oh, ok I see what you meant now17:08
lifelessmaxb: that class of issue is actionable and automatable.17:08
lifelessmaxb: :)17:08
lifelessok, awol for a little bit17:09
jmlby "actionable", presumably you don't mean that we can sue.17:09
lifelessjml: who knows.... the phantom knows17:09
jmlshadow.17:09
lifelessjml: I'm grabbing a club sandwich if you want to join me17:09
jmlphantom doesn't know anything.17:09
jmllifeless, sounds good17:09
jmllifeless, once this ec2 land detaches :)17:10
=== al-maisan is now known as almaisan-away
lifelessjml: I has a table17:17
jmllifeless, k. still detaching.17:17
jmldone17:17
=== flacoste is now known as flacoste_lunch
=== danilos is now known as daniloff
=== beuno is now known as beuno-lunch
=== Ursinha-nom is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== flacoste_lunch is now known as flacoste
=== beuno-lunch is now known as beuno
=== mtaylor is now known as mtaylor|lunch
lifelessgary_poster: hi, so if you're still @ work19:33
gary_posterHey lifeless.  Yeah19:33
lifelessto change to the 'release features when they are ready' workflow19:34
lifelesswe need to drastically simplify and reduce the downtime windows involved in rollouts19:34
lifelessjames troup and I did a mental audit19:34
gary_posterlifeless: we release edge every night19:34
lifelessand I'm going to file a bunch of bugs related to this19:34
gary_posterisn't that the model we want to pursue?19:35
lifelessgary_poster: we do, but - and this is one of the problems with the current setup - that is only a small fraction of the lp instances around.19:35
gary_posterah, ok19:35
lifelessgary_poster: so we need to do what we've done for edge and solve the issues19:35
lifelessfor instance19:35
gary_posterok, fair enough19:35
lifelesswe have a lot of cronscripts19:35
gary_poster(BTW: https://dev.launchpad.net/Foundations/Proposals/SimplifyMergeMachinery)19:35
lifelessgreat, queued it up to read19:35
gary_postercool19:36
lifelessso in particular, we have a lot of cronscripts19:36
lifelesswhich run 'prod'19:36
lifelessso we will be updating their code more frequently19:36
gary_posterrun 'prod': that means, there is no "edge" equivalent19:36
lifelessI'm wondering if there is something we can do to make it safer to do19:36
gary_poster?19:36
lifelessright19:36
lifelessso at the moment their 'deploy frequency' is 1/month19:37
gary_posterEh, yeah, I hate the cronscript story.  Touching them is terrifying.19:37
gary_posterMy long term preference is that they disappear19:37
lifelessagreed19:37
lifelesshowever we have to break the deadlock somewhere ;)19:37
gary_posterright19:38
lifeless170 cronscripts! [estimated]19:38
gary_posteryeah19:38
gary_posterso, why is touching them terrifyingL19:38
gary_poster:19:38
lifelessso the bug is going to be a bit generic19:38
gary_posterit is terrifying because the tests for them largely suck, AFAIK19:38
lifelessbut in general we want to aim at being able to automatically upgrade them19:38
gary_posterIs there a problem other than the one I perceive?19:39
lifelessin the short term that could be manual but smoother than today.19:39
lifelessgary_poster: yes, several.19:39
gary_postercool, should I wait for the bug report? :-)19:39
lifeless- they run from cron, so either they try to run while we're upgrading, or they may still be running while we upgrade19:39
gary_posterah19:39
lifeless- they run from the 'current' symlink, not the 'active revno dir', so they could in principle do late buggy imports (but this is rare, we can ignore for now)19:40
lifeless- some of them have terrible knock on effects if interrupted, and take 15-20 minutes every hour.19:40
* gary_poster tries to look at the cron scripts so they feel bad about themselves19:41
gary_poster...not much effect...19:41
gary_posterI have some vague ideas on how to address this, that have to do with trying to come up with cheap machinery and/or patterns for cronscript devs to follow19:42
gary_posterI feel constrained both because I don't have any knowledge or even oversight of the cronscripts, and because I don't want to spend too much time on them, knowing that I want them to die.19:43
gary_posterPerhaps it would be reasonable to discuss the machinery that we want to have to replace them in the long term19:43
lifelessperhaps19:44
gary_posterto see if it would inform the short term stepe we might take19:44
lifelessIts late for me right now19:44
gary_posterFair enough19:44
* benji wonders if gary_poster is thinking of zc.async19:44
lifelessI wanted to frame the discussion19:44
lifelessbroadly, I think we need something to wrap them19:44
lifelessto quiesce them when we're preparing to deploy19:44
gary_posterbenji, sure, but we won't be using that here, I don't think :-)19:44
lifelessto alert us when important ones are running still19:44
lifelessand to insulate us mid-upgrade19:45
gary_posterI assume some sort of LOSA gesture like "I plan to upgrade things in half an hour so let's start quieting things down" would be reasonable19:45
lifelesshttps://wiki.canonical.com/InformationInfrastructure/OSA/LaunchpadRollout19:46
lifelessfor now, absolutely19:46
lifelesshttps://wiki.canonical.com/InformationInfrastructure/OSA/LaunchpadRollout#Comment out Cronjobs and Kill DB Backups (approx 30-40 mins before rollout)19:46
lifelessthats terrifying19:46
lifelesswe have a tool to comment out cronjobs!19:46
gary_postersigh19:46
gary_posterAnother aspect to this is that the cronscripts themselves have had no constraints on them to my knowledge19:47
lifelessindeed19:47
gary_posterBut again, I suspect that we want to retain that freedom for now19:47
lifelessso I plan to conduct an audit19:47
gary_posterOr else we will be bogged down19:47
lifelessetc19:47
lifelessbut yeah19:47
gary_posteryeah, cool19:47
lifelessmy basic thought is to have a single constant wrapper around all the scripts19:48
lifelessso that rather than commenting them out and hoping they stop etc19:48
lifelessthe wrapper can check a flag somewhere19:48
gary_posteryou make some flag to make it a no-op19:48
lifelessand not run19:48
gary_posteryeah19:48
lifelessright19:48
lifelessfor now, I'm going to file a bug on each area of concern for the new workflow19:48
gary_posterOK, sounds reasonable19:49
lifelessthis one is the least well formed19:49
lifelesswhich is why I wanted to kick off some neuron19:49
lifelesss19:49
gary_posterCool19:49
gary_posterOh, I'll just choose one :-)19:49
lifeless:)19:49
lifeless\o/ lsprof has landed19:50
lifelessthanks mars19:50
gary_postergreat news, mars19:50
gary_posterand thanks to you too lifeless19:50
lifelessde nada19:50
marscool, one step closer19:50
gary_poster...so, yeah, such a cron script wrapper could be fairly complex.  I think the trick will be to come up with a plan for one that is as simple and failsafe as possible.  I'l think about it, and I'll hope to brainstorm with you about it later.19:52
lifelessgreat19:52
=== mtaylor|lunch is now known as mtaylor
lifelesselmo: around?20:10
lifelesselmo: I'm trying to remember whats on loganberry that is rollout-sensitive20:10
benjiwhat's the normal turn-around for a (relatively simple) RT?20:13
lifelessyes20:13
lifelessmore precisely, its either in the priority queue, or 'sometime over the horizon' - like us, they have more incoming than outgoing.20:14
lifelessso you should talk to francis20:14
mtaylorrockstar: what's the reasoning behind the need for a merge request to have a commit message?20:16
mtaylorlifeless: not sure it's relevant, but on my openstack dev deployment, I'm using a hudson master and scheduled jobs instead of cron to do repetitive tasks20:17
lifelesslosa ping20:22
lifelessabentley: hey, can I ask you a question about the importd's20:22
lifelessflacoste: rt 4047720:30
flacostelifeless: before or after staging PQM deployment?20:35
flacoste(assessing priority)20:36
flacosteRT 3915020:36
lifelessyeah20:36
lifelessstaging pqm will only be useful when I get some cycles to do the thing for gary20:36
lifelessso before I think20:36
lifelessI was crook in the weekend, so didn't get anything interesting done.20:37
abentleylifeless, pong20:37
lifelesshey abentley20:37
flacostelifeless: ok20:37
flacosteleonardr: is RT 39922 still relevant?20:37
lifelessI wanted to know about the interactions between upgrades and the importd service20:38
leonardrflacoste, humor me and tell me the summary while i look that rt up20:41
leonardrflacoste: got it20:42
leonardrflacoste: no, the performance test has been run and there is no need to do anything else right now20:42
lifelessflacoste: also rt 4048020:44
lifelessabentley: so if I wanted to upgrade the code on the importds, does it imply downtime, and interruption to long running tasks, and if so how much downtime and how much interruption.20:45
flacosteleonardr: thanks, i'll make it as obsolete or invalid watherver their status is20:56
flacostelifeless: while I look at that other RT, mind looking at my follow-up to your review :-)20:56
lifelesssure20:56
flacostelifeless: bumbed above PQM staging deployment20:58
lifelessthanks20:59
lifelessgnight21:00
abentleylifeless, I don't know the deployment story of the importds.21:01
lifelessabentley: who would? [that knows the code too, so we can talk about how to make it slick]21:02
abentleylifeless, mwhudson.21:02
lifelessthanks21:02
flacostegary_poster: do you remember if l-d-d is updated every buildbot run?21:06
gary_posterflacoste: I think so, but things may have changed.  want me to look?21:06
flacostegary_poster: i don't think it would have changed, i remember not being the case21:07
flacosteso if we fixed that at some point, i'm pretty sure it works now21:07
m4n1shis the staging server getting an update?21:08
gary_posterlooking'21:08
m4n1shit breaks when using API21:08
gary_posterflacoste: ah, no, it does *not* update l-d-d21:08
lifelessUrsinha: have you or matsubara asked for the daily staging setup yet ?21:09
lifelessin RT I mean, if not, I will.21:09
gary_poster(matsubara is out of office)21:09
gary_posterm4n1sh: yes, getting update21:09
m4n1shgary_poster, thanks. does it happen daily?21:09
gary_posteryes, m4n1sh21:09
m4n1shgary_poster, Thanks for the info21:10
gary_posternp21:10
mtaylorrockstar: tags don't seem to be propgating through tarmac21:10
flacostelifeless: can you remove your Needs fixing?21:11
flacostevote21:11
flacosteso that ec2 land doesn't stomp me on the fingers21:11
mwhudsonmorning21:12
m4n1shgary_poster, is there any attribute on launchpad API's me object which is private to all?21:12
Ursinhame21:12
Ursinhalifeless, no21:12
m4n1shgary_poster, I mean, I want to use it as an auto password... that attribute should not be visible in any case on launchpad.net/~foo21:13
lifelessUrsinha: ok, I've filed RT 4048221:13
lifelessflacoste: that seems buggy21:13
lifelessflacoste: like, it should trust that when I say approve, I'm not being schizotic.21:13
lifelessflacoste: I've fixed it but perhaps you could make a sane bug report up21:14
lifeless?21:14
flacostei will21:14
lifelessthanks!21:14
lifelessI'm really going to sleep now.21:14
deryckLater on, all....21:14
flacostethe bug is that it looks at the approver to determine the r=21:14
flacosteand since there are no reviewers approving...21:15
lifelessflacoste: right, but *my* vote as a reviewer has to be treated as approve21:15
lifelessflacoste: given I approved the merge.21:15
lifelessciao21:15
flacostechao, sleep weel21:15
flacostewell21:15
gary_posterm4n1sh: mmm, I stared at your questions and I think I understand sort of.  You want to hack/abuse an attribute in some way, right?21:17
m4n1shgary_poster, actually i want to use launchpadlib in a django app21:17
gary_postercool21:17
m4n1shbut django needs a password in authentication module21:17
m4n1shbut i want to use launchpad OAuth21:18
m4n1shso when the user returns after giving the permissions21:18
m4n1shi dont want him to ask the password21:18
m4n1shbut there should be some field which is private to the user21:18
gary_posteroh!  so...if the person is authenticated by launchpadlib, he's ok by you?21:18
m4n1shwhich i can use as the implicit password21:18
m4n1shyes21:18
m4n1shit is21:18
m4n1sheverything is done..21:18
gary_posterOK21:19
m4n1shbut just to satisfy django's authentication module i need a password21:19
gary_posterYou can't override it?  In the abstract, that feels like the right thing to do, but I don't know Django's auth stuff so I'm just waving my hands.21:19
m4n1shsame here. I thought there should be way around21:20
m4n1shdjango has a openid module21:20
m4n1shgary_poster, have a look here21:21
m4n1shhttp://docs.djangoproject.com/en/1.2/topics/auth/#authentication-in-web-requests21:21
m4n1shesp in authenticate() method21:21
gary_posterWell, it sounds like you are in hack land21:21
gary_posterIf you are in hack land...21:21
=== almaisan-away is now known as al-maisan
m4n1shthe thing wont keep quiet without a password21:21
m4n1shhttp_etag would suffice?21:21
gary_posterno21:22
m4n1shif i am in a hack land then?21:22
m4n1shgary_poster, i am not able to think any way to overcome this password part. Something needs to be done21:23
gary_postercan you just say that the password for *everyone*is an empty string, or some other hardcoded blather, but make sure that it is not actually usable?  If you have a launchpadlib object for the person, then you stuff the hardcoded password in; otherwise, you make sure that the machinery doesn't work?21:23
gary_posterTo be clear, this sounds absolutely horrible to me :-)21:23
m4n1shgary_poster, same here. and i have no idea about the security aspect too21:23
m4n1shif i go this way21:24
gary_posterIf I were you I'd be banging around on Django docs or code or mailing lists or something to figure out a way to subclass the auth machinery21:24
gary_posterstashing the password...21:24
gary_poster...is hackland. :-/21:24
gary_posterI'll look in a little bit if you really want me to (I don't know of an answer offhand)21:25
gary_posterbut I have to hope Django lets you substitute this bit21:25
m4n1shgary_poster, I think so21:25
m4n1shI found django-oauth too, but launchpadlib is so darn easy that I don't want more stacked up modules21:25
gary_postersure21:25
m4n1shprobably I would go by the hack you suggested. Let's see.21:26
m4n1shprobably I might shoot off a mail to django mailing lists. I know lots of flames might return, but still I will learn something new21:26
m4n1shgary_poster, well looks like you are busy. I don't want to disturb you anymore21:27
m4n1shThanks a lot for your help21:28
gary_posterm4n1sh: sorry it wasn't more, but yeah, busy. :-/  http://docs.djangoproject.com/en/dev/topics/auth/ seems to imply that looking at set_unusable_password might help; and that trying to see how LDAP support works might give you a pattern to follow21:30
m4n1shgary_poster, I think you got exactly what I was looking for.21:31
m4n1shI am an idiot. Looked at the whole page, but couldn't find out that very line21:32
gary_poster:-)21:32
m4n1shit is like a fine print :)21:32
gary_postertakes another person sometimes21:32
m4n1shgary_poster, I think the last hurdle also solved21:32
gary_posterawesome!21:32
m4n1shnow I can go ahead and start working on the app21:32
m4n1shthank you very much (no this is not sarcasm, I mean it)21:33
gary_posterlol21:34
gary_posternp glad I could help21:34
flacostemars, gary_poster: i got errors compiling numpy!?!21:41
flacosteon ec2 land21:41
marsflacoste, that's odd.  I have not heard of that.21:41
flacostemars: actually, that's not the real error21:42
flacostenever mind21:42
marsok21:42
flacostei forgot to add commit the dep in download-cache21:42
=== al-maisan is now known as almaisan-away
wgrantCan someone please ec2 land lp:~wgrant/launchpad/bug-598345-restrict-dep-contexts, lp:~wgrant/launchpad/refactor-_dominateBinary and lp:~wgrant/launchpad/really-publish-ppa-ddebs?22:53
maxburgh. Do we really need a rabbitmq server just to develop any bits of launchpad?23:02
wgrantYou will soon.23:04
wgrantBut it will probably be started by make run soon.23:04
wgrantmwhudson: Could you be convinced to land the three branches I referenced above?23:43

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