[00:00] rubylicious [00:00] mbarnett: Which was the old version of libc-bin? [00:00] That's the only vaguely interesting one, and it looks boring :( [00:01] https://pastebin.canonical.com/44062/ [00:01] lifeless: That's what I would have done. [00:01] mbarnett: Hmmm, that's a bit more interesting. [00:01] less rubylicious [00:02] Yet still very boring. [00:03] mbarnett: Do you know how to apply pygdb to codebrowse? [00:04] i do not [00:04] mwhudson: Could you assist with interrogating codebrowse2? [00:05] mbarnett: We tried to do it yesterday, but the process accidentally got killed. [00:05] loggerhead history doesn't seem to have naything interesting [00:07] wgrant: yeah, but let me grab some lunch so i can concentrate a bit [00:07] unfortunately, we are about to go losaless. [00:07] mbarnett: No spm? :( [00:07] spm: is pretending that flying half way around the world is tiring. [00:07] Heh. [00:11] ah [00:15] well, i do actually need to go assault my face with some dinner. Do you want me to leave codebrowse 2 in its degenerate state and try and hop back later? Or shall i restart it to avoid the potential (at least a bit) of another outage? [00:16] Personally I'd leave it. [00:16] They seem to die in tandem now. [00:17] yeah [00:17] okay [00:20] lifeless: Your closing-bugs-from-changelogs.txt failure is really confusing. [00:22] Ah, I see now. [00:23] wgrant: yes, thus asking for help [00:24] lifeless: I have a quick fix, but I am looking at ways to actually fix the test properly. [00:25] Meh, quick fix it is. [00:26] lifeless: http://pastebin.ubuntu.com/573729/ [00:26] lifeless: It looks for a packageupload with a changesfile in the upload_distroseries. [00:26] cool [00:26] So if we set the upload_distroseries to something else, the test can continue to illegally create multiple packageuploads. [00:26] I'll just wrap this arc and then apply and test [00:29] * wgrant foods. [00:40] wgrant: Thanks, I believe I have successfully comprehended the user's corrupted merge directive email now [00:57] maxb: I can give you more traceback or the email text if you need them. [00:59] The user pasted the email text in the question, and on close inspection it is indeed malformed, so it's ok [01:00] Great, thanks for dealing with that. [01:00] Its an interesting feature, which I keep thinking I might use [01:01] Apart from gpg-signing mails without involving thunderbird is something I've not figured out yet [01:01] Has anybody had an ec2 run Windmill-fail this week? [01:01] maxb: Doesn't bzr do that for you? [01:03] maxb: gpg | mail -s ... ? === MTecknology is now known as billmeye === billmeye is now known as MTecknolgoy === MTecknolgoy is now known as MTecknology [01:11] wgrant: My evil plan to fix my branch from yesterday using + didn't work. :-( [01:13] StevenK: :( [01:13] My evil plan to disable WindmillLayer is getting stronger. [01:15] wgrant: So I suspect the only option is to stop using structured and escape the arguments before interpolating [01:17] StevenK: Or interpolate the recipe manually, before you go into structured. [01:18] Not a bad idea, just struggling how to implement that. [01:19] And trying not to context switch [01:19] Switching between branches of devel and db-devel really sucks [01:28] oh, I meant gpg-signing in a way integrated with bzr send, that doesn't involve saving the merge directive off to a file, manually signing, and sending [01:30] maxb: ask in #bzr, or read the docs ;) [01:32] I read the source, and ended up trying to hack a plugin :-) [01:32] maxb: -why-?! [01:38] wgrant: was there a sqlite change perhaps? [01:38] lifeless: That was my guess. [01:38] But it doesn't look like it. [01:38] But the list I obtained may well not be exhaustive. [01:42] Why? Well, I have to confess, because it felt like something that ought to be possible :-) [01:42] maxb: I mean, it is possible for most mailers I know of, withiut plugins [01:43] maxb: what mailer do you use? [01:57] Project db-devel build #403: STILL FAILING in 5 hr 35 min: https://hudson.wedontsleep.org/job/db-devel/403/ [02:00] do we still use personlocation for anything? [02:00] No. [02:00] sinzui: ^ [02:00] NFI where those queries come from, either. [02:01] File "/home/robertc/launchpad/lp-branches/working/lib/lp/registry/model/person.py", line 708, in time_zone [02:01] if self.location is None: [02:01] File "/home/robertc/launchpad/lp-branches/working/lib/lp/services/propertycache.py", line 116, in __get__ [02:01] value = self.populate(instance) [02:01] time localisation [02:02] Oh, that's on PersonLocation? :/ [02:02] I always assumed that was just the lat/lon. [02:02] apparently not [02:03] guess how many queries all_distro_archive_ids creates [02:03] That could be a bug. [02:03] Four? Five? [02:03] primary, partner, debug.. maybe only three. [02:03] actually two [02:03] :( [02:04] from this call to getCurrentSourceReleases [02:04] hmm [02:04] time ot land tihs and get the branch changing that landed [02:04] Ahh [02:08] https://code.launchpad.net/~lifeless/launchpad/bug-724033/+merge/51676 [02:08] Has anybody looked at the Windmill SNAFU in depth? [02:09] I am wondering if the xvfb-run issue is in fact a symptom of the killing, not the hang. [02:09] xvfb-run issue? [02:10] lifeless: See the end of https://lpbuildbot.canonical.com/builders/lucid_lp/builds/669/steps/shell_6/logs/stdio [02:10] We get an X error. [02:11] I've been presuming that was seen at the start of the hang. [02:11] But maybe it's because of the mass murder after the hang is detected. [02:13] I don't see an X error [02:13] oh [02:15] There is the occasional thread leak on ec2. [02:15] yes, I think the X process went before the tes [02:15] t [02:15] And locally it just completely fails. [02:24] StevenK: mumble? [02:25] thumper: I was about to have some lunch, but sure. [02:25] StevenK: it'll be quickish [02:32] wgrant: thanks, thats off to ec2 now [02:32] lifeless: Great. [02:34] who is meant to be OCR today [02:34] WILLIAM! [02:35] wgrant: I can haz review please [02:36] Oh, so I am. === wgrant changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | firefighting: - | On call reviewer: wgrant | https://code.launchpad.net/launchpad-project/+activereviews [02:37] lifeless: Ah, I see you are realising the precaching resultset this time :P [02:38] ftw [02:38] on the rusty scale, that interface is problematic [02:38] Yes [02:51] https://code.launchpad.net/~thumper/launchpad/fix-mantis-warnings-bug-218384/+merge/51679 anyone? [02:51] https://code.launchpad.net/~wgrant/launchpad/squash-cw-protocolerrors/+merge/51680, also anyone? [02:51] thumper: Looking. [02:52] wgrant: thansk [02:52] wgrant: I'll look at yours [02:53] Thanks. [02:56] wgrant: do we need the transaction.commit(), or is a store flush enough? [02:56] thumper: checkwatches checks that no transaction is active. [02:56] So it has to be a commit. [02:56] ok [02:57] grr [02:57] 0 tests run in 4:11:34.318468, 0 failures, 0 errors [02:57] wgrant: has your fix landed yet ? [02:57] lifeless: merge devel. [02:58] wgrant: shouldn't the ec2 image start with devel? [02:58] wgrant: or is it client side? [02:58] thumper: Yes, but ec2test-remote.py is copied from the local branch. [02:58] wgrant: ok [02:59] wgrant: I had a windmill fail in ec2 [02:59] lifeless: Could you mentor https://code.launchpad.net/~thumper/launchpad/fix-mantis-warnings-bug-218384/+merge/51679? [02:59] lifeless: When? [03:00] today [03:00] Forward pls. [03:00] I want all the data I can get. [03:00] sent [03:00] How do I actually get a lazr-js branched landed to trunk (after the mp step)? [03:01] grr [03:01] wtf: [03:01] print test_tales("branch/fmt:bzr-link", branch=branch) [03:01] Differences (ndiff with -expected +actual): [03:01] - lp://dev/fooix [03:01] ? ^ [03:01] + lp://dev/~eric/fooix/bar [03:01] ? +++++++++++ +++++++++ ^^^ ++++++ ++++ [03:03] lifeless: Dev focus setting fail? [03:05] * thumper agrees with wgrant [03:05] huwshimi: commit to trunk [03:05] huwshimi: I don't think it is PQM controleld [03:06] thumper: Thanks. [03:08] thumper: Thanks. [03:14] thumper: could you eyeball bug 702524? [03:14] <_mup_> Bug #702524: Merged branches keep 'Development' status when their merge proposal is marked as 'Merged' < https://launchpad.net/bugs/702524 > [03:14] lifeless: yep [03:14] lifeless: although I think I know the answer [03:14] thumper: can you mentor wgrants review of https://code.launchpad.net/~lifeless/launchpad/bug-724033/+merge/51676 ? [03:15] wgrant: Can haz review? https://code.launchpad.net/~stevenk/launchpad/db-recipe-description-really-this-time/+merge/51682 ? [03:16] lifeless: Can you mentor my review of StevenK's? [03:16] wgrant: :-( [03:16] wgrant: I know where you live ... [03:17] :( [03:18] wgrant: yes [03:18] just chewing through 3 hours mail ;) [03:18] Thanks. [03:19] wgrant: What was your plan with adding recipe first? [03:20] lifeless: yes, I'll look at wgrant's review [03:21] StevenK: You could put a %%s in the template, format the other args into it using structured(), then format the escaped recipe in using %. [03:21] *or* you could fix structuredstring to work nicely with other structuredstrings. [03:23] Does anybody have a valid objection to disabling WindmillLayer until someone works out what is wrong? [03:24] * StevenK tries to remember how to do type checking in Python [03:24] I have never managed to get it to run reliably on any local machine, it is entirely broken on Natty, it leaks threads sometimes in random tests, and sometimes hangs entirely. [03:25] StevenK: isinstance? [03:28] wgrant: Revision 12469 can not be deployed: needstesting [03:29] looks like its half-qaed - were you looking at that ? [03:29] lifeless: One was a test change. [03:29] The other needs a LOSA or somebody to decide that we don't care. [03:30] is there a library of matchers for use with storm anywhere? [03:31] there are some in the lp tree [03:31] like StormRecorder + HasQueryCount [03:31] lifeless: Do you have any hints for debugging thread garbage? [03:31] I'm more interesting in query/result set stuff currently [03:32] https://code.launchpad.net/~james-w/launchpad-work-items-tracker/storm/+merge/51684 [03:32] (includes unit testing of lplib-using code) [03:32] I trhink the storm folk have started using matchers [03:32] so storm specific stuff perhaps land there? [03:37] nothing jumps out from the filenames [03:39] GRRRR [03:39] stupid dist utils [03:41] * thumper stabs it in the face [03:45] oops [03:46] oh well, hopefully it won't break the build [03:46] lifeless: Hm? [03:47] wgrant: I lp-landed rather than ec2 landed [03:47] Heh. [03:47] lifeless: do you know anything about setup.py, tests and the additional_tests method? [03:47] thumper: a -little- [03:47] thumper: lazr-js ? [03:47] lazr.enum [03:47] ah [03:47] trying to run: ./setup.py test [03:47] should that cause the additional_tests method to be checked? [03:48] because it isn't [03:48] I have a pdb break point in there [03:48] and it isn't breaking [03:48] http://mail.python.org/pipermail/python-checkins/2006-March/050452.html [03:48] I'm trying to get it to run the actual tests [03:49] so additional_tests is for non unittest tests [03:49] what non unittest tests do you have? [03:49] it is to load doctests [03:49] ah, what it means is 'tests that loadTestsFromName does not find' [03:50] so, I personally /hate/ setup.py's test support [03:50] I'm starting to too [03:50] I would always just use a test_suite method [03:51] lifeless: O hai. Can haz review of wgrant's review of my MP? [03:52] I did? [03:52] lifeless: I can't see your scribble on https://code.launchpad.net/~stevenk/launchpad/db-recipe-description-really-this-time/+merge/51682 ? [03:53] done [03:53] must have glitched [03:53] lifeless: Thanks, tossing it at ec2 [03:54] lifeless: Do you know how to get details on threads that are leaked by tests? [03:54] wgrant: yes [03:54] I've stuck a pdb in there, but I can't get much useful from the Thread. [03:55] ok [03:56] so depending on how it was constructed [03:56] subclasses have a replaced run() (IIRC), typical uses supplies a callable to the thread which its run() will call [04:00] wgrant: Can you see any clues on http://pastebin.ubuntu.com/573778/ ? [04:00] wgrant: you can also attach gdb [04:00] wgrant: and get pretty good info from thread apply all pybt [04:00] lifeless: Thanks. [04:02] I thought we'd changed thread leaks to be non fail though [04:04] They are a non-fail. [04:04] But Windmill sometimes leaks them, and Windmill sometimes fails. [04:04] I am hoping that this is not a coincidence. [04:09] wtf- librarian.txt fail in my /branches optimisation branch [04:10] lifeless: I saw one of those a week ago. [04:10] What is the error? [04:10] A 200 UploadFailed? [04:10] yeah [04:11] passes locally [04:11] Yeah. [04:11] And on ec2 >9/10. [04:16] wgrant: Can haz clue? [04:16] StevenK: recipe_build_details is probably raising an AttributeError or similar. [04:17] Hrm. A better traceback would be awesome. [04:18] TypeError: not all arguments converted during string formatting [04:18] :-( [04:19] Ah ha, I get it. [04:19] \o/ another one bites the dust [04:22] wgrant: so, bug 688130 - what needed losa answering? [04:22] <_mup_> Bug #688130: Statistics clean-ups and extra tests < https://launchpad.net/bugs/688130 > [04:22] lifeless: It needs the rosetta pofilestats script to be run. [04:27] I think my branch:+index patch is reasonably successful :) [04:28] https://code.qastaging.launchpad.net/~software-store-developers/software-center/trunk/+index rendered first hit on qastaging. Which is awesome, if I do say so myself. [04:30] Project devel build #488: STILL FAILING in 5 hr 29 min: https://hudson.wedontsleep.org/job/devel/488/ [04:32] thumper: Actually it appears that we do use PQM for lazr-js [04:33] Jenkins, you make me sad. [04:33] checkwatches.txt passed, but a Windmill test failed? Baaaaah [04:34] thumper: Does that mean landing with lp-land or something? === MTecknology is now known as pfSensory [04:36] huwshimi: pqm-submit [04:36] wgrant: Thanks === pfSensory is now known as MTecknology [04:37] bzr pqm-submit -m "[r=foo] bar" --public-location=bzr+ssh://bazaar.launchpad.net/~path/to/branch --submit-branch=bzr+ssh://bazaar.launchpad.net/~path/to/trunk [04:39] No fair actually landing with '[r=foo] bar' [04:39] wgrant: Thanks, I was just trying to figure all that out :) [04:40] StevenK: Oh, cmon [04:42] lifeless: bug-724033 seems to have an empty commit message. [04:48] wgrant: Sucess! [04:49] StevenK: Exccellent. [04:49] wgrant: see https://pqm.launchpad.net/ [04:50] lifeless: Ah, great. [04:52] StevenK, wgrant: DistroSeries.parent_series seems to have shifted in meaning a bit… should we keep the old "previous series in same distro" meaning or get rid of it? [04:52] jtv: It hasn't shifted. [04:53] Any derivation stuff that is using it now is not altering its meaning; it's just using it until we introduce something to replace it. [04:53] Do we expect the replacement to work in the same way? [04:54] Awwwww. The user on prod with deleted recipes doesn't exist on qastaging [04:54] That is not known. [04:55] wgrant: okay, do we expect to have DistroSeriesDifferences between e.g. maverick and natty? [04:56] jtv: I don't believe so. [04:56] Not in the initial implementation, at least. [04:56] That isn't the point [04:58] Publishing details [04:58] * Built by deleted recipe for Jelmer Vernooij. [04:58] \o/ [05:00] Yay. [05:00] * wgrant is QAing the greatest OOPS fix of all time. [05:01] wgrant: Oh, the checkwatches stuff? [05:02] StevenK: No, the loggerhead thing. [05:02] Unfortunately it is slightly non-trivial, because both qastaging and staging are borked. [05:11] Sigh. Can't hear myself think. [05:13] Some ungrateful person with a leaf blower is outside. Doesn't he know that the BoM forecast high winds for tonight, so it's POINTLESS [05:13] Heh. [05:14] Hmm, this is slightly upsetting. [05:15] wgrant: I fervently hope that remark is not connected to SteveK's. [05:15] No, codebrowse. [05:15] Ah well, talk of upsetting. [05:16] On the bright side, "parallel a-f" has landed on qastaging. [05:16] And mawson. [05:16] And it works. [05:17] You tested it? [05:17] Yes. [05:17] Great! Thanks. I'll mark it qa-ok then. [05:17] I already did. [05:17] Didn't I? [05:17] Oh, looks like you did. :) Pages don't refresh very well here. [05:21] GAH! He's back! [05:22] I have somewhere that guy can store the leaf blower when he is finished using it ... [05:29] D: [05:29] Codebrowse, you suck. [05:33] lifeless: So, you know how that loggerhead fix was meant to stop loggerhead from OOPSing when haproxy checked it? [05:35] StevenK: do SPRs ever get deleted? I'm asking because SPPH.supersededby isn't indexed. [05:39] StevenK: do SPRs ever get deleted? I'm asking because SPPH.supersededby isn't indexed. [05:41] jtv: Not at the moment. [05:41] :( [06:10] No IS for a week and a half makes me very sad. [06:14] wgrant: yes? [06:15] lifeless: Well, my testing showed that it in fact introduced a new OOPS. It does, but in a much rarer case than the one it fixes. [06:15] Bug #726985 [06:15] <_mup_> Bug #726985: codebrowse OOPSes with GeneratorExit when connection closed early < https://launchpad.net/bugs/726985 > [06:15] I think we should still deploy. [06:15] Also, feel like waking elmo? [06:15] wgrant: is that if you abort from a client ? [06:15] guava has had a heart attack again. [06:15] *sigh* [06:15] is s gsa around ? [06:15] I pinged pjdc/bradm a few minutes back. [06:15] No response. [06:16] give them 10 [06:16] then dig up the number and call [06:16] I'm mid-dinner, sorry [06:16] k [06:16] lifeless: I believe the client has to be in the DC, bypassing haproxy. [06:18] bouncing [06:18] elmo: tiaz might already be. [06:18] (see #is) [06:39] StevenK: do you have a clear idea of what DSDJ will look like, database-wise? [06:43] jtv: One row [06:44] StevenK: one row per object? Ground-breaking. [06:44] Maybe I'm just not aware of the actual design questions you're facing. :) [06:44] jtv: A DSD already has an interface and a schema ... [06:45] Oh, the job itself. Er. Not sure. :-) [06:45] Yes, the part I'm quite interested in right now is whether, for the initial population of DSD, I can create DSDJ rows directly in SQL. [06:46] As tends to happen, a join structure has formed itself in my mind's eye quite early on and it takes ages to figure out any reasons why it might be wrong. :)/ [06:46] I was also wondering about supersededby… When is a SPPH "superseded" exactly? [06:47] I imagine I can ignore ones that have that column set, but might that also be a sufficient condition? [06:49] In other words, if I selected from SPPH on sourcepackagename and distroseries where superseded is null, would that give me (more or less) just the SPPHs I wanted or would there be a lot of dead wood in there? [06:49] Selecting on supersededby is not going to give you anything useful. [06:50] Ah [06:50] Conversely, will I be able to ignore ones where supersededby is not null? [06:50] You should filter on status, if anything. [06:50] (And also, why is supersededby not indexed? Do SPRs never get deleted?) [06:50] SPRs do not get deleted at the moment. [06:51] What are you trying to do, exactly? [06:51] And why? [06:51] Trying to figure out how to get the "latest" SPPH for a given source package. [06:51] jtv: due to the bug about not having a sourcepackage object in the db [06:51] Source package, source package name, or distribution source package? [06:51] jtv: this is actually hugely expensive [06:52] getCurrentSourceReleases does it [06:52] wgrant: source package [06:52] jtv: Are you sure? [06:52] lifeless: ah, thanks [06:52] well [06:52] it gets what most people will think of as a source package :) [06:52] which is not a SourcePackage or DistroSeriesSourcePackage [06:52] If you have a SourcePackage, you should be able to call .currentrelease. [06:52] wgrant: I was until you asked that. :) A given sourcepackagename for a given distroseries… I *think* that's what I want! [06:53] Right, that's an actual SourcePackage. [06:53] except its versioness [06:53] which is mondo confusing modelling [06:53] lifeless: I imagine what most people think of as a source package is what we call a distributionsourcepackage… I've never heard of DistroSeriesSourcePackage. [06:54] Most people would think of an SPR as a source package. [06:54] jtv: no, most people think of source packages as 'source package release' [06:54] Ah [06:54] Indeed. [06:54] jtv: there is a 'most recent source package release' [06:55] I'd like to really overhaul the soyuz model [06:55] but not while we're in the hole [06:55] lifeless: How? [06:55] So should I be looking for the most recent SPR instead of the most recent SPPH when looking for distroseries differences? [06:56] lifeless: for someone who's postponing stuff until we're not in the hole, you sound suspiciously eager to get back into it. :) [06:56] More power to you, but… sounds like a tall order. [06:56] SELECT id FROM spph WHERE spph.distroseries = yourfavouritedistroseries AND spph.pocket = 0 AND status IN (1, 2) ORDER BY datecreated DESC LIMIT 1 [06:56] Oh, and spph.archive = yourfavouritearchive [06:57] wgrant: I don't have a specific schema handy. [06:57] wgrant: would the pocket and archive matter? [06:57] What are your vague thoughts, then? [06:57] wgrant: I would start by gathering all the actual use cases the distro *want* - partly what we do today, partly their wishlist. [06:58] and design to directly match that as a fast schema, with efficient solutions across the board. [06:58] and finally look at how to migrate. [06:58] StevenK: I can list some problems [06:59] jtv: The archive is essential. The pocket is less essential, but you probably still want to restrict it. [06:59] StevenK: we infer data on every operation; we have 1:M relationships that our business rules want to be 1:1; our schema supports invalid states [07:00] jtv: Since we don't know what it means to have a DSD to a non-Release pocket. [07:00] wgrant: oh do I get all the PPAs if I don't restrict on archive? Also, another thing that I think matters is the package. :) [07:00] jtv: Um, yeah, package would be nice too. [07:01] So that's a join through SPR I guess. [07:01] Right. [07:01] StevenK: our schema should naturally constraint the states to be valid; data learnt should not be reinvestigated on every operation [07:01] StevenK: we should be able to do things like '100 most recent daily builds' in 3-4ms. [07:02] StevenK: without 'denormalisation' [07:02] wgrant: if I neglected to restrict by archive, would that mean that I would get all the PPAs as well? [07:02] jtv: And copy archives and partner. [07:02] StevenK: basically the schema wasn't built to support fast queries, it was built as an object model for the archive/build space: which as a way to design a database leads invariably to performance and maintenance problems. [07:03] jtv: and other distributions in future ;) [07:03] lifeless: No, because we constrain by distroseries already. [07:03] lifeless: wouldn't the distroseries restriction take care of unwanted distros? [07:04] yes, mea culpa [07:04] as long as we don't try to share distroseries across distributions ;P [07:04] Hmm [07:04] That'd certainly simplify the work I'm doing now. [07:05] jtv: unless you also make productseries sharable across related project, -no-. [07:06] * jtv is not currently well enough to grok that sentence [07:06] anyway [07:07] Aha. All four hangs today have been the same branch, but some were partly drowned in other requests. [07:07] jtv: I'm saying we don't want the 'projectseries' and 'distroseries' concepts to drift further from each other. [07:07] Two different branches were involved yesterday. [07:07] But it was the same branch at the same time on each instance. [07:07] lock? [07:10] The requests were 15s apart, though. [07:11] And they do not match up in all cases. [07:11] oh, lifeless, a quick note: the check for read-only mode goes through the FS. Might it make sense to log that in the external-action timeline? [07:11] yes [07:12] I have this vague worry that we don't know how much it's costing us. [07:12] so, two things [07:12] a) if its checked outside the request context, we can't put it in the action timeline [07:13] but b) if its checkout outside the request context, it may not cost anything (e.g. if the main thread does it) [07:13] and c) we should do that in a thread and maintain it as global state anyhow [07:13] Checks outside the request context are likely to be few (per request). I'm more worried about calls inside requests—and therefore frequency more than latency. [07:14] Wiiindmiiiill!!! [07:14] Here, have some cheese, ja? [07:14] jtv: anyhow, at the moment, its local FS, if its being checked per request it will be hot and approximately free. [07:15] lifeless: I also know that the +translate page used to check it oh, at least dozens of times. [07:15] meep [07:16] meep indeed. I fixed that, and then you did your timelines, and now I think it'd be nice to stop ourselves from making the same mistake again. :) [07:17] wgrant has made some excellent progress towards us being able to fix the plumbing too [07:18] ... have I? [07:18] wgrant: checkwatches [07:18] wgrant: was the major source of omgwtfness [07:18] Ah, right. [07:18] Just pqm-submitted the next branch of that. [07:18] Dear infrastructure. A connection _can_ have a useful lifetime beyond 5 minutes, even if it does go quiet sometimes. [07:19] woo 711064 passed ec2 [07:19] lifeless: meep indeed. I fixed that, and then you did your timelines, and now I think it'd be nice to stop ourselves from making the same mistake again. :) [07:19] I think I have just 2 outstanding branches now [07:19] jtv: got that :) [07:19] 20:16 < jtv> meep indeed. I fixed that, and then you did your timelines, and now I think it'd be nice to stop ourselves from making the same mistake again. :) [07:19] Just making sure :) [07:19] 20:17 < lifeless> wgrant has made some excellent progress towards us being able to fix the plumbing too [07:19] lifeless: What sort of increase are we looking for there? [07:19] 20:17 -!- jtv [~jtv@27.130.65.129] has quit [Read error: Connection reset by peer] [07:19] s/for/at/ [07:20] wgrant: there are 12 queries averaging 1 second each; I've dropped the count to 2/3rds - they were doing a pair for a language, then one for the alt language. [07:20] Ah. [07:20] lifeless: anyway, I'm not sure we ever consciously made a decision of the sort of timescale a switch to read-only mode should operate at: instantaneous, when-the-GIL-is-passed, per-request… [07:20] wgrant: so 8 vs 12, so 4 seconds perhaps ? [07:21] jtv: Sounds like you are back in TH. TOT doesn't want to hold an SSL connection open for more than a few minutes for me, even if it is busy. [07:21] jtv: end of request is implied by our contract [07:21] stub: I am, though it's a non-governmental ISP === almaisan-away is now known as al-maisan [07:22] lifeless: makes sense… so then we should keep RO-mode in the request. We've had a small number of oopses from the switchover happening in mid-request—though maybe that was just an inappropriate check. [07:23] jtv: I'd be happy to have it in a background thread that polls every (say) 1000ms; and new requests read the current state from a global [07:24] IIRC, RO mode shouldn't kick in until the next request - there is a thread local that is checked at the start and end of the request. [07:24] jtv: that would - prepare for us signalling via e.g. rabbit instantly, or using a single centralised ini file. Would eliminate per-requeset overhead. [07:25] interesting [07:25] nearly no increase in OOPS with memcache turned off for a day on bugtask+index [07:25] \o/ [07:26] in fact, a *decrease* [07:26] 132 / 272 BugTask:+index [07:26] 187 / 476 BugTask:+index [07:26] Huh. [07:26] How expensive were the sets? [07:27] I saw individual misses at 24ms [07:27] I'm more interested in the sets. [07:27] sure [07:27] go look in the 27th oops report [07:27] I don't remember the figures offhand [07:32] wgrant: when I look for distroseries differences, I guess the archive restriction should be that the purpose be "primary." Debug archives don't sound like things that should be shared with derived distros… is that correct? [07:33] jtv: Debug archives only have binaries, anyway. [07:33] So yes, primary archive only. [07:33] If you go near partner, I will delete you. [07:33] Just such a shame to have to join through Archive just to get the purpose. [07:33] wgrant: don't worry, I don't believe in partner swapping. [07:33] jtv: You could just distribution.main_archive [07:33] Or as I like to say: "you should have kept the receipt then" [07:33] May be cheaper than joining. [07:33] wgrant: can a distribution have a currentseries of None ? [07:33] wgrant: ahhh thanks, that's going to be cheaper yes. [07:34] lifeless: Yes :D [07:34] wgrant: >< [07:34] wgrant: I'm looking at the bugtask-target-link-titles_txt failure I forwarded you [07:35] lifeless: If there is no current series, there is no current version. [07:35] wgrant: Distribution.main_archive happens to be defined as a query on Archive, you unhelpful twit [07:35] Project db-devel build #404: STILL FAILING in 5 hr 35 min: https://hudson.wedontsleep.org/job/db-devel/404/ [07:35] jtv: It is, yes. [07:35] jtv: May still be faster. [07:36] wgrant: obvious change made then [07:36] lifeless: The only case where there isn't a currentseries is when there are no series at all. [07:37] wgrant: could be—more of a "join or fetch separately" tradeoff [07:37] Right. [07:38] win [07:38] return hash(self.distroseries.id) ^ hash(self.sourcepackagename.id) [07:38] AttributeError: 'NoneType' object has no attribute 'id' [07:38] Aigh! SourcePackage.currentrelease is not cached, and SourcePackage.format evaluates it twice. [07:39] lifeless: WTF? [07:39] jtv: What is SourcePackage.format? [07:39] "it's in the model class" [07:39] Huh. [07:39] I didn't know that existed. [07:39] wgrant: dict.get(SourcePackage(packagename, None)) [07:40] jtv: Why are you using that? [07:40] wgrant: I'm not, just noticed it by accident [07:40] wgrant: SourcePackage hashes them together, and hte None comes from the same currentseries [07:40] Ah. [07:40] lifeless: :( === al-maisan is now known as almaisan-away [07:40] jtv: SourcePackageRelease.format was introduced a long long time ago and never used. [07:41] - evolution (Published Distro): 2.0 [07:41] ? ^^^ [07:41] + evolution (Published Distro): No releases [07:41] ? ^^^^^^^^^^^ [07:41] presumably, again, because the current series *isn't actually published in* [07:41] wgrant: I suppose I should be relieved. :) === almaisan-away is now known as al-maisan [07:42] jtv: No, you should delete it :P [07:42] wgrant: with all sorts of sadistic pleasure [07:46] yay dead waiting on librarian >< [07:47] File "/home/robertc/launchpad/lp-branches/working/lib/canonical/librarian/client.py", line 188, in addFile [07:47] response = self.state.f.readline().strip() [07:47] File "/usr/lib/python2.6/socket.py", line 397, in readline [07:47] data = recv(1) [07:47] KeyboardInterrupt [07:56] wgrant: of course, our friend Archive:+packages is back [08:02] ok this is annoying me [08:02] lifeless: What is? [08:02] repeated librarian hang in addFile [08:02] Hmm. [08:02] What does your librarian say? [08:02] wgrant: "sssh!" [08:03] Damn. [08:20] if we get a deploy done tomorrow morning [08:20] we can lower the timeout again [08:20] I think [08:22] omg [08:22] cve:+index you suck [08:22] 100 lookups for distribution [08:22] 'FROM Distribution [08:22] WHERE id IN ($INT) [08:22] ' [08:23] Hah. [08:23] how to bypass storms cache layer in one easy hit [08:25] wgrant: bug 727023 [08:25] <_mup_> Bug #727023: Cve:+index timeouts < https://launchpad.net/bugs/727023 > [08:27] wgrant: data for you on librarian shutdown issues [08:27] 2011-03-01 13:59:53+0530 [-] Failed to unlink PID file [08:27] Traceback (most recent call last): [08:27] Failure: exceptions.OSError: [Errno 2] No such file or directory: '/tmp/tmplhlibr/librarian.pid' [08:27] 2011-03-01 13:59:53+0530 [-] Server Shut Down. [08:27] wgrant: it shutdown ok, but its a little concerning [08:27] Hmm. [08:28] Never seen it hang before :/ [08:37] Hi everyone, first day on the job for me today! I hope you lp guys remember the "guy from the future" from Dallas ;-). [08:37] lifeless: Hi [08:37] wgrant: Hi [08:37] Welcome rvb! [08:38] wgrant: thx, I'm quite happy to be here and ready for action! I'm waiting for bigjools to come online but I still wanted to say hello. [08:38] rvb: hi, welcome [08:39] Julian should be around in 20 minutes or so. [08:39] lifeless: thx [08:39] rvb: Welcome! [08:39] StevenK: Hi [08:39] wgrant: can you eyeball lib/lp/bugs/browser/tests/bugtask-target-link-titles.txt and tell me why the evo publication in 'Published Distro' is not in the currentseries ? [08:40] lifeless: Is "because someone thought it was a good idea in 2005, and it was so" a valid answer? [08:40] wgrant: I think its oversight because getCurrentSourceReleases was bong [08:40] wgrant: The answer I need is 'change X to make it be in the current series. [08:40] wgrant: which may simply be 'do X to *set* a current series'. [08:41] lifeless: Have you tried overriding the series that getPubSource uses? [08:41] didn't know you could [08:41] It wouldn't be very useful if you couldn't. [08:42] ... so I guess that's a reasonable assumption. [08:42] wgrant: I make no assumptions about usability and soyuz guts. [08:47] good morning [08:47] Morning adeuring. [08:47] hi wgrant! [08:48] adeuring: Bug 688130 needs QA, and I'm not really clear on how to do it. [08:48] <_mup_> Bug #688130: Statistics clean-ups and extra tests < https://launchpad.net/bugs/688130 > [08:48] wgrant: I'll look at it [08:48] Thanks. [08:58] wgrant: this is a disaster [08:58] lifeless: What is? [08:58] lifeless: That test? [08:59] yes [08:59] Heh. [09:02] wgrant: tip of lp:~lifeless/launchpad/bug-279513 if you're feeling interested [09:02] it has a currentseries version of 1.0, not published [09:05] oh... frell [09:05] the current series changes when they make a new series midflight [09:07] so it invalidates out the current series [09:07] Hah, handy. [09:11] bigjools: Hi [09:11] rvb: Morning! [09:13] wgrant: whats the official way to freeze a distro series ? [09:13] wgrant: just assign the status ? [09:14] lifeless: Yes. [09:15] * bigjools brb === gmb` is now known as gmb [09:19] rvb: how are you doing? [09:20] bigjools: all right! [09:20] bigjools: ready for action! [09:20] rvb: I tried to send you a private message, did you get it? [09:20] bigjools: no [09:21] Hi [09:21] bigjools: all right, I got it now [09:33] gmb: O hai! Are you up for a review? [09:33] StevenK: Not just yet. If it's in the queue I'll take a look in the next 45 minutes or so. [09:37] gmb: At some point today is perfectly fine. [09:56] Project devel build #489: STILL FAILING in 5 hr 25 min: https://hudson.wedontsleep.org/job/devel/489/ === gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | firefighting: - | On call reviewer: wgrant, gmb | https://code.launchpad.net/launchpad-project/+activereviews === wgrant changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | firefighting: - | On call reviewer: gmb | https://code.launchpad.net/launchpad-project/+activereviews [10:40] gmb: Hi. [10:41] wgrant: (Mor|Eve)ning [10:41] gmb: Could you please review https://code.launchpad.net/~wgrant/launchpad/pygments-1.4/+merge/51725? [10:41] Fixes the codebrowse hangs that have plagued us since the weekend. [10:43] Sure [10:43] Ooh, complex. [10:43] wgrant: Done. [10:44] gmb: Thanks. [10:44] Very complex, yes. [10:46] wgrant: I love the way the decprecation warnings were overridden [10:47] bigjools: That's the way to do it. [10:48] adeuring: Any progress on that QA? I hope to be able to request a deploy in the morning to unbreak codebrowse. [10:48] And I really don't know how to do it myself :/ [10:49] wgrant: sorry, got distracted, but I'm looking now,. I still need some time to figure out how to test the branch properly [10:49] adeuring: Thanks. [10:51] wgrant: I meant that it's ignoring a valid problem [10:55] bigjools: Oh, right. === al-maisan is now known as almaisan-away === henninge_ is now known as henninge [11:04] gmb: Thank you for the review [11:05] np === jtv1 is now known as jtv === Ursinha-afk is now known as Ursinha [11:43] morning launchpadders [11:46] Rolling back thumper's branch. === almaisan-away is now known as al-maisan [11:50] morning Ursinha === jtv is now known as jtv-eat [12:01] WTF? ec2 land -> 0 tests run in 4:13:40.345985, 0 failures, 0 errors yet log shows no test failures. [12:01] wallyworld_: You've not merged devel lately? [12:01] I fixed that yesterday morning. [12:02] wgrant: i did merge a few hours ago [12:02] wallyworld_: Into the branch that you ran ec2 from? [12:02] That's the one that matters, not the one that ran it *on*. [12:03] Ah, crap, this testfix means my codebrowse branch is going to fail while I'm asleep. [12:03] I might just lp-land it, then. [12:03] wgrant: i'm confused. yes i did merge devel into the branch i submited to ec2 land, but ec2 land just take one's branch and merges into the latest trunk anyway, no? [12:03] wallyworld_: Sort of. [12:04] wallyworld_: The bug was in a file that is copied from the local branch. [12:04] wallyworld_: may I see the log? [12:04] wallyworld_: actually, nm. [12:04] ah, didn't realise that was the case [12:05] so the last 2 lines of the log should say "All tests passed" but instead say Tests failed (exit code 1) [12:05] make: *** [check] Error 1 [12:05] Can you forward it to me or jml? [12:05] i guess ill try merging devel again now and resubmit [12:05] There's probably a failure in there somewhere. [12:05] devel is broken at the moment. [12:05] Fix in PQM. [12:06] wgrant: ok. i'm fairly sure there's no failure but i can forward to log [12:10] wallyworld_: There is an error. [12:10] Search for 'error:' in the output. [12:10] I would paste you details, but unity has decided to curse me. [12:11] wgrant: !@^!^!@%^#! i'll take a look. i would have sworn on my mother's grave i had a proper look [12:11] lp.code.browser.tests.test_sourcepackagerecipe.TestSourcePackageRecipeView.test_request_daily_builds_action [12:12] wgrant: shit. thanks. i stupidly searched for "eror:" thanks for looking [12:12] Haha. [12:12] * wallyworld_ hands head in shame [12:13] hangs! [12:13] i can't type [12:13] At least you aren't Unity. === matsubara-afk is now known as matsubara [12:17] Can someone watch buildbot tonight and make sure it stays happy? [12:20] * deryck finds it sad wgrant has to ask someone to watch buildbot [12:20] deryck: I often get up and find that it has been broken for 6 hours. [12:20] (often because of Windmill *cough*) [12:21] yeah [12:21] Do you have any ideas on that? [12:21] it leaks a thread or two in most runs, and occasionally fails. Although I got ten runs of just WindmillLayer through ec2 without a failure :( [12:22] wgrant, yes. Two things... I *think* this is always related to not using timeouts in asserts. And doing a layer in a for loop will cause a hang and we could attach a debug then. [12:22] wgrant, I hope to look at it soon, but gladly welcome anyone else checking into it. [12:23] deryck: I was hoping to be able to reproduce it in a minimal ec2 run, since I have never been able to run it reliably locally. [12:23] by for loop, I mean -- for i in `seq 5`; do test --layer=CodeWindmillLayer; kind of thing. [12:23] wgrant, you can't run windmill locally at all? [12:23] deryck: Almost every test fails. [12:23] can you increase the timeout constants and get it passing? [12:23] They also hang occasionally on open() [12:24] Possibly. [12:24] I need to investigate. [12:24] But production keeps exploding. [12:25] wgrant, right. not saying you used look into it. Just meant that anyone really should look into this. But I will as soon as I can. [12:25] s/used/should/ [12:25] Well, nobody looks into test failures :) [12:25] Or production issues. [12:26] I am hoping it is as trivial as the librarian one. [12:26] this is true. [12:26] But somehow I doubt it :( [12:26] sad but true [12:26] night all [12:26] Night lifeless. [12:59] Night all. [13:06] Project db-devel build #405: STILL FAILING in 5 hr 31 min: https://hudson.wedontsleep.org/job/db-devel/405/ === al-maisan is now known as almaisan-away [14:37] allenap: how goes you merge person job branch. Do you want me to land it it? [14:39] sinzui: I am trying to land it, but it refuses to go. Database permission errors in ec2 that I cannot replicate locally. [14:39] sinzui: I am looking at it now in fact. [14:40] okay. I too spent a couple hours with that yesterday [14:42] allenap: someone will need to add featureflagchangelog. I added that table in db-devel, and that was the one I forgot to give update permission on for merge [14:43] sinzui: Okay, I'll add it now. [14:43] I do not think you can. It does not exist in devel [14:44] allenap: or are you planing to land in db-devel instead [14:44] sinzui: I'll land in devel if I can, but if it rejects me I'll go to db-devel. [14:44] oh duh, security.cfg changed, you do want to land in db-devel === almaisan-away is now known as al-maisan [14:48] sinzui: The problem I have had is that I grant only UPDATE on several tables to a new user, person-merge-job. Now this seems to work locally, but in ec2 it fails because an UPDATE with a WHERE clause needs SELECT granted too. === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan [14:52] interesting [14:57] losa ping [15:02] sinzui: heya, got dropped by my irc proxy. i was lead to believe you have an issue worth discussing. [15:03] The criminalisation of owning Chihuahuas? === Ursinha is now known as Ursinha-lunch [15:05] Indeed, Chihuahuas can not be "owned" they must run free through the streets like rabbid overgown rats. [15:06] heh [15:10] viciousprimate: what would you like to discuss? === matsubara is now known as matsubara-lunch [15:11] sinzui: oops, i didn't realize i didn't re-register as myself (lost my irc proxy this morning), one sec. === viciousprimate is now known as mbarnett [15:12] ooh. just like Scooby Doo when Velma pulls of the villan's mask. [15:12] sinzui: sorry, i was trying to respond to a losa ping there, just failing with my technology this morning. [15:12] i would have gotten away with it, if it wasn't for those vicious primate. [15:13] mbarnett: I am testing the the feature flag change log https://staging.launchpad.net/+feature-rules can you change the priority on a few of the items for me to review. maybe change all the 1s to 2s [15:13] mbarnett: you will need to enter a comment too [15:16] so, for instance, change the 1 to 2 in "memcache pageid:BugTask:+index 1" and "visible_render_time team:launchpad 1 on" ? [15:17] yep [15:17] kk, i'll change and log. [15:19] sinzui: done [15:20] mbarnett: This looks okay to me https://staging.launchpad.net/+feature-changelog [15:20] thanks mbarnett [15:20] welcome [15:20] jcsackett_: ping [15:21] hi sinzui. === jcsackett_ is now known as jcsackett === leonardr changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | firefighting: - | On call reviewer: gmb, leonardr | https://code.launchpad.net/launchpad-project/+activereviews [15:22] gmb, care to review https://code.launchpad.net/~leonardr/launchpad/bug-271010/+merge/51760? [15:22] Project devel build #490: STILL FAILING in 5 hr 26 min: https://hudson.wedontsleep.org/job/devel/490/ [15:23] jcsackett: 1. I realised that giving the flag-expired-memberships a grace period would not work. The message contains a link to a url you cannot access, and it says your membership will expire 2 hours ago. [15:23] sinzui: that does sound like a problem. [15:23] jcsackett: since the user has gotten 6 other emails about this, I updated the docstring to explain such cases will be silently dropped [15:24] sinzui: that sounds completely reasonable. if the user has already been warned, there's really no need to email them again in this edge-case. [15:24] leonardr: Sure [15:24] jcsackett: 2 I am looking at bug 106338. It might interest you if you think you can get to it in a few days. [15:24] <_mup_> Bug #106338: Editing a bug targeted to a release crashes if you directly edit the untargeted task < https://launchpad.net/bugs/106338 > [15:25] sinzui: oh goody, conjoined bugs. [15:25] i think i can get to that tomorrow or the day after, depending on how current message work goes. [15:25] sinzui: happy to take a look then, if that's a reasonable time table. [15:26] jcsackett: okay. I will set it aside. I just looked at the oopses and see that the issue has changed, but I think it still fixable in 400 lines [15:27] sinzui: cool. preimp talk about it tomorrow during our usual 1-1? [15:27] sure [15:29] danilo, gmb, i will take https://code.launchpad.net/~danilo/launchpad/bug-720826-emails/+merge/51747 [15:29] leonardr: I'm already looking at that [15:29] Sorry [15:29] Forgot to claim it. [15:29] oh, nm [15:30] * leonardr assigns it back [15:30] Thanks [15:31] leonardr: Wow, it OOPSed when I tried to claim it right after you had. That seems a little over the top. I'll file a bug. [15:32] gmb, leonardr: yay, fights over my branches again, I love that :) [15:32] it gets claimed back and forth, even oops fly around [15:41] sinzui: question for you [15:41] https://launchpad.dev/ubuntutest versus https://launchpad.dev/gentoo - the latter does not have the "Add series" link and I can't work out why [15:42] * sinzui looks [15:43] the whole
has tal:condition=context/series [15:43] which is repeated for the
    , heh [15:43] so it seems like the addseries link should never be there unless you have existing series [15:44] bigjools: IDerivativeDistribution will show it if you are a driver. IDistribution does not. [15:44] oh, I think you are correct. [15:44] however, ubuntutest does not have any series [15:44] but it shows the link :) [15:45] bigjools: I think this is vestigial from when we registered usless distros then realised we had to cripple the ui rather than fix the schema [15:45] yeah I was guessing it was shitty sample data [15:45] I need to fix this for derived distros [15:45] Distros do not automatically get series when created I think [15:46] bigjools: I think you need to rename the current IDerivativeDistribution to IRemixDistribution. baltix will not be built by soyuz or get translations [15:48] yeah, we'll have to look at that [15:49] bigjools: The template is just stupid https://launchpad.dev/gentoo/+series will let you add one [15:49] sinzui: indeed === m4n1sh is now known as manish === manish is now known as manish__ === manish__ is now known as manish_ [16:13] leonardr, gmb: hi, one small branch up for review: https://code.launchpad.net/~danilo/launchpad/devel-bug-720826-clear-level-on-delete/+merge/51768 (diff will show up in a bit) [16:13] i'll take it [16:14] leonardr, thanks [16:17] I've been getting PQM failures on a particular branch: http://paste.ubuntu.com/573990/ [16:17] Anyone seen similar? [16:18] never seen that [16:19] sinzui: is it my imagination or is there no link presented for /distros/+add anywhere? [16:27] danilos, r=me [16:28] leonardr, thanks [16:39] bigjools: Just me attempting to land on the wrong branch + logs of noise warnings [16:39] stub: pebkac is also my middle name [16:40] leonardr, btw, I don't know of any better way to indicate a base-level default myself; let me check the interface [16:41] leonardr, the interface and model actually use a different value, the model one is correct (not that I'd know how to extract it nicely from the model or the interface) [16:42] danilos, you mean they use different constants? [16:42] leonardr, yeah, I'll fix that bit [16:44] and I see I can get the default with IBugSubscriptionFilter.getDescriptionFor('bug_notification_level').default [16:44] leonardr, do you think I should use that in the code? (I'd leave the test as-is) [16:44] yeah, use that in the code [16:44] leonardr, cool, thanks === al-maisan is now known as almaisan-away === gmb changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | firefighting: - | On call reviewer: leonardr | https://code.launchpad.net/launchpad-project/+activereviews === matsubara-lunch is now known as matsubara === beuno is now known as beuno-lunch [17:16] gmb, thanks for the review [17:17] np [17:41] sinzui: so the +addseries was appearing when there was an experimental series that's not actually showing in that portlet [17:50] bigjools: yes, that is what +series showed. Sorry for not stating that [17:50] sinzui: no problem - I intend to try and make it all work much nicer [17:50] bigjools: experimental, obsolete are not manages by the core developers, so we hide them [17:51] this stuff needs to be easy to use for non-admins when we do the derived distros === beuno-lunch is now known as beuno [18:03] moin [18:11] Subclasses enums are not equal to the superclass enum [18:11] :) [18:12] gmb, are you still reviewing my branch or should i try to get someone else to do it? [18:37] Project db-devel build #406: STILL FAILING in 5 hr 30 min: https://hudson.wedontsleep.org/job/db-devel/406/ [18:48] bbiab - allergy vaccination time, and the city is still a mess from the quake, so may be longer than desirable :( [18:49] can someone who cares about storm and enum give me an opinion about bug 727331. I think I want to implement enum equality rather than create a vocab factory [18:49] <_mup_> Bug #727331: Subclassed DBEnum item is not equal to the super class item < https://launchpad.net/bugs/727331 > [18:53] * sinzui looks for another bug === jam1 is now known as jam [18:56] lifeless: I poked at https://bugs.launchpad.net/launchpad/+bug/727148 [18:56] <_mup_> Bug #727148: Bzr timeouts on SSH connections < https://launchpad.net/bugs/727148 > [18:56] leonardr: Ark, sorry, I thought I'd voted on it. [18:56] And I can confirm routing failure from people.canonical.com [18:56] but success from home [18:56] Let me just take another look. [18:57] which hints that it is a datacenter firewall/routing issue [18:57] leonardr: Done. Apologies; I'd obviously looked and gone "yeah, that's fine" but the brain->LP interface was down. [18:58] cool [19:00] did something happen to lib/canonical/widgets recently? it seems to be gone from my copy of devel, but there's still code that tries to import it [19:05] that importing code looks bad to me. has no anyone else noticed this? [19:05] looks like the widgets were moved to lp.apps.widgets.itemswidgets and the shipit code wasn't changed [19:07] weird... anyway [19:09] leonardr, run update-sourcecode I believe === almaisan-away is now known as al-maisan === Ursinha-afk is now known as Ursinha === al-maisan is now known as almaisan-away === Ursinha is now known as Ursinha-afk === Ursinha-afk is now known as Ursinha [20:18] * thumper is here, coffee in hand [20:30] leonardr: I moved many of the widgets to lp.app. Other parts of the tree got widgets too. wgrant destroyed the dir after stabbing shipit is a spoon until it yielded. === Ursinha is now known as Ursinha-afk [20:31] sinzui: thanks, i've figured it out. i didn't know shipit was in sourcecode [20:32] leonardr: it is symlinked. it is not obvious and you may not know it until ec2 sends you hate mail. [20:49] Yippie, build fixed! [20:49] Project devel build #491: FIXED in 5 hr 26 min: https://hudson.wedontsleep.org/job/devel/491/ [20:54] hmm... [20:54] wgrant: ping [20:59] Would someone be able to send me OOPS-1886CMP2 including the full traceback and the text of the triggering email? (re https://answers.launchpad.net/launchpad/+question/147254) [21:00] CMP oopses are apparently stuck locally on crowberry and not being propagated centrally unless something was fixed since yesterday [21:03] thumper: may I have your opion of bug 727331. [21:03] <_mup_> Bug #727331: Subclassed DBEnum item is not equal to the super class item < https://launchpad.net/bugs/727331 > [21:03] * thumper looks [21:04] thumper: leonardr: standup? [21:04] sinzui: hmm... this was an interesting design decision [21:05] sinzui: if you are around, we could talk after my standup [21:05] wallyworld: yeah [21:05] thumper: wont fix is an legitimate reply. I could make a vocab factory and test in 50 lines, I just do not want to [21:23] jam: thanks [21:23] * lifeless is back [21:24] sinzui: can you mumble? [21:31] thumper: Hi. [21:31] wgrant: hi [21:32] wgrant: sorry about my branch yesterday, I was sure I did ec2 land [21:32] bug my bash history tells me different [21:32] I noticed it landed very quickly, but decided not to query you. [21:32] * sinzui starts mumble [21:33] fuuuu [21:33] buildbot has failed. [21:34] wgrant: Hi, would you be able (now or later) be able to dig out OOPS-1886CMP2 for me, including traceback & email this time? (Same issue as yesterday) [21:35] maxb: Looking. [21:37] maxb: I've requested a log sync. [21:39] thanks [21:40] bah [21:40] https://api.qastaging.launchpad.net/1.0/branches [21:40] I may have broken that api [21:40] yeah [21:41] ForbiddenAttribute: ('branchID', ) [21:41] And we were doing so well for the last couple of weeks. [21:41] Now we have the chain of pain and suffering again :( [21:41] well [21:42] its the result of not deploying daily [21:42] we can still deploy some stuff [21:44] We need a qa-reallydontcare [21:44] For things that are hard to test, largely inconsequential, and remain un-QA'd through two European days. [21:45] thumper: I think we may have to untestable your Blueprint thing. [21:45] Or convince a friendly GSA to setup Blueprint mail. [21:45] wgrant: yeah [21:45] wgrant: qa-untestable it [21:46] wgrant: untestable covers a multitude of cases [21:46] lifeless: The worst 12469 can do is break pofilestats, and it was already broken until last week. [21:46] So yeah, doing so. === matsubara is now known as matsubara-afk === salgado is now known as salgado-afk [21:52] maxb: BzrCheckError: Internal check failed: Cannot add revision(s) to repository: missing referenced chk root keys: [StaticTuple('sha1:bc9ad731c2af5f4d5b71cbad086b2a0758b8936a',)] [21:52] Still want more details? [21:53] lifeless: Do you have a fix in progress for your breakage? [21:53] wgrant: was just about to start the branch [21:53] wgrant: if you want to do it that would be awesome [21:54] lifeless: 'fraid I have enough other time-critical stuff to do. [21:54] wgrant: its just add the ID (and check for others i may have used that are neither covered by tests nor in the existing interfaces) [21:54] wgrant: I'm happy to do it [21:54] lifeless: Sadly you are going to miss the next buildbot run by a few minutes. [21:54] We might want to hold that or something. [21:54] wgrant: I'm assessing https://bugs.launchpad.net/launchpad/+bug/724033 first - checking I haven't broken bugs too [21:54] <_mup_> Bug #724033: BugTask:+index timeouts - distributions and milestones being late evaluation loaded - repeatedly - on bug 230350 < https://launchpad.net/bugs/724033 > [21:56] OK, I am disabling Windmill until someone (maybe me) sorts it out. [21:56] Unless someone complains quickly. [21:58] SQL time: 5017 ms [21:58] Non-sql time: 10126 ms [21:58] grr [21:58] https://bugs.qastaging.launchpad.net/ubuntu/+source/afflib/+bug/230350/+index [21:59] <_mup_> Bug #230350: Missing Debian Maintainer field lifeless: Hey, you are making progress on single-threaded appservers. [21:59] There is hope. [21:59] this is on qastaging [21:59] Ah. [21:59] Point. [21:59] so I think this particular case is genuine [21:59] https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1886QS95 [21:59] things like query 4 make me wonder about pathological stuff [22:00] (4 by time) [22:01] holy cow [22:01] Hm? [22:02] query 20 in the timeline [22:02] we have -lots- of tasks on this bug [22:03] Ohh, one of these, right. [22:03] after query 36 we waste .7 of a second doing ??? [22:03] There are only a few. [22:05] bug one down to 352 queries [22:05] Unauthenticated? [22:05] authenticated [22:05] I don't believe you. [22:05] Oh. [22:05] hit it on qa staging [22:05] No memcache, I guess. [22:06] That's cheating. [22:06] more than that [22:06] bug 724033 [22:06] <_mup_> Bug #724033: BugTask:+index timeouts - distributions and milestones being late evaluation loaded - repeatedly - on bug 230350 < https://launchpad.net/bugs/724033 > [22:06] Huh, confirmed. [22:08] I wouldn't be so mean as to get your hopes up needlessly [22:08] buildbot does, so why not you too? [22:08] because I am a real machine [22:09] thumper: if you have time to look, here's the WrongStoreError i've been getting https://pastebin.canonical.com/44117/ [22:11] wgrant: whats wrong with 218384 [22:13] Bug #218384 [22:13] <_mup_> Bug #218384: OOPS processing Mantis bugwatches < https://launchpad.net/bugs/218384 > [22:13] lifeless: It exploded the test suite. [22:13] ass [22:14] See what I mean? [22:14] thumper: did you ec2 land it, or direct? [22:14] Direct. [22:14] wgrant: you're rolling it back ? [22:14] lifeless: I rolled it back last night. [22:14] ok, cool [22:14] The rollback is through buildbot. === Ursinha-afk is now known as Ursinha [22:16] lifeless: Still 77 Person and 48 VPC queries :( [22:16] 37 TP, 21 Milestone. [22:19] wgrant: yes, step at a time. [22:23] StevenK: Around? [22:24] I wonder if we can set up Jenkins to run WindmillLayer in a separate job. [22:24] So it doesn't bitrot too much and we are still pushed towards fixing. [22:25] wgrant: we can [22:25] wgrant: you'll need an entry point to run it is all [22:26] Great. [22:26] Thanks. [22:31] ah, mumble, how i love your crashing... [22:39] ok, sigh [22:40] that branches collection is barely tested :( [22:42] one liner to fix. [22:43] lifeless: No other fallout? [22:43] it gets to the last clause of the eager load method [22:44] wgrant: check 12505 in lp:~lifeless/launchpad/bug-722956 [22:44] wgrant: are we in testfix? [22:44] lifeless: No. [22:44] wgrant: thanks for the oops digging. This is sounding like it could be bug 718723, though if so I'm confused why it didn't bite me when I tried it [22:44] <_mup_> Bug #718723: fetch from merge directive to stacked branch unable to fill in chk pages < https://launchpad.net/bugs/718723 > [22:45] lifeless: Aha. [22:45] wgrant: this is a storm class, the branchID Int column was already defined - I didn't add it in my original patch. [22:45] wgrant: and I didn't think to check that it was on the interface, given it already existed. [22:46] its in PQM now. [22:46] Thanks. [22:46] I am giving Windmill one last chance to hang on my laptop before I kill it. [22:46] we are in testfix [22:47] Then we should have a reliable test suite again. [22:47] lifeless: Oh, I thought a new build had started. [22:47] Fail. [22:48] resubmitted [22:48] Thanks. [22:49] lifeless: No [rollback=]? [22:49] bah [22:49] ETOOLATE [22:50] OK, we'll just have to work it out manually. [22:51] mbarnett: is spm around today? [22:51] lifeless: yup, [22:51] lifeless: or i should say, that is the plan. [22:52] wgrant: shall we get 12486 deployed before mbarnett vanishes? [22:52] s/ed/ing/ [22:52] need a nodowntime fired off? [22:52] mbarnett: I'm thinking so [22:52] I was considering that. [22:53] wgrant: you're still fighting fires? [22:53] lifeless: Clubbing Windmill to death. [22:53] wgrant: I'll prep it [22:53] Thanks. [22:53] Ursinha: unless you want to, for more practice? Its a rather bigger one this time [22:53] Our biggest in a while :( [22:54] Even the next one is not going to be exactly small. [22:55] mbarnett: when do you turn into a puff of smoke ? [22:55] lifeless: in a little under an hour most likely. [22:56] mbarnett: ok, I'll have this prepped in 15 - need to shove some food in my gob first [22:56] kk [22:56] * mbarnett understands the need for feasting. [23:00] Ursinha: I'm prepping it [23:05] mbarnett: its up [23:06] 26 bugs [23:06] lifeless: it shall be done. [23:06] 2 and a half days [23:15] lifeless: the linked_bugs property on BranchMergeProposalView doesn't filter out private bug. do you agree this is incorrect and i should use check_permission() to stop private bugs being exposed? [23:16] yes and no [23:17] better to load them correctly in the first place [23:17] that way the collection size will be correct, etc et [23:22] lifeless: the code to load them is in the model - the linked_bugs attribute on a branch, which is defined an an SQLRelatedJoin [23:22] yes [23:22] its a bug [23:22] on several levels :) [23:22] so there's no concept there of what user it trying to do the accessing [23:22] right [23:22] fix that [23:23] give me a sec to do gc on my branches [23:23] I may have some half done thing in this area [23:24] lifeless: ok. i'm working on another issue and came across this. if i were to do a quick fix to the linked_bugs property on the view, that works fine for now and there's no issue with collection sizes etc [23:24] that i can see [23:25] wallyworld: uhm, I think thats stale [23:25] check_permission will trigger late evaluation anyhow [23:26] late evaluation of what? the object having its permission checked? [23:26] yes [23:27] wallyworld: ok, I've paged this in [23:27] I got half way through refactoring [23:27] see Branch.getLinkedBugTasks [23:28] most of the templates now use linked_bugtasks rather than linked_bugs (because in LP we work with bugtasks not bugs) [23:28] ok. but sometimes we want bugs [23:28] wallyworld: no, we don't. [23:28] wallyworld: we think we do, but its a mistake. [23:28] like showing the linked bugs for merge proposals? so we want to show linked bug tasks instead? [23:29] we already show bug tasks. [23:29] wallyworld: bugs have no importance or severity [23:29] ok [23:29] wallyworld: see DecoratedBug.bugtask *or* the implementation of Branch.getLinkedBugTasks [23:29] wallyworld: either of those show the selection for the bugtask to show [23:30] wallyworld: so, yes, the data model links to *bug*, but the UI then *picks a task* to show. [23:30] BranchMergeProposalView has both linked_bugs AND linked_bugstasks properties, so it seems some work is needed there [23:30] I added linked_bugtasks to land my performance for BugTask:+index [23:30] ah ok [23:31] there was some stuff still referenving linked_bugs on the BMP template so I left it in the short term. [23:31] wallyworld: we were doing 1000 queries dealing with linked_bugs [23:31] so getLinkedBugTasks does the right thing with respect to permissions/private etc? [23:31] wallyworld: due entirely to late evaluation [23:31] Oh dear.... if I was to suggest that emailed in bundles to create merge proposals was completely broken, does that sound possible? [23:31] wallyworld: yes, what it returns is usable, visible and [mostly] eager loaded already. [23:31] maxb: yes [23:31] if so i'll remove linked_bugs from bmp view [23:32] and write some tests - there were none at all for this [23:32] there are view tests [23:32] but yeah, none dealing with permissions [23:32] OTOH [23:32] the *only* reason there are permission issues [23:32] not that check that private linked bug[tasks] are not visible [23:32] is because code wasn't using the bugs interface for getting bugs. [23:33] because it was navigating the object model starting at a branch [23:33] no [23:33] because it used direct queries to grab bugs [23:33] rather than getUtility(IBugTaskSet).search [23:34] which is the -only- defined way to get bug tasks. [23:34] everything else either: [23:34] a) layers [23:34] b) is buggy [23:34] it wasn't using direct queries that i saw - it was calling branch.linked_bugs [23:34] linked_bugs = SQLRelatedJoin(..) [23:34] which may be using a direct query under the covers [23:34] ^ - thats a direct query [23:34] but conceptually is an object model navigation thing [23:34] but its broken === Ursinha is now known as Ursinha-afk [23:35] we can't use object model navigation for most of our work [23:35] the direct query is an implementation detail :-) [23:35] not IMO [23:35] agreed +100 [23:35] visibility depends on the current interaction [23:35] we have some tensions [23:35] we have half a container [23:36] yes, and using object model navigation sucks for that, i agree. [23:36] we don't properly support (e.g. fast, efficient, clear) accessing current user from 'anywhere' === Ursinha-afk is now known as Ursinha [23:36] everything should be service based imho [23:36] nor do we pass current user around pervasively [23:36] yep [23:36] the big thing I want is thinness [23:36] I want us to drop about 50% of our classes [23:36] 60-70% of our interfaces [23:37] no argument from me for dropping code [23:37] probably a 2012 thing [23:37] we have many areas that are self-inflicted complexity. [23:37] so for now, i'll use your new getBugTasks stuff and refactor out the use of linked_bugs from bmp view [23:37] (e.g. the conjoined master thing: I *still* haven't had an explanation of /why/ that exists) [23:38] wallyworld: cool [23:38] that will solve the immediate permisisons issue [23:38] and then i can use that as the basis for the current issue i am working on, wheich is that the branch index page blows up if there's a private bug linked to a mp [23:38] wallyworld: cool. Thats the last use of DecoratedBug btw [23:39] you can delete it after you're done. [23:39] resulting from the previous stuff i did to show the mp and linked bugs for revisions [23:39] ok will do [23:39] lifeless: thanks for the input [23:40] my pleasure === StevenK changed the topic of #launchpad-dev to: Performance Tuesday | https://dev.launchpad.net/ | firefighting: - | On call reviewer: leonardr, StevenK | https://code.launchpad.net/launchpad-project/+activereviews === lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | firefighting: - | On call reviewer: leonardr, StevenK | https://code.launchpad.net/launchpad-project/+activereviews [23:44] StevenK: So, how much work is an extra Jenkins job with --layer=WindmillLayer? [23:47] For just devel or both {,db-}devel? [23:47] Just db-devel. [23:48] Little point running it for both. [23:48] And db-devel will catch everything. [23:48] It's pretty easy [23:48] It could even just run in the downtime when one of the other slaves is idle, if you don't have enough. [23:49] I don't think that is required [23:49] Wow. checkwatches.txt didn't break [23:50] I introduced some new checkwatches tests yesterday, which may have caused it to reorder. [23:50] wallyworld: this is one of the sample pages that was dying [23:50] https://code.qastaging.launchpad.net/~software-store-developers/software-center/trunk/+index [23:50] StevenK: https://code.launchpad.net/~wgrant/launchpad/die-windmill-die/+merge/51836 [23:50] wgrant: Perhaps checkwatches.txt needs to die :-) [23:50] lifeless: yeah, i think from memory that one is listed in the bug report [23:50] wallyworld: to give you an idea of data sizes with bug-branch links: 375 links [23:51] wallyworld: which is also why I filed the bug about merge-proposal bug links - if that branch *ever* merges into another, the branch index will be showing 375 bugs against that revision. [23:51] wallyworld: which is, frankly, insane. [23:52] (a preexisting data model problem to your work: your using what we have in the model just made it much clearer) [23:52] lifeless: when i worked on the bug asking for this functionality, i never envisiaged a branch would have so many linked bugs [23:52] actually, a mp i mean [23:53] right. But the mp 'related bugs' is defined as 'those of the source on in the linked bugs of the target' [23:53] because for each recent revision, we show the mp which resulted in that revision and the linked bugs are against the mp [23:53] wallyworld: which is a definitional problem: really it should be 'the open bugs of the source from when the MP was started till it landed' [23:54] wallyworld: a merge proposal represents a temporal range; but the bugs we show have no limits. There are other bugs about fallout from this [23:54] StevenK: It probably needs to die, yes, but it's not breaking in buildbot so I care slightly less. [23:55] lifeless: the way we work in lp, the life of the source branch is closely tied to the life of the mp [23:55] so its a moot point for us [23:55] but you are saying other projects work differently? [23:57] wallyworld: *we* don't work that way. [23:57] wallyworld: you may. I don't. Stub doesn't. Others don't. [23:57] ah ok [23:57] wallyworld: the lp project definitely doesn't: devel merges to stable multiple times a day. [23:57] StevenK: So, I can has review? [23:57] i create a new feature branch for each new bug etc [23:58] wallyworld: stable to db-devel. db-devel to db-stable. [23:58] yes, you are right [23:58] my thinking was far too narrow [23:59] :)