[00:20] <lifeless> wgrant: got a url to a test failure ?
[00:21] <wgrant> https://lpbuildbot.canonical.com/builders/lucid_lp/builds/1484/steps/shell_6/logs/summary https://lpbuildbot.canonical.com/builders/lucid_db_lp/builds/1446/steps/shell_6/logs/summary
[00:22] <wgrant> I first saw it in an ec2 run against devel r14174
[00:22] <lifeless> it looks like a regression
[00:22] <wgrant> In an untested JS-only branch of mine
[00:22] <lifeless> the (158, 160, 'SQL-main-slave', 'SELECT Product.answers_usage, Product.blueprints_usage, Product.owner, Product.active, Product.autoupdate, Product.bug_reported_acknowledgement, Product.bug_reporting_guidelines, Product.bug_supervisor, Product.bugtracker, Product.date_next_suggest_packaging, Product.datecreated, Product.description, Product.development_focus, Product.displayname, Product.downloadurl, Product.driver, Product.enable_bug_expiration, 
[00:22] <wgrant> But it is not reproducible locally, and a second ec2 run worked.
[00:22] <wgrant> Yes.
[00:22] <lifeless> bah
[00:22] <lifeless> (244, 244, 'SQL-main-slave', 'SELECT Product.answers_usage, Product.blueprints_usage, Product.owner, Product.active, Product.autoupdate, Product.bug_reported_acknowledgement, Product.bug_reporting_guidelines, Product.bug_supervisor, Product.bugtracker, Product.date_next_suggest_packaging, Product.datecreated, Product.description, Product.development_focus, Product.displayname, Product.downloadurl, Product.driver, Product.enable_bug_expiration, Prod
[00:23] <wgrant> That's clearly the regression.
[00:23] <wgrant> I don't see how, though.
[00:23] <lifeless> could be storm cache exhaustion ?
[00:23] <lifeless> have you seen it happen locally?
[00:23] <wgrant> No.
[00:23] <wgrant> Never locally.
[00:23] <wgrant> Locally it's way below the threshold.
[00:24] <wgrant> By like 20
[00:24] <wgrant> I had to reduce the limit to 20 or 30 or so to get it to fail locally.
[00:24] <lifeless> that where X LIMIT 1 is odd
[00:25] <lifeless> I have to pop out for a bit; doing a test run that generates backtraces on every query into the timeline would probably let this get diagnosed
[00:26] <wgrant> Would it?
[00:26] <wgrant> The revision that added the test speaks of testing for preloading of Product and Distribution.
[00:27] <wgrant> Which suggests that there is preloading broken, not that there are extra product lookups.
[00:29] <lifeless> that trace clearly shows the product being loaded twice
[00:29] <lifeless> see the query starting at 159
[00:30] <lifeless> 'product.id IN (...., 49, ....)'
[00:30] <lifeless> and then the qyery at 244
[00:30] <lifeless> 'product.id = 49 LIMIT 1'
[00:30] <lifeless> same product
[00:30] <lifeless> same store
[00:32] <lifeless> wgrant: ^ I'm out for a bit sorry, but that smells like a storm cache issue to me; I think we should disable the silly size limits
[00:33] <wgrant> Oh, so it does.
[00:34] <wgrant> lifeless: You mean the custom dev limit of 100?
[00:34] <wgrant> Whereas on prod it's 10000?
[00:51]  * wgrant fixes qa-tagger to not use edge.
[01:11] <lifeless> wgrant: yes
[01:11] <lifeless> wgrant: dev should match prod, because devs want to reproduce behaviour on prod
[01:11] <lifeless> separately, given we toss the entire cache away per request, we should stop using a fancy cache and just use a dict
[01:11] <wgrant> lifeless: I imagine the motivation is similar to the batch size of 8.
[01:12] <lifeless> batch size of 8 makes more sense
[01:12] <lifeless> (but still is an issue for e.g. screen layout testing
[01:12] <wgrant> Right.
[01:12] <lifeless> anyhow, focus - the cache size is I think the issue here
[01:12] <wgrant> So, fixing the 100 to 10000 is a matter of deleting a line from the dev config.
[01:13] <wgrant> But do we want to identify the regression?
[01:13] <lifeless> wow, wiredoo, wow
[01:13] <lifeless> wgrant: well, if it is the cache, its not a regression
[01:14] <lifeless> wgrant: prod won't be late-evaluating
[01:14] <wgrant> Indeed, but something extra is getting into the cache.
[01:14] <lifeless> test threads don't dump the cache
[01:16] <lifeless> publication.py like 759
[01:16] <lifeless> is the loop
[01:16] <lifeless> and this is the kicker:
[01:16] <lifeless>             if thread_name != 'MainThread' or name.endswith('-slave'):
[01:16] <lifeless>                 store.reset()
[01:16] <lifeless> not thread 0 or any slave, reset
[01:17] <wgrant> Heh
[01:17] <lifeless> and yes, thats production code
[01:17] <lifeless> so, interestingly, this shold be getting dumped IFF the test runs through publication
[01:17] <lifeless> ah, happens on endRequest, not begin
[01:17] <mwhudson> that code did my head in the other week
[01:18] <lifeless> mwhudson: of course, it exists to blow your mind
[01:18] <lifeless> in fact, it should reset test stores
[01:19] <lifeless> it only doesn't because the test fallout would be ginormous
[01:33] <lifeless> aieee
[01:33] <lifeless> http://wiki.postgresql.org/wiki/Loose_indexscan
[01:34] <wgrant> Hah
[06:07] <jtv> StevenK: did you come up with the term “blamer” in the soyuz notification module?  I'm trying to make sense of it but not doing very well.
[06:11] <wgrant> jtv: I believe it's more of the blamee.
[06:11] <wgrant> The uploader or the copier, in general.
[06:14] <jtv> Yes, I've been thinking it must be the blamee.  The code seems to assume pretty strongly that it's the signer.
[06:16] <jtv> My clever scheme is to figure out whether a native English speaker came up with it.  If yes, I'm more willing to assume that there's a reason that I'm not seeing.
[06:16] <wgrant> StevenK implemented it, but I don't recall who came up with it.
[06:16] <wgrant> 'twasn'
[06:16] <jtv> I'm separating the "figure out whom to email" code from the "compose and send" code.  There's only a few call sites, but one of them is in the package copier which I think is a very different use case.
[06:16] <wgrant> t me.
[06:17] <wgrant> The package copier is meant to use the person who requested the copy as the blamer.
[06:17] <wgrant> I believe they receive notifications of the copy, and are used as the sender for the announcement message.
[06:18] <jtv> Ironically, the maintainer and the person credited with the latest change are emailed _if_ the caller passes a "blamer."
[06:18] <wgrant> That may be related to autosyncs.
[06:18] <jtv> I'd sort of expect that to happen if you _don't_ pass one, as a fallback.
[06:18] <wgrant> Which are unsigned, and should email nobody.
[06:21] <jtv> Now, who should be notified in the case of a copy?
[06:21] <wgrant> The person who requested it and an undefined set of other people.
[06:21] <jtv> Just the person requesting it?
[06:21] <wgrant> Except in the case of autosyncs, in which case an undefined set of people.
[06:21] <jtv> I am asking you to help define that set.
[06:22] <wgrant> That's one of the great mysteries of the universe, which we've never had a good answer to :/ But probably nobody, in the general case.
[06:22] <wgrant> Build notifications are even less well defined :/
 That's one of the great mysteries of the universe, <== the answer is 42. just sayin.
[06:25] <jtv> Then how about we notify only the requester, then sit back and see who else wants to be in the loop?
[06:26] <wgrant> Well, for one thing we don't know the requester for build notifications.
[06:26] <wgrant> Which I believe are the problem here.
[06:31] <jtv> Damn.  I have to go take of stuff.
[06:31] <jtv> Especially drinking water.
[06:33] <jtv> And seeing how my family is — their area got hit hard overnight and I think they lost telephone
[07:20] <nigelb> spm: heh
[07:57] <adeuring> good morning
[07:57] <rvba> Morning adeuring.
[07:57] <adeuring> hi rvba!
[08:01] <bigjools> morning
[08:02] <mrevell> Good morning!
[09:23]  * nigelb hugs wgrant 
[11:06] <jtv> danilos: have fun in your new team!
[11:06] <danilos> jtv, thanks :)
[11:07] <jtv> Also, don't try sneaking out without finishing your Q/A because I would be able to get to it until Tuesday!
[12:59] <StevenK> jml: Hai. I'd like to do a cherry pick release of Twisted so I can fix a Critical, but I can't figure out how you did it. The fix is already upstream, so perhaps they're close to a release?
[13:00] <jml> StevenK: bigjools did one recently, iirc.
[13:00] <jml> StevenK: and I could have sworn I wrote up the process a couple of years ago into a mailing list message.
[13:00] <jml> StevenK: I have to be afk now, otherwise I'd help more.
[13:00] <jml> StevenK: Twisted's looking for volunteers for an 11.1 release.
[13:23] <bigjools> StevenK: I can  help
[13:26] <StevenK> bigjools: I've been distracted, but I want to head to bed soon, so would you mind sending me a mail with follow-the-bouncing-ball?
[14:05] <danhg> Hey gmb, thanks for the email
[14:05] <danhg> gmb:
[14:05] <danhg> hmmm...
[14:06] <gmb> Hi danhg :)
[14:06] <danhg> ah, it works!
[14:06] <danhg> It didn't 'look' like it had
[14:15] <flacoste> bigjools: so the fix for bug 34086 is live?
[14:15] <_mup_> Bug #34086: removal of arch-all packages while there are arch-specific packages dependent on it results in uninstallable binaries <bad-commit-14159> <escalated> <feature> <lp-soyuz> <qa-ok> <rls-mgr-p-tracking> <soyuz-publish> <Launchpad itself:Fix Committed by julian-edwards> <Ubuntu:Invalid> < https://launchpad.net/bugs/34086 >
[14:15] <bigjools> flacoste: no, it's still fix-committed
[14:16] <flacoste> bigjools: 14171 was deployed earlier today
[14:16] <bigjools> I didn't want to push a release out to cocoplum on a Friday
[14:16] <bigjools> hmmm
[14:17] <bigjools> flacoste: cocoplum is not in the FDT set
[14:17] <flacoste> you mean the NDT set
[14:17] <flacoste> but ok
[14:17] <flacoste> thanks
[14:17] <bigjools> I do!
[14:18] <bigjools> flacoste: I told infinity it would most likely be on Monday anyway
[14:18] <flacoste> great
[14:20] <SpamapS> assuming this was a temporary problem: https://launchpadlibrarian.net/83224566/buildlog.txt.gz
[14:20] <SpamapS> bzr: ERROR: xmlrpc protocol error connecting to https://xmlrpc.edge.launchpad.net/bazaar/: 502 Bad Gateway
[14:25] <abentley> allenap: Where are we at with this storm bug you've fixed?
[14:26] <rvba> abentley: allenap is off today.
[14:26] <abentley> deryck: ^^
[14:26] <deryck> ah bummer bummer
[14:27] <deryck> bigjools, do you know where allenap was at with the Storm bug?
[14:28] <deryck> hmmm, nearly call time for me. nm.
[14:28] <bigjools> deryck: trying to get it reviewed - there was some back and forth.  I told him to just throw it at download-cache for now to unblock us but I dunno if he finished that
[14:28] <bigjools> you could grab his branchj
[14:28] <deryck> bigjools, ah great.  That's what I was going to suggest.
[14:28] <deryck> abentley, can you grab his branch and roll up a tar ball for download-cache?
[14:30] <abentley> bigjools: This is lp:~allenap/storm/oneiric-admin-shutdown-bug-871596 right?
[14:30] <bigjools> yes
[15:01] <abentley> deryck: It's tricky, because allenap's branch is against a newer version of storm than our current, so merging it brings in those changes.
[15:05] <deryck> abentley, ah, right.  And we need to maintain our fork as well, for the with stuff.
[15:06] <abentley> deryck: Right.  So I guess I can merge current storm into our fork, then merge allenap's stuff.
[15:10] <deryck> abentley, yeah, that sounds right to me.
[15:16] <deryck> mrevell, so I see the problem now in the image you sent me.  Was hard to spot at first.  The number and title part are further to the right from the status and importance than what I see.
[15:16] <deryck> mrevell, sound right?
[15:16] <mrevell> deryck, Yeah, that's it
[15:17] <deryck> mrevell, gotcha.  that's easy.  I just gave each section a % width.  Easy enough not to do that.  The middle one needs to expand but not the first or last.
[15:17] <deryck> mrevell, there are actually sections there, even though it's not a table.
[15:17] <mrevell> Yeah, I like them, they solve the scannability problem.
[15:18] <deryck> mrevell, yeah, I think so, too.
[15:34] <sinzui> gary_poster, benji, bac: help! launchpadlib does not know who I am. I switched computers, and uses deja-dup to restore my user data to the new machine. I have deauthorised all my scripts in lp, deleted .launchpadlib cache, and deleted all the launchpad.net password in my keyring
[15:35] <benji> sinzui: what error are you getting?  are you getting the authorize-this-script web page?
[15:37] <sinzui> benji, I an never prompted to re-authorise. The script runs then when I need lp.edit or lp.moderate, I get permission denied
[15:38] <benji> sinzui: did you delete all of .launchpadlib or just the cache directory?
[15:38] <sinzui> there is nothing in the directory now
[15:38] <benji> k
[15:39] <sinzui> I logged and and back in thinking the keyring in the session had cached
[15:40] <benji> sinzui: is your script using login_with or login?
[15:40] <sinzui> well good question
[15:41] <sinzui> benji, lpscript uses Launchpad.login_with(app_name, system_name, version='devel')
[15:41]  * sinzui tries his test script
[15:42] <sinzui> benji, my test script fails in the same way with Launchpad.login_with(
[15:42] <sinzui>         'test', service_root='https://api.launchpad.net', version='devel'
[15:43] <sinzui> benji, I did deauthorise all scripts since they were all tied to my previous computer
[15:43] <sinzui> I really expect a prompt to reauthorise
[15:44] <benji> sinzui: I suspect there's a deauthorized credential lurking in your keyring, that's the only scenario I can see at the moment that would cause these symptoms
[15:44] <sinzui> yeah, that is why I got brutal and removed all Lp passwords.
[15:46] <sinzui> benji, since these were system-wide for my computer, is Lp the real authorisor? could ubuntu/login.ubuntu.com be the actual authorising party?
[15:47] <benji> sinzui: I don't understand the question, but regardless, I think the answer is "yes".
[15:47] <sinzui> oh, I could rename the script which might cause an authorisation prompt
[15:49] <benji> I don't think that'll work.  At least, I'd be dissapointed if it did.  The intent was that once a machine is authorized, all scripts are authorized.
[15:51] <sinzui> does lp-lib piggy back on firefox? I think I same an authorisation request a new days ago that opened firefox, but that is not my preferred browser
[15:55] <benji> sinzui: it uses python's webbrowser module (which is awful)
[15:55] <sinzui> I renamed my moz dir, but that did not help
[16:08] <flacoste> danilos: since it's your last LP day, thanks for everything and good luck with Linaro!
[16:08] <bigjools> danilos: ditto from me
[16:08] <flacoste> sinzui: did you cleaned-up seahorse?
[16:09] <sinzui> I have been, but I believe I have a lot more to purge
[16:09] <danilos> flacoste, bigjools: thanks both, it was a joyful ride! :)
[16:09] <flacoste> sinzui: lplib tokens are very descriptively called 'network password' :-(
[16:09] <sinzui> oh!
[16:09] <sinzui> !!
[16:09] <sinzui> there are a hell pf a lot of those
[16:09] <flacoste> if you click on them, you should see that it relates to one of the LP hosts
[16:10] <flacoste> danilos: and i'll have my illuminati cards in Orlando to kick your butt for leaving ;-)
[16:10] <sinzui> interesting
[16:11] <danilos> flacoste, hehe, you know that whoever is a rookie at the game will win (ok, or Martin :)
[16:11] <flacoste> danilos: and of course buy you a beer afterwards to thank you for all of the good things you did
[16:11] <danilos> flacoste, thanks, I owe you plenty of beers myself!
[16:11] <sinzui> flacoste, deleting them did indeed prompt to reauthorise. But I still got the lp.moderate auth error in my script
[16:11] <sinzui> I was also shown firefox, which is not my browser
[16:12] <flacoste> i blame ubuntu for the later part :-)
[16:12] <flacoste> sinzui: what's the lp.moderate error?
[16:13] <sinzui> 401 (<Product at 0x145c8950>, 'project_reviewed', 'launchpad.Moderate')
[16:13] <sinzui> flacoste, I do not think the script knows I am sinzui in ~registry
[16:14] <sinzui> !
[16:14] <sinzui> flacoste, I see the problem
[16:14] <sinzui> flacoste, it is firefox
[16:15] <sinzui> flacoste, It is not my browser. It is my daughter. She is only authorised to to choose television programs in my house
[16:15] <flacoste> !
[16:15] <flacoste> sinzui: you are on your daughter computer?
[16:16] <sinzui> No, She does qa for me when I need a normal user
[16:16] <sinzui> hence my remark that it is not my browser.
[16:16] <sinzui> This is an easy fix in the browser, but I want launchpadlib to use the browser my computer is configured to use
[16:22] <flacoste> sinzui: how did you configure the browser?
[16:23] <flacoste> sinzui: iirc, we are using the python browser which should use either x-www-browser or www-browser depening on the DISPLAY env
[16:23] <flacoste> does x-www-browser invokes your correct browser?
[16:23] <sinzui> From Ubuntu's menu, System Settings > System Info, Default Applications
[16:23] <sinzui> That controls the web browser shown in the dash
[16:24] <sinzui> and it sets the xdg data
[16:24] <flacoste> right
[16:24] <flacoste> but that doesn't integrate with the Debian alternatives system
[16:24] <flacoste> update-alternatives --display x-www-browser
[16:24] <flacoste> what does that show?
[16:25] <flacoste> use that to set your browser and you'll be fine
[16:25] <flacoste> i'd advocate that changing default applications that doesn't update the alternatives is not a launchpadlib bug
[16:28] <sinzui> flacoste, thank you very much. I reconfigured x-www-browser and chose the auto option and the system default browser now always the chosen browser
[16:28] <flacoste> great!
[16:28] <flacoste> now food
[16:28] <sinzui> This looks like a bug in  x-www-browser where it chooses a specific
[16:30] <jml> StevenK: http://people.canonical.com/~therve/Twisted/11.1.0pre1/ ; http://twistedmatrix.com/pipermail/twisted-python/2011-October/024686.html
[16:37]  * bigjools gets the buildd-manager to cancel a build mid-build <evil cackle>
[18:46] <abentley> deryck: how's it going?
[18:47] <deryck> abentley, not too bad.  a little slower than I'd like.  But making progress.
[18:50] <abentley> deryck: just a heads-up, I've reached the point where I see that what I have is better represented as an object with several methods, rather than a collection of functions.  So update_listing will become ListingNavigator.change_ordering.
[18:50] <deryck> abentley, ah, interesting.
[18:51] <deryck> abentley, presumably this still just needs the order by string from the order by widget to update the page?
[18:52] <abentley> deryck: right.  It will allow me to write unit tests that don't have to mutate window.*
[18:52] <deryck> abentley, ok, nice.
[18:52] <abentley> deryck: Because that connection will be made by a factory method.
[19:45] <sinzui> jcsackett, do you have time to mumble?
[19:45] <jcsackett> sinzui: sure.
[19:55] <sinzui> jcsackett, part1 https://help.ubuntu.com/community/MacBookAir4-2
[19:56] <sinzui> jcsackett, part2 http://sourceforge.net/projects/gptfdisk/
[19:57] <sinzui> jcsackett, part3 http://ubuntuforums.org/showpost.php?p=11215214&postcount=185
[22:04] <flacoste> critical analysis draft finally completed!
[22:04] <flacoste> sent to the list!
[22:04] <flacoste> and i'm done for the day
[22:04] <flacoste> enjoy your week-end
[22:11] <wallyworld> sinzui: you still around?
[23:37] <cjwatson> flacoste: illuminati> subscribe!  haven't played that in years