[00:11] james_w: ah [00:11] james_w: does it give you a hint of some sort? [00:11] james_w: yes, -foundations [00:11] lifeless: well, it says the nonce was used before [00:12] yes [00:12] I don't know if that indicates a bug in your code, in launchpadlib, or in the lp code. [00:13] my code?!? [00:13] never! [00:13] its quite possibly lp itself [00:14] one user with many api clients at once isn't a common occurence today [00:14] That shouldn't cause nonce reuse... [00:14] without checking the implementation, who knows. [00:15] wgrant: do you know how the nonces are generated and stored? [00:15] OAuthNonce table [00:15] LP stores them in the OAuthNonce table. [00:15] Yeah. [00:15] I wonder who generates them. [00:15] second highest oops yesterday I think [00:15] are they an 8 bit number and stored forever, or are we talking heat death of the universe before this should happen? [00:15] not quite, bit lower: [00:15] 8 / 112 RootObject:+login [00:16] oauthnonce__access_token__request_timestamp__nonce__key" UNIQUE, btree (access_token, request_timestamp, nonce) [00:16] the nonce itself isn't constrained to be unique. [00:17] Right, the timestamp has to match. [00:17] So a collision is less likely. [00:18] wgrant: python-oauth by the look of it [00:18] nonces/timestamps are only SHOULD IIRC ;-) [00:18] def generate_nonce(length=8): """Generate pseudorandom number.""" return ''.join([str(random.randint(0, 9)) for i in range(length)]) [00:18] Yeah. [00:19] 10^8 space per second? [00:20] Looks like it. [00:20] I think this is the error you get if you don't re-sign on redirect, but I don't know why these requests would have been redirected [00:21] What are the requests? [00:21] this one was sp.getBranch(pocket="Something") [00:22] if you take n samples randomly from N options, you have about 1 - math.exp(-n*(n-1)/2.0*N) chance of getting a collision [00:22] Hmm. [00:23] 1 - math.exp(-n*(n-1)/(2.0*N)) ? [00:23] um [00:23] or 1 - math.exp((-n*(n-1))/(2.0*N)) [00:24] james_w: well those last two are the same, right? but they're both better than what i said, indeed [00:24] lifeless: I think having our chat after lunch would be best for limiting the disruptions [00:24] yeah [00:24] bug 645640 [00:24] <_mup_> Bug #645640: API gives 401 errors on occasion [00:25] sure [00:25] i did this math for http://bugs.python.org/issue6598 fwiw :) [00:25] how many nonces do we generate in a second? [00:26] mwhudson: I don't know, but 100-1000 probably [00:27] assuming they are per-access-token too [00:27] in this case I got three 401 in 2 minutes, so I don't think it's a collision [00:27] RootObject:+login 204961 [00:28] 2-3 [00:28] james_w: yes, that seems pretty unlikely [00:28] unless its per-request [00:28] lifeless: my comment on reliability was more about tuning than large changes, so while I agree that using Launchpad's facilities makes sense, that is a fair amount of work, and doesn't buy us much in the fine-tuning department. [00:29] james_w: fair enough; my main goal is to get the system 'owned' by someone with it as part of their work portfolio [00:29] lifeless: so I was thinking of things such as better heuristics for transient failures, better automatic categorisation of problems, automated linking to bugs [00:29] james_w: you do great, but its hardly your primary thing [00:29] lifeless: and I'm certainly down with that [00:29] lifeless: What does +login have to do with OAuth? [00:30] james_w: OOPS-1725D1955 [00:31] grah the pageid on that is sad [00:32] won't load for me [00:32] james_w: if you only need readonly access you could be anonymous [00:32] and avoid the issues [00:32] james_w: https://lp-oops.canonical.com/oops.py/?oopsid=1725D1955 works for me [00:33] poolie: this is read-write on occaision [00:33] poolie: anonymous may not be what you think it is ;) [00:33] lifeless: does now [00:33] poolie: I'm fairly sure it allocates a token on the fly [00:33] poolie: which is gross in some ways [00:33] lifeless: i think (imbw) it's only inside the app server, not in http [00:33] that's probably me [00:33] i agree it is a bit gross [00:34] poolie: its in the appserver, but thats where this problem may be too :) [00:35] OAuthAccessToken.sourcepackagename? [00:36] https://bugs.edge.launchpad.net/launchpad-foundations/+bug/645651 about the oops itself [00:36] <_mup_> Bug #645651: pageids on nonce failures are a bit bogus [00:36] james_w: no idea why thats there [00:37] ah, because they can be restricted in scope [00:38] lifeless: i think i'll keep pushing on flags today [00:38] poolie: \o/ [00:38] i meant to give it a one or two day timeslice but it feels like there's a fair momentum/inertia effect [00:38] iow launchpad is heavy :) [00:38] yes [00:38] I wouldn't stress about doing it the right way though. [00:38] oh btw [00:39] Like, practicality of purity. [00:39] if i change my mind about naming something, i can just change it, right? [00:39] james_w: 755156 API requests a day. [00:39] there are no internal api stability rules other than that the whole thing must pass it's tests [00:39] poolie: yes you can but its desirable, if folk are building on something, that they be able to CP it to production. [00:39] (i don't mean gratuituously; i realize it may break outstanding branches etc) [00:39] right [00:39] poolie: so do consider leaving a forwarder behind. [00:40] sure [00:40] you odn't have to [00:40] some of the naming about features vs flags etc is a bit inconsistent [00:40] yeah [00:40] that's one nice thing compared to bzrlib [00:40] so as of yesterday i have a working readonly anonymous view of the rules [00:40] james_w: so, 100 per second or so [00:41] i was wondering about proposing that in parallel with adding access control [00:41] just to be stepwise [00:41] and because there's probably nothing privacy critical at the moment [00:41] poolie: separate review, sure, but I wouldn't land it solo [00:41] k [00:41] james_w: Scope restriction doesn't actually work, unfortunately. [00:41] It would be really nice if it did. [00:41] What with the rather damaging APIs that are around now... [00:41] Like, say, syncSource into the primary archive. [00:43] james_w: oauthnonce || 79.96 tuples/sec [00:43] wgrant: did you get those buildd-manager logs you were after? [00:43] mwhudson: I didn't. [00:44] wgrant: can you tell me what to look for? [00:46] mwhudson: a startBuild(http://.buildd:8221/, firefox, 3.6.10+build1+nobinonly-0ubuntu3 [00:46] I think. [00:46] I may have the buildd bit wrong. [00:46] But it will mention adare or ross in there somewhere. [00:47] wgrant: any idea when? [00:48] date_first_dispatched [00:48] 2010-09-22 07:48:40.575908+00:00 [00:48] ah, there we go [00:48] mwh@devpad:/srv/launchpad.net-logs/production/cesium$ grep startBuild.*adare buildd-manager.log | grep firefox [00:48] 2010-09-22 07:48:40+0000 [-] startBuild(http://adare.buildd:8221/, firefox, 3.6.10+build1+nobinonly-0ubuntu3, Release) [00:48] 2010-09-22 07:53:13+0000 [-] startBuild(http://adare.buildd:8221/, firefox, 3.6.10+build1+nobinonly-0ubuntu3, Release) [00:48] 2010-09-22 07:55:09+0000 [-] startBuild(http://adare.buildd:8221/, firefox, 3.6.10+build1+nobinonly-0ubuntu3, Release) [00:48] 2010-09-22 13:46:15+0000 [-] startBuild(http://adare.buildd:8221/, firefox, 3.6.10+build1+nobinonly-0ubuntu3, Release) [00:48] What happens immediately after the first startBuild? [00:49] (the 13:46 one is from when Julian retried it last night -- we presumed it was transient) [00:49] looks normal [00:49] I wonder why it's retried 5 minutes later, then. [00:49] http://pastebin.ubuntu.com/498821/ [00:49] 2010-09-22 07:52:19+0000 [-] communication failed (User timeout caused connection failure.) [00:49] 2010-09-22 07:52:19+0000 [-] failure (None) [00:50] Gah. [00:50] Non-virt builders *do not do that*. [00:50] Ah. And I bet that retrying the build didn't reset the failure count. [00:51] So it was immediately killed the next time. [00:51] actually [00:51] http://pastebin.ubuntu.com/498823/ [00:51] that dispatching line at the bottom is normal? [00:51] I believe so. [00:51] ah haha [00:53] wgrant: http://pastebin.ubuntu.com/498826/ [00:53] That's more like it. [00:54] * thumper goes to find lunc [00:54] lunch that is [00:54] However, that wasn't terminal, since the builder and job failure counts are the same. [00:54] adare seems to be timing out quite a lot [00:54] Hmm. [00:54] not like every build [01:04] wgrant: http://people.canonical.com/~mwh/ppc-buildd-fail.txt [01:05] mwhudson: Are builders from other archs so bad? [01:07] wgrant: hard to say, it's pretty bad though [01:09] wgrant: yuck: http://pastebin.ubuntu.com/498830/ [01:10] (adare and ross are the worst though) [01:11] wgrant: ppa builders, for contrast: http://pastebin.ubuntu.com/498831/ [01:15] Hm, quite a difference. [01:15] still seems like a whole lotta time out for one day's log [01:38] adare looks reasonably dead now :/ [01:39] And ross just started building something that has been attempted a couple of times befor.e [01:39] I wonder what's going on. [01:52] hi wgrant, mwhudson [01:53] StevenK: what happened to https://code.edge.launchpad.net/~mbp/launchpad/mbp-trivial/+merge/32173 ? [01:53] Morning poolie. [02:04] wow, lp certainly has a big backlog of approved non-landed mps [02:06] They're mostly/all from people with PQM privs, though. [02:07] Hm. Half are more than a week old. [02:08] lifeless: ping [02:14] thumper: sec [02:14] np [02:21] thumper: skype? [02:21] lifeless: just a few secs [02:23] lifeless: yep [02:28] https://lp-oops.canonical.com/oops.py/?oopsid=1723XMLP310 [02:44] OOPS-1727EA92 [02:44] That same filename works fine as an attachment on launchpad.dev [02:44] But not on edge. [02:46] (yes, yes, I do name files strangely to try to break LP) [02:59] \o/ bugtask:+index landed. [02:59] * lifeless dances the happy happy dance. [02:59] lifeless: What did you get it down to? [02:59] wgrant: what I posted to the list [03:00] wgrant: just had various test fallout to fix - things I had missed subtlties of [03:00] Ah, right. [03:00] Yep. [03:00] lifeless: At what stage did the OOPS I referenced about occur? [03:01] The initial traversal, or some librarian trickery? [03:01] please wait, your enquiry is important to us [03:02] do doo doo, do do do-doo [03:02] I bet sodium has been exposed to water again [03:02] Heh. [03:02] Sounds like it needs replacing. [03:02] its been replaced. [03:03] ... [03:03] the problem is possibly the fs [03:03] Well then. [03:03] or similar [03:03] it does not like that oops [03:03] will try again ... later [03:03] k [03:03] Thanks for trying. [03:16] thumper: mwhudson: I need your rubber stamps, again. [03:16] lifeless: otp [03:17] lifeless: Where to now? 11565? [03:17] https://code.edge.launchpad.net/~lifeless/launchpad/cp/+merge/36406 when you get a chance; just code-ok :) [03:17] wgrant: yes [03:17] Excellent. [03:27] spm: if you're not flat chat, could you drop http://pastebin.com/DZcgFsA1 onto staging as a cowboy? want to see if its going to blow up tonight so I can start on it now, if needed. [03:27] sure, gimme a bit tho, chasing logs for beuno atm [03:27] ta [03:30] evil: http://samy.pl/evercookie/ [03:33] for some reason i feel like viewing that url with netcat [03:35] lifeless: you ain't kidding. that's horrid. [03:35] * jcsackett ponders. [03:35] i believe i heard about that as being by the same person who came up with the twitter xss hack. [03:36] security is damn hard :) [03:39] ain't that the truth. [03:39] at least this evercookie is open; someone can develop a plugin to kill it. [03:41] jcsackett, is that the cookie that uses the HTML5 database to store itself? [03:42] mars: yeah. and uses png cookies, and every other storage mechanism. [03:42] heh, nasty [03:42] link was posted above by lifeless; it's a pretty freaky thing. though tech wise, it *is* sort of impressive. [03:43] yeah, I'm not clicking that link. I stopped clicking when the 'Gmail contacts stealing' example page was published [03:44] although I suppose I could use a Chrome incognito browser to look at it [03:44] Unless it uses Flash cookies too. [03:44] :/ [03:44] double yuck [03:44] the png cookies are especially beautiful [03:45] Indeed. [03:46] The Web really needs to just die. [03:50] ah, here it is, the recent debacle around ad agencies starting to use these nasty techniques: http://arstechnica.com/apple/news/2010/09/rldguid-tracking-cookies-in-safari-database-form.ars [03:52] mwhudson: so, can has stamp ? [03:52] thumper: ping [03:52] lifeless: yus? [03:52] please rc stsamp https://code.edge.launchpad.net/~lifeless/launchpad/cp/+merge/36406 [03:53] lifeless: still otp [03:53] mwhudson: sorry, thought you weren't from the netcat comment. It doesn't actually a review, only a 'review'. [03:54] mars: perhaps you could ? [03:54] looking [03:55] lifeless, does the report give you that output right now? Or did you construct it yourself? [03:55] mars: myself from the report [03:56] lifeless, what am I supposed to do with this? rubber-stamp it? [03:56] mars: yes, its just so that ec2land will work [03:56] ok [03:57] lifeless, done [03:57] thanks! [03:58] lifeless, we can add that data to the text report later as well. I already publish most of that info in the HTML report. [03:58] mars: it shouldn't go in the txt report [03:58] storing cookies in etags is an impressively evil idea [04:00] what we should do though is start showing more info about the other commits [04:02] if only we could figure out how to make the vaccines for these internet diseases spread as quickly as the infections themselves! :) === Ursinha is now known as Ursinha-afk [04:03] it would make an awesome doctoral thesis topic [04:04] spm: taptap :) [04:06] still busy :-) [04:07] you might want to grab the pastebin before it times out ;) [04:10] * beuno starts talking more loudly than lifeless [04:10] beuno: you could do these things during your workday :P [04:11] lifeless, I remember the days when I could... [04:11] they where great and people didn't yell at me during a movie [04:11] lifeless: if you'd put your paste into a WEBSCALE pastebin, like, eg sqlite backed, timeout wuolnd't be a problem. that is all. [04:12] :-) [04:33] lifeless, poolie, here is the new feature flags fixture in action: http://pastebin.ubuntu.com/498904/ [04:39] mars, sweet! [04:39] is that already in devel? [04:39] jdEC2 [04:39] poolie, not yet, the branch is here: lp:~mars/launchpad/add-profiling-feature-flag [04:39] also, i guess in non doctest code you'd use self.useFixture(FeatureFixture...) [04:39] needs landing polish [04:39] irssi FAIL [04:40] hi everyone! [04:40] poolie, yes, and it is very nice. with statements also work. [04:40] hello beuno; i just got a survey from LAN the other day saying "where would you like to go in South America" and I thought of you :) [04:41] poolie, I would love to repeat our mini-sprint [04:41] or just skip the sprints and do all meals! [04:41] heh [04:41] i wish code branches easily showed you the submit diff, even before the mp exists [04:41] I think everything should just have a WIP MP. [04:41] fileabug [04:41] mars, so how flags work out for you? [04:42] wgrant, that'd be another way to do it [04:42] lifeless: i'm pretty sure there is already one [04:42] mars i think we need more systematic naming of flags [04:42] i don't want to sound bureaucratic here but i just think it will help when we get more of them [04:42] poolie, I think they will work well. It will be nice to turn the request_profiling feature on and off from the UI and also control access by scope [04:43] maybe yours should be something like webapp.profiling.enabled [04:43] poolie, yes, I pondered 'services.profiling' [04:43] or that [04:43] or services.profile.enabled [04:43] exactly [04:43] matching the python module name is good, i think [04:43] ugh [04:43] what does FF do? [04:44] we have many terrible python names [04:44] FF? [04:44] foo.bar.enabled: True ? [04:44] firefox [04:44] so I wouldn't match them. [04:44] if theres a good name, use it. [04:44] I thought about how it would look in a UI [04:44] but often a flag will be interpreted in many modules. [04:44] Feature: request_profiling - ON [04:44] so for instance [04:44] i think 'memcache' is a poor name [04:45] unless it really is going to turn all of memcache on and off [04:45] it turns all of memcache on and off [04:45] if it's controlling memcache tal stuff more specifically, we should say that [04:45] or vice versa [04:45] yes, that makes sense [04:45] poolie: it turns it on and off for all uses we have of memcache atm. [04:46] tal and API [04:46] yes, that too [04:46] so the current use makes sense [04:46] but if you ever get anything more fine-grained, then maybe some naming could make the flag's function more obvious [04:47] tight [04:47] bah [04:47] right [04:48] mars that branch looks nice [04:48] thanks [04:48] ok, my vision is starting to get blurry - time to sign off. I'll land the FeatureFixture tomorrow. [04:48] Good night! [04:48] you can cc me to the review if you like [04:48] poolie, ok, will do [04:48] one thing, can you mention this in the servicres.features doc string? [04:49] ok [05:17] spm: so.. [05:17] * spm should kick lifeless from the U1 channel.... :-P [05:18] gimme 10, just doccoing what we did and taknig a bio break [05:19] kk [05:23] here's something to try if you want to cry: [05:23] host 'sdasd asdas' ns4.vpweb.com [05:23] (this is the other kind of evil to what lifeless posted earlier) [05:26] Hard / Soft Page ID [05:26] 122 / 338 BugTask:+index [05:26] 91 / 212 CodeImportSchedulerApplication:CodeImportSchedulerAPI [05:26] 48 / 13 Distribution:+search [05:26] 45 / 25 DistributionSourcePackage:+filebug [05:27] 18 / 85 Distribution:+bugtarget-portlet-bugfilters-stats [05:27] 13 / 47 Milestone:+index [05:27] 13 / 40 Distribution:+bugs [05:27] 10 / 11 POFile:+translate [05:27] 9 / 8 Person:+translations [05:27] 8 / 18 DistroSeries:+queue [05:38] lifeless: Is that daily lpnet? [05:38] yes [05:39] Not bad. [05:51] lifeless: patched and restarting .... [05:51] fwiw. '10' in sysadmin speak is typucally out by a factor of 3 when dealing with actual time. fwiw. [05:52] so you're || close to being a black hole? [05:53] StevenK: hi? [05:54] poolie: Hi. You didn't get a mail from ec2? [05:55] nup [05:56] did you? [05:56] I certainly did, the tests failed [05:56] Interesting, the exact same tests failed for my branch that I submitted at roughly the same time :-( [05:57] We are in test fix. Is the lp.poppy.tests.test_poppy.TestPoppy.test_full_source_upload(sftp) test being looked at? [05:58] LayerIsolationError: Test left new live threads: [] <-- suprious? [05:58] spurious even? [06:00] wgrant: bug 1 in the ubuntu context - 179 queries [06:00] <_mup_> Bug #1: Microsoft has a majority market share < [06:00] bug 1 is such a good example of why we should add task deletion :) [06:00] <_mup_> Bug #1: Microsoft has a majority market share < [06:06] and why _mup_ should have rate limiting [06:10] lifeless: I recall it being roughly three times that... [06:10] Not bad. [06:11] wgrant: 179 to the point it times out ... :P [06:11] lifeless: got a minute? [06:11] sure [06:12] Ah. === almaisan-away is now known as al-maisan [06:20] * mwhudson goes home [06:27] thumper: ping? [06:27] wallyworld_: otp [06:28] thumper: np. just wanted to touch base. later. [06:29] stub: if we're still in testfix should that be in the topic? [06:29] Dunno. I just forced the builds (the other one crapped out due to bzr checkout issues too) [07:09] stub: hey [07:09] stub: bug messages and bugactivity [07:11] stub: can you see any reason not to link activity to bugmessage, thus permitting a single range query to get only actions that will be shown ? [07:12] Most activities are now done by AJAX, so don't have an explicit or obvious message. [07:12] Have to be careful not to lose activity if a message is hidden. Other than that, that seems fine. [07:12] expect wgrant is right and you will end up needing fake messages [07:16] Oh good, Debian is trying to reimplement PPAs. [07:18] what on earth for? [07:18] Well, Launchpad is evil, see. [07:18] oh. of course. silly me. [07:19] stub: huh [07:19] left out [07:19] wgrant: well, and we don't support sid or other debian releases [07:20] stub: we have lots of activity without messages: every web action, for instance. [07:22] lifeless: No, but it's surely easier for them to alter the code and run their own cut-down instance than it is to write their own. [07:22] wgrant: oh sure [07:22] someone should point that out [07:32] stub: patch # for this ? [07:32] eg? [07:32] eh? [07:33] ALTER TABLE BugActivity ADD COLUMN bugmessage integer; [07:34] What are we doing this for btw? Why do we want to show activity associated with a particular message? [07:34] other way around [07:34] consider what bug index pages render [07:34] like https://bugs.edge.launchpad.net/launchpad-registry/+bug/237315 [07:34] <_mup_> Bug #237315: search for -FOO alone causes a timeout and might be better as a substring search [07:35] we render a sequence of messages and actions interleaved [07:35] when there are too many messages we render the first and last 40 [07:36] and only the activities that occur between or around those activities [07:37] stub: But the page *loads* all the activities and *all* the messages (and all the mesagechunks) every time. [07:37] And timestamps don't do that efficiently? [07:38] stub: perhaps; certainly we don't do partial loads of stuff [07:38] stub: I'll hold off on the patch [07:38] i want to write a browser test with an admin logged in; it seems a bit hard [07:38] just doing 'with logged_in_user' doesn't seem to make new browsers behave as that user [07:40] It seems we are interested in the activity in particular time ranges, not activity linked to particular messages. [07:43] i guess the answer is, test the view, not through testbrowser? === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan [07:52] poolie: getUserBrowser(user=person) [07:53] poolie: and make person with password='test' [07:56] even when i give it an existing member of the admin team, i get an 'unauthorized' error [07:56] yet i can log in to lp.dev as an admin user and see that page [07:58] hm, the spr tests seem to do this [08:00] poolie: its the password [08:00] getUserBrowser falls back to anon [08:01] ! ok [08:01] thus my advice - new user with password='test', add it to admins. [08:02] ok, i'll try that [08:02] https://code.edge.launchpad.net/~mbp/launchpad/flags-gui/+merge/36415 is the readonly feature rules view, btw [08:03] cool [08:06] i'm glad you told me about the password; that could have taken a lot of difgging [08:09] woo [08:09] lifeless: so like this http://pastebin.ubuntu.com/498976/ ? [08:15] poolie: its in my second (I think) perf tuesday mail - it took me a lot of digging :) [08:15] poolie: yes [08:17] ok, so i think that code may be not-unreasonable to land as it is [08:27] >> # XXX jamesh 2005-11-22: Temporary fix, which Steve should undo [08:27] mm :) [08:32] poolie: hmm, 2005 XXX, great vintage that. Lots of character, with crufty notes. [08:32] :) [08:33] drinking well now, with great long term potential [08:33] Recommend cellaring: in a dark, deep hole. [08:33] 15% bong by volume [08:33] Haha [08:37] lifeless, i'm thinking of adding a helper that just does [08:37] bong.light() [08:37] ? [08:37] if not getFeature(x): raise FeatureDisabled [08:37] a little like the requireFeature() thing in bzr tests [08:38] if you want; I don't see a use for it: tal doesn't have exception flow control AFAIK [08:39] i was thinking of putting it in view code when a thing is totally disabled [08:39] the page can just fail [08:39] for instance, i was recursively wondering if the rules view should use this [08:39] I don't really understand this; it seems a big departure from the previous model [08:40] oh? [08:40] previously you have been building a very flexible schemaless thing [08:40] this seems to imply that unset or set to '' == the error condition [08:40] which is the reverse of what has previously been advocated [08:41] ah, i'm not saying this will be for all uses [08:41] just for the particular case of wholesale disabling a feature, that should cause an entire view to become unavailable [08:42] even if people have handcrafted the url to it [08:42] mmmm [08:42] this won't help if you just want to disable or change some controls on a page that should otherwise keep working [08:42] I think a helper might be useful [08:42] but you'd want to raise a 404 in traversal [08:42] we wouldn't want an exception, nor oops reports of it, would we? [08:43] i don't know [08:43] istm you _might_ want to count them, but as a different category from other things [08:43] a bit like 404s being a special type of oops [08:43] well, you could add that in [08:43] if lots of people are hitting this it should raise a question mark [08:44] if you did indeed mean to turn it off then it's ok [08:45] it could be useful, though I don't think we've got any mandatory-hidden uses yet [08:45] personally I'd file it under yagni [08:47] no objection to it being added, but I wouldn't want a deliberate action to noise-up the already noisy oops reports. [08:48] good morning [09:01] Hm, so zack isn't actually entirely averse to the idea of using an LP instance. [09:01] Mornin' [09:02] mrevell, hello [09:37] lifeless, https://lpbuildbot.canonical.com/builders/prod_lp/builds/110/steps/compile/logs/stdio [09:39] jml: sigh fuckity. [09:47] jml: rc rs from you to fix? [09:47] lifeless, what's the fix? [09:47] ) as e: -> ), e: [09:51] jml: https://bugs.edge.launchpad.net/launchpad-foundations/+bug/645860 [09:51] <_mup_> Bug #645860: buildbot is letting production breaking changes through [09:52] jml: ping; Can I send the fix in. [09:57] jml: I'm taking your name in vain. [10:04] Gah. So the loggers are all hierarchical, with messages bubbling up. All hierarchical except for the filters which have to be explicitly attached to the logger emitting the messages rather than at a higher point in the tree. [10:05] python logging sucks [10:08] lifeless, thanks :) [10:08] lifeless, thanks. [10:09] wgrant: https://code.launchpad.net/~leonardr/launchpad/rename-grant-permissions/+merge/36363 may make you run screaming [10:09] lifeless: It did. [10:09] Where is all this discussion happening? [10:09] It seems to keep changing. [10:09] With no public rationale. [10:10] wgrant: I haven't seen any discussion. [10:10] And that is mildly concerning, considering how fucked everyone will be if it's wrong! [10:10] So I can't answre that. [10:10] Apparently leonardr hates email :) [10:16] oh right. that reminds me. [10:16] wgrant: brakes applied. [10:17] jml: do you know about this desktop oauth changing thingy stuff? [10:17] no. [10:17] lifeless: I think you probably meant "Needs Information" [10:17] But thanks. [10:17] jml: it seems to be getting discussed, changed with the wind and so forth with no public discussion, yet its a very delicate bit of work. [10:17] wgrant: no, I mean it needs fixing. [10:17] lifeless, yes. [10:17] wgrant: the fix may be conceptual :) [10:18] lifeless, my last point of reference was the email I sent to the list, for which I am still waiting on leonardr for a reply. [10:18] After seeing that MP a few hours ago, I sort of gave up and decided I'd object at the end once the whole thing was finalised, since it kept changing and nobody seemed sure of what was going on. [10:19] But objecting now is good too if others agree. [10:19] wgrant: objecting to the process is fine; as is pointing out problems as they come along [10:20] lifeless: Well, except that it's not really my place. So I will only really complain when somebody is about to break everything. [10:20] lifeless, I'm also concerned: I think good desktop integration is extremely important to Ubuntu + Launchpad. [10:20] jml: It certainly is. [10:20] wgrant: its all our places [10:20] But it needs to be done properly. [10:20] wgrant, exactly. [10:21] jml: I think its important too; I will grab leonardr and gary tomorrow but perhaps you would like to do so earlier. [10:21] And it's more likely to be done properly if more people know and can analyse what's going on. [10:21] minimally we need ubuntu-security, ubuntu-desktop, launchpad-security [I guess I'll wear that hat, for now] involved. [10:21] lifeless, I've emailed gary asking for a follow-up on his comments yesterday. I'm not going to be able do much else this week. [10:21] jml: gotcha [10:22] * jml back to sprint [10:24] jml: gary's comments? [10:25] lifeless, at the team lead meeting. [10:27] and sigh, there's a dubious patch landed in launchpadlib too [10:28] I wonder how to help folk realise when something is high risk vs ordinary in terms of change, folk that it should be socialised with, etc. [10:28] lifeless, partly it's a numbers game [10:29] jml: I think its also partly a cultural thing [10:31] jml: I nagging feeling I am having is that lp reviews are kind of like makeup. [10:32] I'm positive that the team want to make it work well [10:33] we need to figure out with them how to do so; and /if possible/ draw their attention to the sorts of design things that need widespread input [10:33] gmb: Judging from your Twitter stream, it seems like you've been having similar problems to me all week. My branches have cooked more than a few roast dinners with the heat generated from their futile ec2 runs. [10:34] allenap, Yeah. Different tests keep breaking; can't get them to break locally so I guess I'm pulling in bad code from devel or something. Or maybe it's the Moon. [10:35] jml: wgrant: for your interest; there was discussion about some of the mechanics, but not the direction or reasoning in #launchpad-foundations [10:36] lifeless, which IRC network is that on? [10:36] freenode [10:36] huh. [10:36] * wgrant didn't know that channel existed. [10:36] me neither. [10:37] allenap: devel's had quite a few bad landings. [10:38] Unlogged channels :( [10:38] gmb: what error ? [10:38] jml: Okay, that makes me feel better :) [10:39] allenap: or maybe it's had only a small number, but it takes a long time to notice them and fix them in such a way that ec2 test will include the fixes. [10:39] Perhaps ec2 test should run against stable by default. [10:39] lifeless, Er... I'd tell you but I don't know how to get the info out of testrepository. [10:39] Since it's in an old run [10:39] and the most recent one didn't fail. [10:40] jml: That's a really good idea. [10:40] gmb: subunit-filter < .testrepository/$ID | subunit2pyunit [10:40] lifeless, Ta. [10:40] allenap: see https://bugs.edge.launchpad.net/launchpad-foundations/+bug/419689 [10:40] <_mup_> Bug #419689: Test failures in devel break ec2test runs [10:40] lifeless, It was a Windmill test: lp.code.windmill.tests.test_branchmergeproposal_review.TestReviewCommenting.test_merge_proposal_reviewing [10:41] gmb: or for sex; tribunal .testrepository/$ID [10:41] gmb: windmill errors are nearly always noise AFAICT - they show up when something else is wrong and go away when it isn't. [10:41] Running against stable would make it easier for devel to break in the first place. [10:41] gmb: from ec2 I mean. [10:41] gmb: I've never had a windmill test pass locally. [10:41] gmb: I just ignore them completely. [10:42] lifeless, Heh. This one did, oddly. Anyway, we'll see what happens with this ec2 run. [10:42] good luck luke, may the force be with you [10:43] :) [10:49] adeuring: regarding the librarian OOPS ID change [10:49] adeuring: could we just delete that template altogether ? [10:49] adeuring: and stop special casing it? [10:49] lifeless: yeah, I wondered too if we really needed it. but... [10:49] there might be one reason: [10:49] adeuring: if you'd like to delete it, +1 from me :) [10:50] lifeless: well, these errors involve another machine, the librarian server, so they can occur due to reasons like hardware failures, network problems etc [10:51] adeuring: so do all our requests. [10:51] adeuring: (the database server is another machine ...) [10:51] well, yes, but there one more machine involved that usually [10:51] true, but its not a unique thing [10:51] its just more of the same [10:51] global searches use google [10:52] gpg key checking uses the keyserver [10:52] hrmm, yeah... ok, I delete it. Though I'll be missing the "feng shui in the server room" message ;) [10:53] cool! [10:53] lifeless: what's the "timeline" for the token based access to the librarin? [10:53] adeuring: mthaddon has the keys now, so it should be up for QA soon. [10:54] cool [10:56] I am still bothered by lines 148..150 in l/c/l/browser/librarain.py, where we return a 503 error without doing any logging, but if we get rid of that code soon anyway, there is no need to touch it now [10:56] \o/ [10:58] That's why I didn't fix it. [11:07] Does anyone know why launchpad-dependencies depends on ubuntu-keyring? [11:07] it will be the same thing [11:07] at a guess. [11:07] launchpadlib had a patch land today to use gnome-keyring [11:08] ubuntu-keyring is the Ubuntu archive keys. [11:08] oh blah, of course. [11:08] uhm, dunno. [11:15] lifeless: want to review this branch: https://code.edge.launchpad.net/~adeuring/launchpad/no-feng-shui-in-the-server-room/+merge/36427 ? === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan [12:03] Morning, all. [12:13] The level of failures from ec2 and buildbot lately is driving me insane. [12:13] ec2/land should become ec2/land-if-you-are-lucky [12:17] deryck, tbh, it feels this bad for me all the time [12:18] maybe I've just been more productive lately, and I'm only now reaching jml levels to notice it. :) [12:19] perhaps. :) === mrevell is now known as mrevell-lunch === Ursinha-afk is now known as Ursinha === mrevell-lunch is now known as mrevell [14:01] adeuring, hi. I noticed you started on bug 594247. Can we consider the librarian OOPS issues fixed now? At least, all we can do for now? [14:01] <_mup_> Bug #594247: searchTasks with structural_subscriber times out regularly [14:02] deryck: yes. it is still unclear to me why I could not find as many OOPS reports as I would have expected, but looking longer at this without a better clue is pointless. [14:03] and if we have a similar situation again, we should either see the OOPS number or we should get another error due to a missing OOPS ID [14:03] adeuring, ok, cool. I agree. For some reason, I thought there was another bug open on this. [14:12] Hooray for throwing things at EC2 until they stick. [14:26] gmb, ? [14:26] mars, Windmill failed in EC2, didn't fail locally; I resubmitted. [14:27] gmb, an intermittent failure? [14:27] could you send me the log? [14:29] mars, Sent. [14:29] thanks [15:00] hrmm, on bugs for projects, is it not possible to target a bug only to a release other than trunk? i notice that if i target to trunk, it changes to say "status tracked in trunk", but if I only target the bug task to a different series, then it still has the normal bug task, as well as the series task [15:02] can someone help me understand the difference in testing between layers and fixtures? [15:12] bac: I think you can say this is fixed on edge now: https://bugs.edge.launchpad.net/launchpad-registry/+bug/252889 [15:13] <_mup_> Bug #252889: Project attributes should be altered from a link next to assertions about them [15:16] cr3, layers are from the Zope world. Each layer has it's own setup and teardown, and that is run once before all the tests in that layer are run, and tearDown after. A fixture, on the other hand, is set up and torn down for each test that makes use of it. [15:18] cr3, our layers are in a hierarchy, so to write a pagetest you must also set up a full librarian service, a full database, a full component registry - they are not composed easily. Fixtures can be easily composed: you only .useFixture() what you need. [15:18] sinzui: i'll have a look [15:20] bac: I think that since you removed the block on the progress bar, the links to configure an app are on the page. I think we will be ready to remove the "Uses launchpad for" chunk next week [15:22] mars: all clear now, thanks! [15:39] benji, can you point me to a file or test that shows how to export an error over the api? [15:39] sinzui: sure, one sec [15:40] sinzui: lib/lp/registry/model/product.py:456 [15:40] thank [15:40] s [15:40] np [15:45] Erm. [15:45] There are two methods now? [15:45] What happened to annotating exception classes with webservice_error? [15:53] wgrant: this mechanism is for individual exceptions (not classes); for example if you're going to raise a KeyError because some key passed in was not found [15:54] Hmmmm. === deryck is now known as deryck[lunch] [16:23] when defining a database schema, there's sometimes not a meaningful difference between a cell containing none or empty string (''). so, what's the preferred approach to keeping the schema and application layer code sane? [16:26] hm, I'll also as in #postgresql, I've been wondering for a while what are the implications to consider [16:26] s/as/ask/ [16:35] I should have a look at the launchpad schema and see if there's ever a situation where a text or varchar column can be null... [16:37] on an unrelated note, is there an unwritten rule about when to use which quotes, ' or "? === deryck[lunch] is now known as deryck === benji is now known as benji-lunch === Ursinha is now known as Ursinha-lunch === matsubara is now known as matsubara-lunch === beuno is now known as beuno-lunch === salgado is now known as salgado-lunch [17:31] gary_poster, should lib/canonical/launchpad/doc/profiling.txt be moved to lp.services.profile/doc? Or is there a better location? [17:33] mars, I decided not to make that change for my own branch--that was where it was when I found it. But yes, before I knew that file existed, I was putting documentation in lp/services... [17:33] So if your branch is small enough to include the move, and you want to, go for it AFAI am concerned. [17:34] ok, thanks [17:34] np === al-maisan is now known as almaisan-away === gary_poster is now known as gary-lunch === jcsackett is now known as jcsackett|lunch === benji-lunch is now known as benji === gary-lunch is now known as gary_poster === beuno-lunch is now known as beuno === salgado-lunch is now known as salgado === jcsackett|lunch is now known as jsackett [19:22] morning [19:26] morning, lifeless. Care to review a small branch for me? [19:26] sure [19:26] lifeless, thanks! https://code.edge.launchpad.net/~deryck/launchpad/fewer-milestone-queries-bugtask-index/+merge/36458 [19:27] lifeless, I don't think this will make significant difference yet, but still think it's worth doing. [19:28] every bit helps [19:29] did you see that activites is 2.5 seconds alone, for bug 1 [19:29] <_mup_> Bug #1: Microsoft has a majority market share < [19:29] lifeless, I didn't. But I knew from your bug mail that activities and comments were the next big two. [19:31] rockstar, hi. Is the yui in lazr-js the latest? If I try to bug fix in this, will my deploying this to lp be delayed by yui version upgrade on lp? [19:32] deryck, the yui in lazr-js is indeed the newest. The only real thing blocking the update of lazr-js is the thing I raised on the mailing list last week (python dependencies) [19:32] rockstar, ok, so build issues not library compatibility? [19:33] deryck, yeah. [19:33] ok, thanks [19:33] deryck: approved; coupla tiny tweaks you can make if you feel like it [19:33] deryck, in the first branch I tried it on, I needed to rename all yui- classes to yui3-, but that's it (as I remember) [19:33] lifeless, great, thanks! [19:34] rockstar, gmb has to get the widget in lp very soon. And I'd like to see this bug fix I'm about to put up in lp, too. [19:34] wizard widget, rather [19:34] deryck, yeah, I saw he just landed it. I will be working on this tonight in fact. [19:35] ah, cool. [19:35] deryck, I also have a hard dependency on a new yui. [19:35] ah, ok, so this should move forward then. ;) [19:36] deryck, ideally, we aren't tied to lazr-js to upgrade yui. Unfortunately, I don't think that will happen. [19:40] rockstar, there isn't a YUI wrapper around substring search is there? i.e. prettier than foo.indexOf('some string') > -1 ? [19:41] deryck, no, but feel free to write one. I think it'd be beneficial to all. [19:42] ok, I could do that. Not sure I'll do it today to be honest. [19:43] The lazr-js build step makes me feel less inclined to be opportunistic like this. === matsubara-lunch is now known as matsubara === Ursinha-lunch is now known as Ursinha [19:55] abentley, what you do know about BranchWithSortKeys view? [19:55] rockstar, Sorry, no idea. [19:56] abentley, from the comments, it appears to be a hack for when we used SQLObject, and was intended to be removed when we switched to Storm. [19:56] abentley, I'm going to delete it and see what blows up. [19:56] (It's blocking my merge queue db patch currently) [20:04] deryck: is it impossible to target a bug to only affect a series other than trunk? [20:04] dobey, I believe the series has to be the active development branch. [20:04] or development focus, I think we call it. [20:06] deryck: so there has to always be a bug target for the development focus, even if it doesn't actually affect it? [20:06] lifeless, have you come to any conclusions about that security stuff? [20:07] lifeless: hi there, I'd appreciate your advice on writing unit tests: should helper methods like makePerson which do not strictly related to unit testing be defined in a factory, whereas other methods like assertFoo which relate more to unit testing be defined in a TestCase derived class? [20:08] dobey, sorry, I don't follow what you mean there. The idea is that you can only nominate bugs for an active series. Not saying this is ideal, but that's the way it is currently. [20:08] abentley: no sorry; I've been mainly head down on just performance the last week [20:08] abentley: I'll revisit the mail in detail today [20:08] lifeless, cool. [20:09] deryck: i mean, if i click "Target to release" and select only series other than trunk (or i guess the development focus, as it seems), i would expect it to only be tracked in those series [20:09] cr3: http://rbtcollins.wordpress.com/2010/05/10/maintainable-pyunit-test-suites/ http://rbtcollins.wordpress.com/2010/09/18/maintainable-pyunit-test-suites-fixtures/ [20:09] cr3: (that is, things like factory are great, putting helpers on subclasses of TestCase isn't great) [20:10] cr3: but the urls are much less pithy [20:11] lifeless: thanks! [20:11] deryck: is that not currently possible? [20:12] deryck: or should i find a bug to point you at, which shows the issue i'm trying to find a solution to? [20:12] dobey, sorry, I think I'm confused and thinking of another constraint. If you click "target to release" and you select any series on that page, it should only be linked to that series. [20:12] dobey, and yes, showing the issue might help me understand better [20:13] fwiw, I was thinking of the conjoined master condition where a conjoined bugtask is created when the series is the development focus. [20:14] deryck: https://bugs.edge.launchpad.net/ubuntuone-client/+bug/645519 [20:14] <_mup_> Bug #645519: DBus delete_share doesn't work for shares made by the user to others [20:16] deryck: see how it shows status for both the project and stable-1-4? if i target to 'trunk' also, then it will show 'tracked in Trunk' instead of status there. but if i don't target to trunk, it will always show status like that [20:17] dobey, ok, so I was thinking of the right thing. That's a conjoined bug task, where the status is only tracked in the series, not the main project bug task. The series has to be the development focus to get that joined bug task. [20:22] deryck: ok, so there's no way to do what i want, basically? [20:23] dobey, if what you want is to have the status only tracked in the series for any series you target to, then no. [20:24] I'm not sure of the historical reasons why this choice was made, but I do think there is a bug asking for conjoined tasks on any series. [20:28] hrmm, i'm having trouble finding such bug filed against malone [20:28] should i file a new bug? [20:28] dobey, sure, file a new one, and I'll dupe if I find one. [20:29] dobey, I doubt we'll work on this, though. Not anytime soon. But having a bug to track it would be nice. [20:29] :( [20:30] Sorry. Just too much needs doing to even get to that. [20:30] I suspect we need to gather the 'rules' for the current implementation and go back to ground zero :) [20:30] heh [20:30] eventually [20:31] yeah, that's partly why I say we won't work on it, too. It's a largish design decision that I don't want to revisit with everything else we're active on. [20:31] completely agreed [20:32] rockstar, I've got a lovely 4 line lazr-js branch. Care to review it? [20:33] https://bugs.edge.launchpad.net/malone/+bug/646277 [20:33] <_mup_> Bug #646277: Targetting to series should result in conjoined bug task [20:38] I don't find a dupe either. And I searched mpt's reported bugs. :-) [20:39] hah [20:39] heh [20:39] now to figure why bzrlib is deciding to lie to me in the form of an Exception [20:56] rockstar, you still around? [20:56] deryck, yup. [20:56] (On the phone) [20:56] ah [20:57] rockstar, I'm EOD'ing soon. You care to review lazr-js offline for me? https://code.edge.launchpad.net/~deryck/lazr-js/stop-all-those-null-choice-edit-icons/+merge/36494 [20:57] deryck, sure. [20:57] thanks. [20:57] rockstar, if you make me write a test, I will. But in this case, I think it's really silly. [21:03] lifeless, around? [21:03] hi === lifeless changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 2 of 10.10 | PQM is open for business | firefighting: - | https:/​/​dev.launchpad.net/​ | Get the code: https:/​/​dev.launchpad.net/​Getting [21:03] ra ra ra [21:03] still hacking in worcestershire [21:04] garh, more 2.6 I missed [21:04] jml: I'm going to use your name again :) [21:04] lifeless, only if you review my incremental failure patch in testr. [21:05] lifeless, https://code.edge.launchpad.net/~jml/testrepository/show-failures-incrementally-613152/+merge/31765 [21:05] jml: I can leave prod broken if you'd prefer ;) [21:05] jml: its on my list, I'm keen to have it. [21:05] jml, do you know anything about BranchWithSortKeys. It seems to pre-date my time on Launchpad. [21:05] lifeless, cool. rs=jml [21:05] hah [21:05] rockstar, thumper knows all about it. [21:05] rockstar, I never really understood the need for it. [21:05] jml, dammit. thumper is unavailable today. [21:05] rockstar, it seemed to be some crappy performance hack afaict. [21:05] rockstar, a cunning trick. [21:06] jml, yeah, the comments indicate that it could go away when we moved to Storm. [21:06] * rockstar remembers us moving to storm a very long time ago. [21:06] rockstar: hi? [21:06] rockstar, I can search my mail for clues [21:06] * bigjools waves [21:07] lifeless, so, I pinged you, but I'm not sure you're the best to help. [21:07] lifeless, basically, I dropped a pile of columns from the DB, but I can't generate newsampledata because the old sampledata is now all screwed... [21:08] ...and I REA-HE-LLY don't want to edit current.sql by hand if I don't have to. [21:08] rockstar: ok, so the easiest way is probably: rebuild with db-stable's schema., apply your patch, and output the sampledata [21:08] lifeless, ah, 'tis a good idea. [21:08] rockstar, seen https://bugs.launchpad.net/bugs/154016 ? [21:09] jml, I get a nice fancy 403 there... [21:09] rockstar, looks like mwhudson also knows about it. [21:09] me too! [21:09] lifeless, do you have duck privs? [21:09] jml, yeah, he was the next person I was going to harass. [21:10] jml, basically, I've decided I'm going to kill it and see what breaks. [21:10] ...Although that might make lifeless cry. [21:10] rockstar, I've found a patch of his from 2007-10-16 [21:10] jml, holy crap. Data mining FTW! [21:10] rockstar, lifeless (and I, for that matter) generally approve of trying stuff [21:10] jml, yeah, but if it really ends up killing performance, lifeless will hit a child. [21:11] rockstar, kiwi kids are tough. it's a rugby thing. [21:19] rockstar: it had to do with sql object not allowing sorting by columns that weren't returned [21:19] rockstar: yes Storm can and it should be fixed [21:19] * thumper isn't here [21:20] thumper, okay. I'm killing the view. [21:20] rockstar: good [21:20] (The merge queue patch fights with it) [21:24] lifeless, something to make your life a bit easier: a branch that checks for Python 2.5 compatibility when you run 'make lint': https://code.edge.launchpad.net/~mars/launchpad/add-py25-lint [21:25] mars: tie it into make check to bb will enforce it and I'll be happy ;) [21:25] lifeless, there is also a merge proposal for it. I think it is floating around somewhere in the Launchpad system ether. I'm sure it will show up somewhere. [21:25] s/to/so/ [21:27] there it is: https://code.edge.launchpad.net/~mars/launchpad/add-py25-lint/+merge/36502 [21:30] mars: oh, I see [21:30] mars: we don't have py2.5 on the lucod builders do we? [21:31] I don't believe so [21:55] Oh crap. Did we generate sampledata on pgsql 8.3 again? [22:01] morning === salgado is now known as salgado-afk [22:27] Wow. Skype crapped itself at the end of that call. [23:49] has anyone tried local codebrowse recently?