[00:03] <mars> lifeless, hey, still around?
[00:04] <lifeless> yeah
[00:05] <mars> lifeless, I have a minute or two.  What's up?
[00:08] <mars> lifeless, we had a bunch of discussion today about the qa-shepherd thing - cut the scope down again, it should be ready sooner than what we expected before
[00:10] <mars> lifeless, now that we have done that, I can send you that email update you asked for
[00:11] <lifeless> mars: I was offering to dive in and help
[00:12] <lifeless> mars: rather than a status update
[00:12] <mars> lifeless, well, now we have the scope down to where the three of us have to worry about stepping on each-other's toes :)
[00:13] <lifeless> nice
[00:14] <mars> lifeless, thank you for the offer, I'll keep it in mind.  I think we'll be fine for the first few days of next week.
[00:14] <lifeless> ok cool
[00:15] <lifeless> (I don't do 'status update requests' unless I -really- can't help it - just for clarity :)
[00:15] <mtaylor> lifeless: shouldn't you be on saturday?
[00:15] <lifeless> yes
[00:15] <mars> lifeless, makes sense :D
[00:15] <mars> mtaylor, it's not Saturday here, and he asked first :)
[00:15] <mtaylor> weird PPA build issue- only shows up on i386 lucid builder:
[00:15] <mtaylor> dpkg-deb: parse error, in file 'debian/drizzle/DEBIAN/control' near line 6 package 'drizzle':
[00:15] <mtaylor>  `Depends' field, reference to `drizzle-server': version contains ` '
[00:16] <mtaylor> mars: hehe. his fault then
[00:16] <lifeless> mars: so generally the fastest way to make something go faster is to help :- which is why I offered ;>
[00:16] <mtaylor> http://launchpadlibrarian.net/53201197/buildlog_ubuntu-lucid-i386.drizzle_2010.08.1683-1ubuntu1~lucid0_FAILEDTOBUILD.txt.gz  in case anyone wants to look
[00:23] <lifeless> mars: still around?
[00:23] <mars> lifeless, yep, thinking
[00:24] <lifeless> mars: so if there isn't anything sensible I can hop in and do; don't bother mailing me ;)
[00:24] <mars> lifeless, sound fair to me.
[00:25] <mars> sounds even
[00:25] <mars> need to run again
[00:26] <mars> lifeless, I'll ping you back with specifics if I get a moment back at the keys
[00:44] <mars> lifeless, at the keys, if you are still there, skype?
[00:48] <lifeless> mars: hi
[00:48] <mars> lifeless, yep?
[00:49] <lifeless> I amhere
[00:49] <mars> skype?
[00:49] <mars> it's faster, trust me
[00:53] <mars> lifeless, https://code.edge.launchpad.net/~ursinha/qa-tagger/setuptools-conversion
[00:54] <mars> lifeless, https://code.edge.launchpad.net/~launchpad-qa/qa-tagger/devel
[01:13] <mars> lifeless, http://bazaar.launchpad.net/~launchpad-qa/qa-shepherd/devel/annotate/head:/shepherd/testing.py
[01:17] <mars> https://bazaar.launchpad.net/~ursinha/lp-qa-tools/lplib-fakes/files
[01:19] <lifeless> make check working for me now :)
[01:24] <mars> lifeless, btw, feel free to move the cards on the board if you get a chance to hack on something.  That way we can pick or pass the work on Monday morning.
[01:25] <mars> "we" being those of us on the opposite side of the planet from you :)
[01:38] <lifeless> :)
[23:26] <cody-somerville> How can you tell when its more efficient to do separate queries and when its more efficient to just do a single query with joins
[23:26] <cody-somerville> ?
[23:27] <lifeless> the science of measurement
[23:27] <lifeless> also some context will help
[23:27] <lifeless> there are places where its always better to do it one way or another.
[23:28] <lifeless> e.g. per-object queries in an iterator for an api or web page -> always want one query ('build the table of data to show')
[23:28] <lifeless> this is a scaling question - ask yourself what happens when you have BigN (e.g. 400 people on one page)
[23:29] <cody-somerville> I was just wondering if there was a quick and easy way to tell... like look at the output of EXPLAIN and look for this or that.
[23:29] <wgrant> When's it going to be better to do multiple queris?
[23:32] <cody-somerville> re: buildd-master failure, 2010-08-07 23:26:24+0100 [-] exceptions.AttributeError: 'NoneType' object has no attribute 'email'
[23:33] <lifeless> cody-somerville: where do you get access to that ?
[23:33] <lifeless> escalating to phone.
[23:33] <wgrant> cody-somerville: Thanks.
[23:34] <wgrant> cody-somerville: Is there something before that indicating which build it's trying to send a failure message about?
[23:34] <lifeless> wgrant: different domain lookups that aren't related to each other
[23:34] <cody-somerville> 2010-08-07 23:26:24+0100 [-] Starting templates build trunk-3771906 for lp:docky.
[23:34] <cody-somerville> 2010-08-07 23:26:24+0100 [-] startBuild(Lucid, daily, gnome-terminator (on http://doubah.ppa:8221/))
[23:34] <cody-somerville> 2010-08-07 23:26:24+0100 [-] Scanning failed with: 'NoneType' object has no attribute 'email'
[23:34] <cody-somerville> lifeless, devpad
[23:35] <wgrant> Aha.
[23:35] <lifeless> cody-somerville: where - /srv/ somewher e?
[23:35]  * wgrant prepares the SQL.
[23:35] <cody-somerville> lifeless, /srv/launchpad.net-logs/soyuz/cesium/buildd-manager.log in this case, yea
[23:35] <lifeless> cody-somerville: thanks
[23:36] <lifeless> elmo will be around shortly
[23:36] <elmo>  
[23:36] <cody-somerville> wgrant, would having a launchpad admin set a preferred e-mail address for the requester work?
[23:36] <wgrant> cody-somerville: It might, but we could also just suspend the build to preserve the evidence.
[23:36] <lifeless> suspend it please
[23:36] <lifeless> we need to fix root causes
[23:39] <cody-somerville> I've ran into this issue myself with scripts that use the launchpadlib
[23:39] <cody-somerville> I had assumed that every user had preferred email address I could grab.
[23:39] <wgrant> elmo: SELECT * FROM buildqueue, job, branchjob WHERE buildqueue.id = 3771906 AND job.id = buildqueue.job AND branchjob.job = job.id;
[23:41] <cody-somerville> Part of the issue is that you have to get the actual e-mail address from an attribute on the user that doesn't exist if there is no preferred e-mail address available
[23:41] <wgrant> (I really don't know why a translations job dispatch would be trying to acesss an email address)
[23:41] <cody-somerville> wgrant, its a recipe build thats causing it to die
[23:41] <cody-somerville> wgrant, line 66 lib/lp/code/model/recipebuilder.py
[23:42] <wgrant> Oh, recipe build logging is fucked.
[23:43] <cody-somerville> lifeless, are you going to own the incident report?
[23:44] <lifeless> cody-somerville: thanks for volunteering :)
[23:44] <wgrant> elmo: You should have a cancel button on https://code.edge.launchpad.net/~gnome-terminator/+recipe/daily/+build/515
[23:44] <cody-somerville> lol, alright. :P
[23:45] <elmo> man, seriously
[23:45] <elmo> this is Ng's fault?
[23:45] <lifeless> its a bug in translations somewhere
[23:45] <wgrant> No, it's not.
[23:45] <wgrant> The logs are just misleading. It's actually a recipe build.
[23:45] <elmo> wgrant: I do?
[23:45] <elmo> wgrant: sorry
[23:45] <elmo> wgrant: I do.  hit it?
[23:45] <lifeless> wgrant: oh, grah
[23:45] <wgrant> elmo: Please.
[23:46] <cody-somerville> wgrant, the recipe build belongs to Ng
[23:46] <lifeless> anyhow,  bug, not user error, right ?
[23:46] <wgrant> lifeless: The first two lines of that log that cody-somerville pasted are equivalent, but for different job types. Yay for consistency.
[23:46] <wgrant> cody-somerville: It is, yes.
[23:46] <wgrant> lifeless: Right.
[23:46] <elmo> wgrant: done
[23:46] <cody-somerville> wgrant, sorry, misread you
[23:47] <wgrant> We're 20 seconds in... let's see if it sticks.
[23:48] <wgrant> Apparently not.
[23:50] <wgrant> Is there another build appearing in the logs now?
[23:50] <wgrant> Ah.
[23:51] <wgrant> The other two builds are now at the head of the queue.
[23:51] <elmo> 2010-08-07 23:50:38+0100 [-] startBuild(Maverick, daily, gnome-terminator (on http://muntries.ppa:8221/))
[23:51] <elmo> 2010-08-07 23:50:38+0100 [-] Scanning failed with: 'NoneType' object has no attribute 'email'
[23:51] <wgrant> https://code.edge.launchpad.net/~gnome-terminator/+recipe/daily/+build/516 and https://code.edge.launchpad.net/~gnome-terminator/+recipe/daily/+build/517 need destruction.
[23:51] <wgrant> Yep.
[23:51] <elmo> done
[23:53] <wgrant> 40 seconds in. Looking good.
[23:53] <elmo> I'm tailing the log looking for noe
[23:53] <elmo> noNe
[23:53] <elmo> will this happen again tomorrow?
[23:54] <wgrant> Possibly.
[23:54] <elmo> awesome
[23:54] <wgrant> The API won't tell me who requested them :(
[23:55] <wgrant> Hmm.
[23:56] <wgrant> I guess it probably uses the recipe owner for daily builds.
[23:56] <wgrant> So it might be a good idea to disable daily builds of that recipe for now, or it will indeed happen again tomorrow.
[23:56] <elmo> do you know the url for that offhand?
[23:57] <elmo> or even pointers to it
[23:57] <wgrant> https://code.edge.launchpad.net/~gnome-terminator/+recipe/daily/+edit
[23:57] <wgrant> There should be a checkbox.
[23:57] <elmo> WTF
[23:57] <elmo> that says *I'm* the owner
[23:57] <wgrant> Oh no, not that bug...
[23:57] <elmo> that's either an awesome troll by Ng or an epic UI bug in LP
[23:57] <wgrant> It's a known bug, yes.
[23:58] <wgrant> Either find someone in the team to do it, or just twiddle the flag manually.
[23:58] <elmo> manually == SQL?
[23:58] <wgrant> Yeah.
[23:58]  * elmo rolls his eyes
[23:58] <wgrant> Sorry :(
[23:58] <elmo> it's not your code
[23:58] <elmo> (I assume)
[23:59] <wgrant> Heh, no.
[23:59] <wgrant> And we have logtails... so everything's working again for now. Thanks.