/srv/irclogs.ubuntu.com/2011/02/04/#launchpad-dev.txt

lifelesswallyworld: ok shoot00:20
wallyworldbang00:20
wallyworldyou mean with the uzi?00:21
lifelesswgrant: we don't need it for natty00:21
wallyworldi love the uzi00:21
lifelesswgrant: vm's for the win00:21
wallyworldlifeless: you know that wide query taking a long time to run - the daily recipe builds one.....00:21
lifelessnope, remind me00:21
* wallyworld looks up bug nr00:22
wallyworldbug 71107200:22
_mup_Bug #711072: RootObject:+daily-builds times out <timeout> <Launchpad itself:Triaged by wallyworld> < https://launchpad.net/bugs/711072 >00:22
lifelessok00:23
lifelesshow can I help00:23
wallyworldtables like person, sourcepackagename, archive are only in the query to get data to display00:23
wallyworldso they could be removed to reduce the nr of joins, and subsequent queries done to look up that data00:24
lifelesswallyworld: btw has your parameter filling thing had the test failure figured out and landed ?00:24
lifelesswallyworld: yes, changing from wide to serial is likely to help00:24
wallyworldnot yet. i updated from trunk and can now reproduce locally but it's on the back burner till after rollout. bad rev rolled back00:25
lifelesskk00:25
wallyworldbut values from those tables are used in thr oder by00:25
lifelessmatsubara has improved lp-oops to group with inferred parameter types00:25
wallyworldcool.00:25
wallyworldso if i remove those tables from the query, i will have to load all the values and do an in memory sort00:26
lifelesswallyworld: huh, no00:26
wallyworldunless there's another way that storm can help that i don't know about00:26
lifelessDecoratedResultSet00:26
lifelesspre_iter_hook00:26
lifelessdone00:26
lifelessI mean, you do need to load00:27
lifelessbut sorting should always be db00:27
wallyworldok. i'll have to look at that hook to see how it fits in00:27
lifelessotherwise slicing will fail00:27
wallyworldyeah, that was my problem00:28
lifelesslook in lib/lp/blueprints/model/specification.py00:28
lifelessfor pre_iter_hook00:28
lifelessthis is one I prepared earlier.00:28
wallyworldexcellent, a working example. thanks00:28
lifelessexact transform we're talking about00:28
wallyworldi knew that you would be able to help :-)00:28
lifelessactually, this is more complex00:28
lifelessbut it shows pretty much all that you might want to do, and as I haven't seen the code you're looking at yet.00:29
wallyworldby "this" you mean the thing i am doing cf the example you gave?00:29
lifelessthe specification hook is doing more than you ma yneed00:29
wallyworldah ok00:29
lifelessits doing eager loading *and* object injection00:29
wallyworlda useful thing to bookmark for later for when needed00:30
lifelessso, looking at your query00:30
wallyworldthanks for the tip, i'll take a look and go from there00:30
lifelesswhy are you sorting on the things you're soring on00:30
lifelessalso note the utterly utterly insane group by00:31
lifelessperhaps we should start with the use case ;)00:31
wallyworldthe group by is needed because of the max()00:31
wallyworldthe sort order was as per the requirements00:31
lifelessthe max means you're bring back too many things00:32
lifelesswhich will make it slow00:32
lifeless(and thus, its slow)00:32
wallyworldthere's several build records and we only want the latest one00:33
lifelessthat sounds a bit delphic, sorry00:33
lifelessperhaps voice would help; I dunno.00:33
lifelessthe first thing I'd want to do is to grab a bit of paper and map it out00:33
wallyworldtaking out archive, person,sourcepackagename will help the base query look more sane00:34
wallyworldthumper developed the initial query in straight sql - i adapted it to storm.00:34
wallyworldit produces the correct results. how about i make the changes we've just discussed and see where that takes us00:35
lifelessyou can't take the things out that you need to sort on00:36
wallyworldyes, hence my original question :-)00:36
lifelessok00:36
lifelessso, first thing is to ask if we need to sort on all those things00:36
wallyworldthat's why my first thought was to load the result set and do an in memory sort00:37
wallyworldthere's only around 300 records - not sure what that may grow to in the future00:37
lifeless16K or more00:38
lifelessits still in beta.00:38
wallyworldhmmm. that's too many00:38
wallyworldso yes, will have to revisit the sort order question then00:38
lifelessyou have 600 ms in late evaluation of Branch00:38
lifelesslooking at https://lp-oops.canonical.com/oops.py/?oopsid=1858D16400:39
lifelessanother 800ms in late evaluation of SourcePackageRecipeData00:39
wallyworldwhy doesn't that oops link work?00:39
lifelessapache-openid brekaage00:40
lifelesslogin00:40
lifelessclick again00:40
wallyworldthose late evaluation times can certainly be fixed, but the main query - the count and the select - do swamp the overall number though00:41
lifelessactually00:42
lifelessthats 2.3 seconds in late evaluation00:42
lifelessso the main query is more00:42
lifelessbut not like 90%00:42
lifelessanyhow00:42
lifelessfirst step, define the definitive goals00:42
wallyworldsure. i guess i'm saying that fixing the late eval stuff is necessary but not sufficient00:42
lifelessORDER BY SourcePackageName.name,00:43
lifeless         Person.name,00:43
lifeless         Archive.name LIMIT 7600:43
lifelesswallyworld: all its all necessary and nothing will be sufficient ;)00:43
lifelessso the source package name is the driving thing00:44
lifelessits used for pagination00:44
wallyworldi'd agree with that00:44
lifelesspersonally I think that paginated lists are suboptimal00:44
lifelessI'd rather we presented a query interface00:45
wallyworld+100:45
lifelessand showed the 75 most recent builds the rest of the time00:45
lifelessor something like that00:45
wallyworldif we did do that, the count() query would be required00:45
lifelesswell the count can be simplified00:45
wallyworldand we would shave 1/2 of the most significant execution time off00:45
wallyworldbut that's not how the batch navigator works is it?00:46
wallyworldthe bn simple does a count() on the underlying query00:46
lifelessits just select count(*) from sourcepackagerecipe where daily_build is true00:46
lifelessthe batch navigator makes some simlifying assumptions00:47
lifelesswe may need to pass in an object with a custom count00:47
wallyworldnot really - we only want the latest, but anyway, unless there's a hook i don't know about, the bn uses the same underlying query to do the count00:47
lifelessspr is 1:M00:47
lifelessif you count 1, you don't need the max00:47
wallyworldlet me talk to thumper so see if we can adjust the requirements for what is displayed00:48
lifelesswallyworld: yes, the bn will need to be given an adapted result set, not a real one.00:48
thumperhell no!00:48
thumpersorry what?00:48
wallyworldthumper: read the last 10000 lines ^^^^^^^^^^^^ :-)00:49
thumperwallyworld: no00:49
wallyworldthumper: wanna mumble, may be easier00:49
lifelessthumper: listing all the source package builds as a collection seems pointless00:49
thumperwallyworld: I'm in a cafe without headphones00:49
lifelessthumper: we're saying lets just give users the 75 most recently built daily ones + a search box.00:49
thumperlifeless: I'm not listing them as a collection00:49
lifelessthumper: what do you call 'https://code.launchpad.net/+daily-builds'00:49
thumperwhat are you talking about?00:49
wallyworldthumper: we're talking about the +daily-builds sql times00:50
thumperlifeless: that is really a requirement from the community guys00:50
wallyworldand the fact that the current sort oder requires a query with a number of joins to get the data to sort on00:50
lifelessthumper: how was it phrased though?00:50
thumperthey wanted a listing of packages built with recipes00:50
thumpernot search rubbish00:50
lifelessthumper: search is hardly rubbish; who asked for this, and what did they want to achieve?00:51
wallyworldbut if we are prepared to relax the sort order we can small a smaller more efficient query00:51
wallyworlds/small/use00:51
thumper:)00:51
lifelesswallyworld: so we can make it better as is00:51
lifelesswallyworld: I'm separately saying that its not actually a brilliant UI as it stands.00:52
thumperwallyworld: the only sort order I care about is source package name00:52
thumperwallyworld: everything else is extra00:52
wallyworldthumper: ok. will do that first up00:52
thumperwallyworld: most of the results will return only one daily recipe for a source package00:52
thumperat least for now00:52
lifelessthumper: that presupposes having a collection though; so can we talk about that seriously?00:52
thumperthere are a few packages where there are more than one00:52
wallyworldand get some numbers on the improvement00:52
thumperlifeless: I'd be terribly sad if you took the collection away00:53
lifelessthumper: why?00:53
wallyworldcan i ask to have a query run on production?? to get some numbers?00:53
lifelesswallyworld: a losa00:53
lifelesswallyworld: or stub00:53
wallyworldsure. just wanted to see if it were a kasha thing to ask for00:53
lifelesswallyworld: the numbers haven't changed substantially though.00:53
thumperbecause I think it looks nice, and validates the work we are doing00:53
wallyworldlifeless: did you just try it?00:54
lifelessthumper: I don't think it validates it - uptake will validate it; as far as looking nice, it looks like something where its impossible to find what a user wants to find.00:54
lifelessthumper: I don't mean to be negative here.00:54
wallyworldi meant to see what benefit removing person and archive from the sort oder would do00:54
lifelesswallyworld: for that sort of thing, we use qastaging until we're fairly sure we've got the good stuff00:54
wallyworldbut qastaging has a really old db  :-(00:55
lifelesswallyworld: if you have a canned query I can run on qastaging, that would be great.00:55
lifelesswallyworld: it doesn't matter for this; it has 270 recipes00:55
wgrantlifeless: PQM still executes baz? Seriously?00:55
lifelesswgrant: probes for it, backend lookup00:55
lifelessdunno if it has it there.00:55
thumperlifeless: it should be up to the stakeholders and the strategist, so check with jorge and jml00:56
wallyworldlifeless:  yes, but what about all the other data (eg in the archive table) that serves to make the query slow00:56
wgrantlifeless: It uses it to get config-manager.00:56
thumperlifeless: I see no reason to defend it to you00:56
wgrantlifeless: That seems to be what takes all the time. It already does a lightweight checkout.00:56
lifelessthumper: I was asking who was pushing for it to be /like this/ - I wasn't asking you to defend it; I don't know how we got here conversation wise.00:56
lifelessthumper: I'll be delighted to talk to jorge and jono00:56
lifelesswgrant: it doesn't spend 30 minutes talk to baz, I assure you00:57
wgrantlifeless: The logging is a bit crap, then :/00:57
StevenKNo, it spends 30 minutes spinning00:57
lifelesswallyworld: so the point I was making was that a search interface generates a very specific lookup00:58
thumperlifeless: https://wiki.ubuntu.com/DailyBuilds/AvailableDailyBuilds was the justification00:58
wgrantFeb 03 23:26:09 pqm [140001309406976] INFO: running: baz get /home/pqm/archives/rocketfuel/lp-production-configs/trunk/config-manager /srv/pqm.canonical.com/chroot/home/pqm/pqm-workdir/home/devel00:58
lifelesswallyworld: so the intermediary tables will be very small00:58
wgrantThen it disappears for 17 minutes.00:58
wgrantEvery time.00:58
lifelessthats in bzr land at that point00:58
lifelessthe bzr backend doesn't log such a message00:58
lifelessthumper: thanks00:58
wgrantOh yay, another db-devel conflict.00:59
thumperlifeless: sorry for being touchy... lots of stuff going on00:59
wallyworldlifeless: sure00:59
lifelessthumper: so, looking at that; the goal is to avoid duplicate effort; making it real easy to find dailies of audacity (e.g. search / linking on the source package side) would seem best to me.00:59
lifelessthumper: no worries; it is friday after all.00:59
thumperlifeless: perhaps a tag cloud for package names would be better?01:00
thumpergiven how much we love tag clouds :)01:00
lifelessso, I propose to mail jml and jorge, cc thumper and wallyworld and propose a different UI which can give us a much simpler problem to solve01:00
thumperalthough determining size / shade would be interesting01:00
lifelessthumper: thats a cool idea too01:00
lifelessthumper: search is the cheapest for us to do01:00
lifelessthumper: I don't know that its the best; tag clouds are pretty interesting too.01:00
lifelessthumper: I suspect we need discoverability as a primary mechanism though.01:01
lifelessthumper: is there anything I can help with ? [re lots of stuff going on]01:02
thumpernot unless you want to read CVs and interview people01:02
lifelessam I allowed to shoot myself first ?01:02
wallyworldthumper: btw, the guy i mentioned wasn't interested01:03
thumpersure01:03
StevenKlifeless: Depends. Where?01:03
lifelesswallyworld: ok, so lets see what we can do01:05
lifelesswallyworld: first thing, we *don't* want to return all the previous builds in the intermediary tables01:06
thumper\0/01:06
lifelesswallyworld: but the thing before that01:06
thumperweb-link branch of leonard's has landed in devel01:06
lifelesswallyworld: is to see what the current plan is01:06
lifelesswallyworld: do you have a query I can run01:06
* wallyworld looks01:06
wallyworldlifeless: the current implementation uses this query - https://pastebin.canonical.com/42856/01:07
wallyworldlifeless: but i don't mind working through the issue if you have other stuff to do01:08
lifelessnothing I can't procrastinate over.01:09
wallyworldso i'll immediately get a win by removing the person and archive from the sort01:11
lifelessspm: could you please do an explain analyze on http://pastebin.com/nASE7Tq6 ?01:11
lifelessspm: on prod01:11
lifelesswallyworld: getting the explain should tell us a lot about what its doing01:11
wallyworldthen we could get a rs with only the latest builds and use that to filter the main query - so a subselect instead of a big join, not sure how postgres performs for that01:12
lifelesswallyworld: it depends01:12
wallyworldjcsackett: ping01:13
lifelessif its uncorrelated and huge relative to final rows, poorly; if its correlated and about as selective as outer, poorly.01:13
jcsacketthello wallyworld.01:13
wallyworldjcsackett: hi. i just need a quick tick and flick on a mp to fix a small layout issue. can i reassign to you?01:14
wallyworldhttps://code.launchpad.net/~wallyworld/launchpad/recipe-related-branches-layout/+merge/4846301:14
wallyworldit's only like 2 lines of pt01:14
* jcsackett realizes he's still listed as OCR.01:15
wallyworldsorry if you weren't01:15
wgrantjcsackett: You can't escape.01:15
jcsackettyeah, i can take a look at it, wallyworld; but you'll need to find someone to follow up, since my mentor is definitely not on shift.01:15
=== jcsackett changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
wallyworldah ok01:15
jcsackettwallyworld, you want me to still take a look? i don't mind (need the reviews) but as i said, r=jcsackett isn't enough to land something. :-)01:16
wallyworldjcsackett: no, it's cool. thanks01:16
jcsackettwallyworld: dig. sorry for the confusion. i need to be better about removing myself from OCR. :-P01:16
wallyworldjcsackett: no problem :-)01:17
wgrantStevenK: Do you have any suggestions for getting a newer archive to gina on mawson?01:17
wallyworldlifeless: while waiting for that explain, can you quickly approve this 2 line pt change?01:17
wallyworldhttps://code.launchpad.net/~wallyworld/launchpad/recipe-related-branches-layout/+merge/4846301:18
spmwallyworld: lifeless: https://pastebin.canonical.com/42858/01:18
wallyworldspm: thanks01:19
lifelesswallyworld: sadly I don't know the css classes we use well enough to say if thats sane or not01:20
lifelessI seem to recall a lot of discussion about tables vs nontables in this01:20
LPCIBotProject devel build (416): STILL FAILING in 6 hr 17 min: https://hudson.wedontsleep.org/job/devel/416/01:20
LPCIBot* Launchpad Patch Queue Manager: [no-qa] [r=allenap][ui=none][bug=707103] Clean-up of lint after01:20
LPCIBotbugs-with-blueprints-bug-707103.01:20
LPCIBot* Launchpad Patch Queue Manager: [bug=75976] [r=abentley][ui=none] When someone asks to merge two01:20
LPCIBotaccounts, Launchpad sends an email to the primary account asking for01:20
LPCIBotconfirmation. That email was hard to understand and badly01:20
LPCIBotwritten. This branch rewrites that email's text and introduces01:20
LPCIBota test that the email is sent with the correct text.01:20
LPCIBot* Launchpad Patch Queue Manager: [r=mthaddon, stub][bug=712282,01:20
LPCIBot712285][no-qa] Improve nightly.sh transparency,01:20
LPCIBotand remove update-pkgcache.py from it.01:20
lifelesswallyworld: clearly its trivial textually.01:20
wallyworldlifeless: the css - should have been there from the start - cut'n.paste error. the other collapsible field sets use it01:21
lifelesswallyworld: want to mumble on the explain01:22
wallyworldlifeless: ok01:22
lifelesswell, try mumbling, it may still be epic fail fo rme01:22
wallyworldor skype01:22
lifelessI can hear you01:23
lifelessspm: please analyse this on prod - http://pastebin.com/3ZA20XvA01:53
lifelesssadly staging/qastaging are not fresh enough01:53
spmlifeless: https://pastebin.canonical.com/42859/01:55
lifelessthanks!01:55
lifelessthere will be more01:55
lifelesswallyworld: http://www.postgresql.org/docs/8.4/static/tutorial-window.html01:57
lifelessrank() OVER (PARTITION BY BuildFarmJob.date_finished DESC) FROM01:58
=== Ursinha is now known as Ursinha-gone
jtvStevenK: pong02:12
lifelesswgrant: ping02:17
wgrantlifeless: Hi.02:17
lifelesswgrant: hi02:17
lifelessyou know wallyworld and I are looking at a slow query02:17
lifelessits filtering all binary package builds that are recipes02:17
wgrantThe +daily-builds one?02:17
lifelessin state 102:17
lifelessyeah02:18
lifelesswe had an idea02:18
lifelesswhat if we narrow this to 'published'02:18
lifelessit might consider less data?02:18
lifelesswe have binary package build and build farm job already in there02:18
wgrantSo we're finding BPBs that are built from an SPR that has an SPR?02:19
lifelesshave a look at one of the pastebins02:19
lifelessthe goal is 'all source package recipes showing the date of the most recent successful binary build'02:20
lifelessone thing that isn't clear to me/us is whether fullybuilt in this case means 'the bzr-builder worked' or 'all binaries were build'02:21
wgrantIt's the binary build status.02:22
wgrantNote that your last pastebin doesn't restrict to builds in the daily archive, so manual builds to other archives will show up.02:22
lifelessindeed02:23
lifelesswhat table was that on - BPB ?02:23
wgrantPackageBuild02:23
* wgrant silences mirror-prober.sh.02:25
wgrantThese noisy scripts irk me.02:25
* spm gives wgrant 100 awesome points02:26
lifelessPackageBuild ON (PackageBuild.id = BinaryPackageBuild.package_build and PackageBuild.archive = SourcePackageRecipe.daily_build_archive)02:29
wgrantlifeless: I think so.02:29
wgrantI'm not sure which direction is clearer.02:29
wgrantShould we go from daily recipes to builds, or find builds that have daily recipes?02:30
gary_posterwallyworld, ping?02:31
wallyworldgary_poster: hey02:31
gary_posterhey02:31
gary_posterI really want ~gary/launchpad/bug548-db-2 to get on db-devel before we close pqm or mark things closed or so on.  Some tests failed, and in order to fix them, I had to make enough changes that they warrant their own separate review.  So...02:31
gary_posterI'm wondering how to get that to happen/if I can get that to happen02:31
gary_posterin order for that to work, I'll need a review, and I'll need to land02:32
gary_posterwith tests passing..02:32
wallyworldgary_poster: just give me a sec : otp02:32
gary_posteroh, sure02:32
lifelesswhats the mp url ?02:33
wallyworldgary_poster: well i am talking to lifeless atm :-)02:33
wallyworldhe may want to help02:33
gary_posterthank you both, getting the mp up now02:33
wallyworldgary_poster: there's still 9 hours or so before we close :-)02:34
wallyworldplenty of time!02:34
gary_poster:-) yes, but I wanted to stop working hours ago :-)02:34
wallyworldyeah. understood :-)02:34
wallyworldgary_poster: so i can land it for you once it passed review02:35
gary_posterthank you!02:35
wallyworldgary_poster: what about qa? is it clear how to do that?02:35
gary_posterit is no-qa02:35
wallyworldeven better!02:35
gary_poster:-)02:35
wallyworldgary_poster: so i think your work here is done :-)02:36
wallyworldassuming it passes review :-)02:36
lifelessgary_poster: whats the mp url ?02:36
gary_posterlol, thank you.  Well, I need to get the MP done02:36
gary_posterlifeless: https://code.launchpad.net/~gary/launchpad/bug548-db-2-tests/+merge/48570 but diff is still coming02:38
gary_posterthe mp message is, uh, one of my more hurried :-P02:39
gary_posterand it shows :-)02:39
gary_posterok diff has emerged lifeless02:40
gary_posteruh?02:40
gary_posterI did not touch the lib/canonical/widgets thing :-/02:40
wgrantgary_poster: You're getting a conflict there when merging locally?02:42
wgrantIf so, ignore.02:42
wgrantDelete the widgets.moved directory.02:42
gary_posterwgrant, it is something in the MP-generated diff02:42
gary_posternot in my local diff02:43
wgrantOK, that's not normal.02:43
gary_posterI'm trying a local merge of my branch into a up-to-date-db-devel...02:43
gary_posterwgrant, conflict on my db-devel pull.  I assume this was correct?02:45
gary_posterrm -rf lib/canonical/widgets.moved02:45
gary_posterbzr resolved lib/canonical/widgets.moved lib/canonical/widgets lib/canonical/widgets.moved/tests02:45
wgrantgary_poster: Yes, that's right.02:45
gary_postercool02:45
wgrantI just merged that branch into db-devel.02:46
gary_postercool, thanks02:46
wgrantlib/canonical/widgets is still there...02:46
wgrantSo the LP diff is odd.02:46
wgrantI resolved that conflict last night.02:46
gary_posterMy branch merges cleanly into db-devel touching only the files I expect, so it looks like it is a diff-generation odity in the MP02:47
lifelesslaunchpad_qastaging=> select count(*) from sourcepackagerecipe where build_daily02:47
gary_posteroddity02:47
lifeless;02:47
lifelessTime: 1.512 ms02:47
gary_posterlifeless, I never asked explicitly--are you reviewing the branch or should I ask around?02:50
gary_posterbe thar a reviewer in these here parrts?02:51
gary_posterwallyworld: are you a reviewer, by chance?02:52
lifelessI will, one sec02:52
gary_posteroh thanks02:52
wallyworldgary_poster: no. not yet. soon hopefully02:53
gary_poster:-) cool02:53
lifelessgary_poster: hi02:55
gary_posterhey02:55
lifelessisn't with logged_in_user() sufficient ?02:55
lifelesssorry02:56
lifelessperson_loggefd_in02:56
lifeless*bah* person_logged_in02:56
gary_posterthis is about the dbuser, not the application user, so I don't think so.  Do I misremember my helpers?  looking for it02:56
lifelessah right02:56
lifelesslayers ;)02:56
gary_posterright :-)02:56
gary_posterand db, rather than application02:57
lifelessso02:57
lifelessa few thoughts02:57
lifelessI'll sketch here02:57
lifelessthe restore_name seems a bit unrelated02:57
gary_posterto...?02:57
lifelessthe problem you're solving02:57
gary_posterin the sense that we should always look at _dbuser?02:58
lifelessrun-some-code-as-a-user02:58
lifelessright02:58
gary_postercompletely agree02:58
lifelessI'm saying having it do a push/pop and if someone wants to change after that, they can do that separately - would make this code leaner02:58
gary_poster(it was probably some kind of misthought subliminal reaction to disliking the fact that I was looking at an underpants attribute.)  Yeah push/pop was my only intent really02:59
lifelessgiven the lack of tests for the helper, my inclination is to suggest making it as lean as possible02:59
lifelessI like the helper.03:00
lifelessI'm curious why your tests failed03:00
gary_postera few existing tests failed that were creating things without a dbuser that actually had privileges to do so03:00
lifelessis it that LaunchpadZopelessLayer runs as an unusual user?03:01
gary_posterby adding an additional obeject that we were creating03:01
lifelessgary_poster: so, you're creating a PersonSetting whenever a Person is created?03:01
lifelessgary_poster: rather than lazy-creating?03:01
gary_posterunusual user: yeah, it is usually run as the user that a given script needs03:02
gary_posterwhich is often not pwerful enough to create stuff03:02
gary_posterif you tickle the database enough then things will flush03:02
gary_posterso essentially my change exposed (some) problems that were already existing03:02
gary_poster(I think there are a lot more like these that have not yet been triggered)03:03
gary_posternot lazy-creating: yes, I dislike write on read, and didn't want the complexity of look-for-the-underlying-object-and-if-it-is-not-there-look-for-the-interfaces-default.03:04
gary_poster(that is, write-on-write is ok, but I thought simplicity had a virtue)03:04
lifelessgary_poster: I dislike write-on-read too; That implies creating a million rows when the db deploy happens though03:05
lifelessanyhow03:05
lifelessapproved03:05
lifelessI would like it if you could shrink the helper.03:05
lifelessmore so if you add tests.03:05
gary_posteryes, I wondered about that but that was the design stub made, so I figured he had thought it through.03:05
gary_posterI shrunk the helper locally already, after discussion.  lemme run a smoketest...03:06
lifelessgary_poster: At a guess - I suspect he intended lazy create.03:06
gary_posterno, he made the trigger03:06
lifelessheh, ok.03:07
lifelessanyhoo, all sorted.03:07
gary_posterok lifeless, thank you. yeah, the smoke test passed with http://pastebin.ubuntu.com/562319/ .  So, I'll push the non-test change to the helper now and ask Ian to land it, and then promise to make a branch with a test for it tomorrow.  Sound ok?03:09
lifelessgrewat03:11
lifelessgreat03:11
lifelessthe commit is a bit sad03:11
lifelessI wonder if rollback would be better, but thats a separate discussion03:11
gary_poster:-) I hear you03:13
gary_posterthat's the pattern I saw throughout the tests for this thing03:13
gary_posterI dunno03:13
gary_posterI also am not entirely sure why it is a sqlbase commit03:13
gary_posterrather than a transaction.commit03:13
gary_posterbut I was in a bit of "land the thing" and I felt this was at least an improvement over the status quo03:14
lifelesssure03:15
gary_posterwallyworld: ok, here's hoping the tests pass now. :-/03:15
gary_posterhttps://code.launchpad.net/~gary/launchpad/bug548-db-2-tests/+merge/4857003:15
gary_posterLet me do one last paranoid check...03:15
wallyworldgary_poster: so ready to ec2 land?03:15
gary_posterwallyworld: yes!  all previously failing tests , and all tests I touched, pass.  Let's give it a whirl.  Thank you so much!03:19
wallyworldgary_poster: my pleasure. pleased to help.03:19
gary_posterThank you all.  Have a good day and ttyl03:19
wgrantCould someone review https://code.launchpad.net/~wgrant/launchpad/the-silence-of-the-probers/+merge/48571?03:20
wallyworldthumper: you free to talk about the form submit thing? or you have too much else happening?03:23
thumperwallyworld: I'm doing expenses, so I can talk to you now :)03:24
wallyworld:-D03:24
wallyworldmumble?03:24
* wgrant cries.03:34
thumperwallyworld: https://code.qastaging.launchpad.net/~wikkid/+recipe/wikkid-daily03:34
lifelesswgrant: ?03:35
wgrantlifeless: Fourth stable->db-devel conflict in 24 hours.03:35
thumper:(03:44
LPCIBotYippie, build fixed!03:51
LPCIBotProject db-devel build (340): FIXED in 5 hr 37 min: https://hudson.wedontsleep.org/job/db-devel/340/03:51
wgrantlifeless: Do you have a sec to review https://code.launchpad.net/~wgrant/launchpad/the-silence-of-the-probers/+merge/48571?03:57
lifelesswallyworld: want the review practice?04:08
wallyworldlifeless: for ^^^^ ?04:09
lifelessyes04:09
wallyworldok04:09
lifelessman its fugly:)04:09
wallyworldabout time i had a go at one :-)04:09
lifeless     498 / 7263  Archive:+index04:11
lifeless     245 /  374  BugTask:+index04:11
lifeless      91 /  182  Distribution:+bugs04:11
lifelesshuwshimi: please triage when filing!04:12
mwhudsonlifeless: is there/could there be a link to the triage guidelines in the +filebug page?04:14
mwhudsoni guess it's only really intended for devs04:14
huwshimilifeless: OK :)04:14
huwshimilifeless: Self-triaging suggestions to change things just feels wrong though.04:15
lifelesshuwshimi: you're a dev, you're able to assess importance.04:15
lifelesshuwshimi: if you truely have no idea how relevant this is in the overall scheme of things, thats fine, but I've met very few engineers without such opinions ;)04:15
huwshimilifeless: Yeah ok fair point04:16
huwshimilifeless: I guess people will tell me if I'm doing it wrong anyway :)04:25
lifelessfor sure04:28
wgrantwallyworld: Thanks.04:44
wgrantHow are we looking for the release?04:44
wallyworldwgrant: np. well, i need to finish some qa (just waiting on a qastaging update). there's a mp from gary that fixes some failing tests that i am landing but it just barfed with some rrors :-(04:45
wgrant:(04:46
wallyworldmany related to nascentupload stuff04:46
wallyworldi think that stuff was recently changed?04:46
wgrantWhat are the errors?04:46
wgrantParts of it were refactored a week ago.04:47
wallyworldcause i had the same issue the other day - tests passed locally04:47
wallyworldthis is a merge into db-devel04:47
wallyworldwgrant: https://pastebin.canonical.com/42864/04:48
wallyworldi've not looked at the detail yet, and there's more failing besides just the nascentupload ones04:48
wgrantAh, that's interesting.04:49
wgrantI renamed that DB user yesterday.04:49
wgrantBut it's probably unrelated.04:49
wallyworldsure? :-)04:49
wgrantLet's see.04:50
wallyworldwgrant: i think the purpose of the mp was to specify a db user to use for things to ensure the correct permissions were available and so have not get permission denied errors04:51
wgrantYeah, security.cfg needs lots of fixes.04:51
wgrantThis is going to be difficul;t.04:51
wallyworldand yet the failures had permission issues04:51
wgrantwallyworld: Anything that creates a Person needs INSERT on personsettings.04:53
wgrantLots of things create Persons.04:53
wgrantBut only the webapp has permission to do so.04:53
wallyworldwgrant: hmmm. the failures seem to be in different tests to what the mp changes04:54
wgrantwallyworld: Indeed, they will be in various scripts throughout the tree.04:54
wgrantAnd they should be fixed by adding permissions, not changing DB users.04:55
wgrantWe could be bad and add personsettings to the 'write' group.04:55
wgrantThat may fix everything.04:55
lifelesswgrant: why /should/ they be fixed like that?04:55
wallyworldlifeless: wgrant: i have to go and pick up the kid from school and buy him some cricket whites. be back soonish.04:56
wallyworldi'll catch up about this mp issue when i return04:56
lifelesswallyworld: they won't be white long04:56
wgrantlifeless: Because unless we are going for a single-user model, we have no choice.04:56
wallyworldnot sure if it will make pqm cut off now :-(04:56
wallyworldhah04:57
lifelessI don't know why they don't call them cricket greens04:57
wallyworld:-)04:57
lifelesswgrant: that doesn't follow; perhaps you can expand your reasoning04:57
wgrantlifeless: We have special DB users like archiveuploader.04:57
wgrantThey have permissions that other users do not.04:57
lifelessyes04:57
wgrantSo some scripts must run as those special users.04:57
lifelessyes04:57
wgrantSo those users need these new permissions.04:58
lifelessthe create PersonSettings permission?04:58
wgrantThat one.04:58
lifelesscertainly things that can create Person need that.04:58
wgrantRight.04:58
lifelessbut you were saying something rather broader than that.04:58
lifeless-or-04:58
wgrantI was saying that would be a quick fix.04:58
lifelessyou were being unclear04:58
wgrantI thought the "We could be bad" was a big enough hint that the following suggestion was an awful, suboptimal, but effective fix.04:59
lifelessI thought it was a catholic bad05:00
lifelessyou know, good05:00
wgrantSo, my preferred fix is to grant SELECT, INSERT on PersonSettings to everywhere with INSERT on Person. Including, probably, write.05:02
wgrantAnd possibly review the test changes to work out if the DB users really needed to be changed.05:02
lifelessthat sounds fine05:03
wgrantIt looks like we want to revert the test changes. But I might keep those cool context managers :)05:07
huwshimiCan anyone explain what's going on with the "TREE" and "MERGE-SOURCE" stuff on the diff on this mp? https://code.launchpad.net/~huwshimi/launchpad/tag-label-687546/+merge/4857705:07
wgranthuwshimi: A conflict occurred during the merge.05:07
huwshimiwgrant: How do I resolve that?05:08
StevenKMerge from devel, edit the conflicting files to remove the conflicts, run bzr resolve, bzr ci and push05:08
huwshimiStevenK: How do I merge from devel? I've done it before, but the instructions got removed from the wiki :905:13
huwshimi*:(05:13
* huwshimi is still branching newbie05:13
wgranthuwshimi: In your branch, 'bzr merge ../devel'05:14
wgrantAssuming that you have the usual branch layout created by rocketfuel-setup.05:14
huwshimiwgrant: yeah, thanks05:14
huwshimiwgrant: I guess I need to update devel to the latest first though right?05:15
wgrantRight.05:15
wgrantcd into there, and 'bzr pull'05:15
wgrantOr probably bzr pull -d ../devel05:15
StevenKOr rocketfuel-get05:16
wgrantOr that.05:16
wgrantBut that takes forever from .au.05:16
StevenKIt's only a few minutes for me05:17
wgrantThat is longer than it takes to do a non-parallel branch build.05:17
wgrantAnd that is already forever.05:17
StevenKKids these days05:18
lifelessspm: hi05:21
spmhola05:21
spmlifeless: ?05:25
lifelessspm: I have two queries05:25
lifelessin http://pastebin.com/kwXPWJyT05:26
lifelessI'd like them both run, and explain analyzed, on prod please05:26
spmI'm shocked. only 2???? :-P05:26
spmnp05:26
lifelessits 6:3005:26
StevenKlifeless: So effectively 4 queries?05:26
* spm cheers StevenK on ;-)05:26
* lifeless throws peanuts05:28
spm:-)05:28
spmlifeless: https://pastebin.canonical.com/42865/05:28
lifelessspm: did you run twice?05:29
lifelessspm: also I need the actual output of said queries05:29
spmI didn't run twice, but can; output coming.05:30
lifeless(I don't need the plan again)05:30
lifelessjust run the queries a couple of times each05:30
StevenKAnd query count rises05:30
huwshimiok that'll have to be fixed on Monday. Have a good weekend for all those who are about to begin them.05:31
spmnight huwshimi05:32
spmlifeless: 1st is count 27005:32
lifelessspm: and how long did it take ?05:32
lifeless(\timing ftw)05:32
spm~ 1.5 secs each05:32
spmwill paste shortly05:32
lifelesskk05:32
spmlifeless: https://pastebin.canonical.com/42866/05:33
lifelessthanks05:34
lifelessspm: can you change the select count(*) in the first query to just select *05:37
lifelessspm: run it, and let me know how long05:38
spmugh. yes. one sec.05:38
spmew. I wish I hadn't done that to console. try #2.05:39
StevenKHaha05:39
StevenKlifeless: The mail I just sent to you makes me sad05:40
lifelessyes05:40
lifelessme too05:40
lifelesswhy is it like that though05:40
lifelesswe should debug05:40
StevenKQuerying Hudson over it's Python API is like pulling teeth05:41
lifelesshow do you know05:41
lifelesshave you pulled teeth ?05:41
StevenKNo, but I've had a molar pulled05:41
lifelessstub: you might want to land bigjools debversion patch yourself given how close to pqm closure05:42
lifelessspm: I can prep the query for you if you like05:42
wgrantwallyworld: lp:~wgrant/launchpad/bug548-db-2-tests05:43
spmlifeless: https://devpad.canonical.com/~spm/lifeless.out05:44
wgrantwallyworld: I've run some previously failing tests, and they're OK. Running more now.05:44
lifelessspm: you missed the *time*05:44
lifelessspm: and I didn't care about the output :)05:44
lifelessspm: (sorry for the evident confusion)05:45
spmoh I see05:45
spm~ 1.7 to 2.0 secs. call it 1.9.05:46
lifelessgreat05:46
lifelesswgrant: I'm starting to think that in the second half of this year we're going to have to do a schema refactoring to make soyuz - and things that have followed its lead - actually queryable05:48
wgrantlifeless: If you have some concrete suggestions I would be glad to hear them.05:49
spmdrop database05:49
lifelessfor starters, collapse the tables where we have 'A if B and B if A'05:49
lifelessunless you are never filtering on A or B, this sort of split destroys query performance05:50
wgranteg?05:50
lifelessBPB-PB-BFJ05:50
wgrantThat means denormalising everything.05:50
lifelessif we filtered on BPB rather than BFJ it would be different05:50
lifelesswgrant: I don't see that it does05:50
lifelesswgrant: it may mean modelling it differently05:50
wgrantlifeless: SPRBs? TTBJs?05:50
lifelessthree tables05:50
lifelessBPB SPRB TTBJ05:51
wgrantDenormalised, forcing everyone to query against all three.05:51
lifelessnot true05:51
lifelesssome folk will have to query three05:51
lifeless*most* folk will query one.05:51
wallyworldwgrant: thanks, looking now05:54
wgrantlifeless: So, if we are going to move to a denormalised model we can. But that's a big policy change.05:55
wgrantAnd it is going to need to have good evidence behind it.05:55
lifelesswgrant: I haven't proposed denormalised so far.05:55
lifelesswgrant: as for policy; we have lots of denormalisation, there is no need for a policy change at all.05:55
wgrantYou do not propose redundancy in data, but redundancy in schema.05:56
wgrantThat is almost as bad.05:56
lifelessuhm05:56
lifelessnot at all05:56
lifelesstotally different05:56
lifeless*and*05:56
lifelessin the object model we can still map up to three objects if we want; or base classes.05:57
lifelessbut sql /is not/ an object db, and its query performance /is not/ that of object traversal.05:57
lifelessapproaching things from the wrong end here will give shocking results. (Which btw, we have).05:57
wallyworldwgrant: those changes look sensible to me. wonder why they were needed now? what's changed?06:01
wgrantwallyworld: Nothing changed. They've been needed since the new table was introduced.06:02
wallyworldlifeless: the changes to security.cfg and reverting use of the lp_dbuser cm pretty much make the original mp redundant06:03
wallyworldwgrant: ah ok. didn't realise it was a new table.06:03
wallyworldso it the tests need the permissions, how does it work in production ie for the app itself?06:04
wgrantwallyworld: I reverted the test DB changes, instead granting INSERT on personselection to every DB role that has INSERT on person, since Person.__init__ creates a PersonSelection.06:04
wallyworldwgrant: yeah i realise that :-) just wondering how this hasn't come up before now, unless the original branch which introduced the new table was very recent06:06
wgrantwallyworld: The original branch hasn't landed yet...06:06
wgrantThis MP has a prereq.06:06
wgrantThe prereq adds the table, and has not yet landed.06:06
wgrantThat's why this is on db-devel.06:07
wallyworldok. now it makes sense06:07
wallyworldalthough staging uses db-devel06:07
wallyworldwgrant: so you are going to put up a mp for your branch?06:08
wgrantwallyworld: I suppose so.06:11
wgrantNot sure it really needs one.06:11
wgrantBut I might as well.06:11
wallyworldwgrant: i'm not sure what sop is in these cases?06:11
wgrantIf it were my branch to start with, I'd just land it without rereview.06:12
wallyworldwgrant: me too, but in this case, not sure. maybe lifeless can look since he was the original reviewer?06:13
lifelesswgrant: you're fixing an unlanded mp right?06:13
lifelesswgrant: throw up a branch with the other one as a predicate06:13
lifelessI'll have a look in a minute, once I finish this mail.06:13
wgrantlifeless: Half way there.06:13
wallyworldwgrant: where do i look to estimate when a particular rev will deploy on qastaging, like you did yesterday06:16
wgrantwallyworld: Ha ha ha.06:17
wgrantwallyworld: You need to predict when buildbot will bless it.06:17
wgrantOnce buildbot has blessed it, buildbot-poller will pull it into stable within 15 minutesish.06:18
wallyworldwgrant: it's green in bt now06:18
wallyworld/sbt/bb06:18
wgrantUnless there is a stable->db-devel merge stuck in PQM, in which case it won't pull anything more until that is processed.06:18
wgrantOnce it's in stable, it should be on qastaging in about an hour.06:19
wallyworldwgrant: ok. bb finished it about maybe 30 minutes ago i think06:19
wgrantYou can check /srv/lp-pqm-logs/pqm_logs/buildbot.log and /srv/launchpad.net-logs/qastaging/asuka/qastaging-update.log to get some progress info.06:20
wallyworldwgrant: ah. that's what i needed. thanks06:20
wgrantAnd you can rsync them manually if they are not syncing frequently enough.06:20
wallyworldwgrant: i can wait a little longer. once that rev lands in qas, i can qa it06:21
wgrantlifeless: MP and diff up.06:21
wgranthttps://code.launchpad.net/~wgrant/launchpad/bug548-db-2-tests/+merge/4857906:21
wgrantwallyworld: What about bug #670452?06:22
_mup_Bug #670452: Hard to find related branches when composing recipe <lp-code> <qa-needstesting> <recipe> <Launchpad itself:Fix Committed by wallyworld> < https://launchpad.net/bugs/670452 >06:22
wallyworldwgrant: that's then one i need this latest rev to finish qaing06:22
wgrantAh.06:23
wgrant12320 is a bit odd.06:23
wallyworldhow so?06:23
wgrantIt has [no-qa], and there are no linked bugs, but it lists two bugs and says it's missing QA tags.06:23
lifelesscheck the revisions06:24
lifelessjus ta thought06:24
wgrantI am looking.06:24
wgrantBut codebrowse is being disagreeable.06:24
StevenKwgrant: More than usual?06:25
wgrantAh, interesting.06:27
wgrantOne bug is in the branch name.06:27
wgrantThe other linked to the branch.06:27
wgrantBut not in the commit message.06:27
wgrantI didn't think it looked beyond the commit message :/06:27
wgrantAh, it does.06:29
wgrantIt checks the branch nick, extracts bug numbers from that, and then looks up linked bugs on the LP branch with the same name.06:29
wallyworldwgrant: interesting that the rev is listed twice in the qa report?06:29
wgrantwallyworld: Because there are two bugs.06:31
wallyworlddoh!06:31
wallyworldwgrant: but 12317 has 2 bugs too06:32
wgrantwallyworld: Ahh, I see what's happened.06:32
wgrantIt saw the no-qa.06:32
wgrantSo it tagged both bugs as qa-untestable.06:33
wgrantBut then henninge untagged one of them.06:33
* wgrant retags.06:33
henningewgrant: no, why?06:33
henningewgrant: it's not the fix for the bug06:33
henningeoh, hang06:33
henningeon06:33
wgranthenninge: It was in the branch name, so qa-tagger thinks it is.06:34
spmwgrant: did I ever tell you that asuka-wants-to-get-rocked is complete?06:34
wgrantIt needs to retain the qa-untestable tag.06:34
wgrantUntil we deploy r12320.06:34
henningeah, ok06:34
wgrantspm: I think so.06:34
spmoh cool. just had a moment of doubt there.06:34
* henninge did not know about the branch name06:35
wgranthenninge: Neither did I.06:35
* wallyworld didn't either06:38
lifelessspm: you didn't, we knew, query fixed, landed earlier today06:38
lifelessmight even be on qas now06:38
spmoh cool.06:39
lifelesswgrant: 477 lines (+127/-96) 5 files modified (has conflicts)06:39
wgrantlifeless: Huh?06:39
wgrantGrrr.06:39
wgrantIt does not conflict locally. Perhaps the prereq is breaking things.06:40
wgrantThe number of conflicts visible in that diff is between 0 and 0.06:41
wgrantMust be in the prereq. yay.06:41
lifelessheh06:41
lifeless where did that copy archive query fix go06:42
lifelessI shot it at ec206:43
wgrantNo, that's not it either.06:43
wgrantOh.06:43
wgrantI proposed into devel, not db-devel.06:43
lifelessah06:43
lifeless1232306:43
wgrant:( Deployment-Ready has filled up again06:45
lifelessok, its on stable06:46
lifelesswaiting for qas to update06:46
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/bug548-db-2-tests/+merge/4858006:46
lifelessmars: hi06:46
wgrantlifeless: The lib/canonical/widgets is a lie.06:46
wgrantBut apart from that it looks OK.06:46
wgrantActually, I think the whole thing is a lie.06:47
lifelesswow that widgets file sure gets around06:47
lifelessok, so you've backed out all the stuff, because none of was actually broken.06:48
wgrantI didn't back it out far enough, though.06:48
lifelesseven though we may have more person.insert than needed, we're not trying to fix that right now.06:48
lifelesswhat did you miss?06:49
wgrantAh, no, I think it's OK.06:50
wgrantJust some confusion as to what was there before.06:50
lifelessdoit06:50
wgrantThanks.06:51
wgrantwallyworld, lifeless: Heading off to ec2.06:56
wgrantI'm out for most of the evening, but I'll check up on it when I return home.06:56
wallyworldwgrant: \o/ thanks!!!06:57
lifelesswgrant: ciao06:57
wgrantwallyworld: You need 12327, right?06:59
pooliehi all06:59
wallyworldwgrant: yeah. waiting, waiting06:59
pooliei hope the oauth change doesn't break anything06:59
wallyworldhi poolie06:59
wgrantwallyworld: That's about 5 hours away.06:59
pooliei guess we shall see06:59
poolieit would be a shame if there was some weird side effect06:59
wallyworldwgrant: WTF?06:59
wgrantwallyworld: The last successful buildbot run was 1232406:59
wgrantwallyworld: The one in progress is 1232807:00
wgrantI think tomorrow I will try to write a cron job to automatically report this stuff, because it is too spread out.07:00
lifelesspoolie: oauth change?07:01
wallyworldwgrant: bollocks. it's cutting it real fine then for pqm closure07:01
wgrantwallyworld: Hm? It's already past PQM.07:01
wgrantAnd if it's broken, then you can r-c the fix yourself :P07:01
wallyworldwgrant: in case there's something else wrong :-)07:01
wallyworldtrue, but i don't want to do that :-)07:02
poolielifeless, i deleted the second copy of oauth.py from the tree07:02
lifelessoh right07:02
lifelesspoolie: did you land via ec2 land?07:02
pooliethere's not much specific benefit, so it would be a shame if there's accidental breakage07:02
pooliei ran it here07:02
lifelessthe full suite?07:03
poolieit failed due to something else in the tree being broken07:03
pooliebut with exclusions it passed07:03
wallyworldpoolie: we know where you live if something happens :-)07:03
pooliei'd be more concerned there's something about deployment that causes it to not find the right external oauth07:03
pooliebut, we shall see07:03
poolieit was still waiting for hudson07:03
wgrantpoolie: It'll be fine if it works on ec2.07:03
lifelessdeployment matches test environment quite closely07:04
wgrantExcept for sourcecode.07:04
wgrantBut this isn't sourcecode.07:04
wgrantI know it's OK egg-wise, because that's what makes it take so. damn. log.07:04
pooliethis is making it depend on sourcecode for something where it previously did not07:04
wgrant+n07:04
wgrantpoolie: This is an egg, not sourcecode.07:04
poolieok07:04
=== almaisan-away is now known as al-maisan
LPCIBotProject devel build (417): STILL FAILING in 6 hr 13 min: https://hudson.wedontsleep.org/job/devel/417/07:34
LPCIBot* Launchpad Patch Queue Manager: [r=thumper][bug=316694] Add a web_link property to the JSON07:34
LPCIBotrepresentation of all web service entries that correspond to07:34
LPCIBotsome page on the Launchpad website.07:34
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][bug=709717] Remove an unnecessary join to07:34
LPCIBotsourcepackagerelease when counting packages that are being07:34
LPCIBotbuilt/waiting to be built in ArchiveView.num_pkgs_building07:34
LPCIBot* Launchpad Patch Queue Manager: [r=leonardr][bug=705342] Fail nonvirtual builders in the ABORTED07:34
LPCIBotstate rather than cleaning them,07:34
LPCIBotsince we can't guarantee that there's no active build.07:34
LPCIBot* Launchpad Patch Queue Manager: [r=jtv][bug=705652] Log warnings in the remove_translations script if07:34
LPCIBotcurrent translations are removed. Removed the theoretically07:34
LPCIBotimpossible case of finding a diverged translation being current07:34
LPCIBotin upstream which is linked to a POTemplate having a diverged07:34
LPCIBottranslation being current in Ubuntu.07:34
LPCIBot* Launchpad Patch Queue Manager: [r=deryck][ui=none][no-qa] Provide translation sharing information.07:34
=== al-maisan is now known as almaisan-away
mrevellHey up 'padders09:08
jtvhi mrevell!09:11
bigjoolshelleau09:13
jtvhi bigjools09:16
jtvWhich reminds me of coffee09:16
jtvbrainzzz09:16
bigjoolsyay PG vuln09:19
jtvinteger overflow—a type of vuln I suspect we haven't even begun to make a dent in, as an engineering discipline.09:23
jtvWell okay, in this case, buffer overflow from large integers I suspect09:23
bigjoolsinteresting09:23
=== almaisan-away is now known as al-maisan
jtvhi al-maisan!09:24
al-maisanhello jtv, how are things?09:24
jtval-maisan: they are bloody cold, thank you. ☺  You?09:25
al-maisanjtv: ha-ha .. you must be in good, old Europe then :)09:25
al-maisanjtv: doing well, thanks, the weather in Zürich is "mild" in comparison with the previous days09:26
jtvSo… ice but no penguins?09:27
=== Ursinha-gone is now known as Ursinha
Ursinhamorning09:36
jtvHi Ursinha!09:47
al-maisanjtv: penguins .. in the zoo maybe ;)09:52
jtvallenap: http://pqxx.org/development/libpqxx/wiki/AllSoftwareIsBroken09:52
allenapjtv: Cheers :)09:52
lifelessjtv: typo09:53
lifeless'that what' should be 'than what'09:53
jtvallenap: still needs work, and Maris had some useful feedback on it.  If you have any ideas (maybe I should open a discussion page) I can forward them.09:53
jtvthanks lifeless!  Will fix right away.09:53
Ursinhahi jtv :)09:53
lifelessjtv: actually, I think I misparsed.09:54
lifelessjtv: either way :)09:54
jtvlifeless: did you misread the "That was"?09:55
lifelessI think so09:55
jtvOK, then it stays unchanged.09:55
lifelessmars: hi09:57
lifelessactually09:58
lifelessgnight09:58
bigjoolsjtv: remind me where your MF branch is and I'll re-test10:00
jtvbigjools: I thought my MF branch was already on dogfood.  But it's also at lp:~jtv/launchpad/bug-181368-parallelize10:02
jtvWhy do I have so much trouble spelling that word lately?10:02
bigjoolsjtv: for some reason DF has a diff in test_ftparchive.py but not in the publisher code10:03
jtvough10:03
bigjools"pilfering_puppy" ....?!10:03
jtvYes, doesn't that make sense?10:03
jtvI think it's a wonderful release name.10:04
* bigjools wonders what Q will be10:04
jtvquerulous quopossum?10:04
bigjoolsreaching10:04
jtvvery10:04
adeuringgood morning10:24
jtvmorning adeuring!10:27
adeuringhi jtv!10:27
jelmerjcsackett: hi10:29
jtvand hello jelmer, hello jcsackett :)10:31
jelmerJeroen!10:31
al-maisanGood morning adeuring10:32
adeuringhi al-maisan!10:33
jelmerhi Abel, Muharem10:33
al-maisanhello jelmer :)10:33
adeuringhey jelmer!10:33
jtvjelmer: you strike me as a likely chap to be able to improve this documentation: https://dev.launchpad.net/LaunchpadPpa?highlight=%28launchpad%5C-dependencies%29#launchpad-dependencies10:34
jtv"Edit debian/control to add or change the dependencies. Your name + email address must match an identity in your GPG key exactly."10:34
jelmerjtv: maybe :)10:34
jtvAs an amateur, I would've thought the name and email address went into changelog.10:34
jtvAlso, I don't suppose there's any way to add a dependency for lucid?10:35
jelmerjtv: That comment doesn't seem like it belongs on the line about debian/control10:36
jtvRight.10:36
* jelmer does the wiki editing thing10:36
bigjoolsjtv: we need a separate lucid package, *unless* the new a-f version is larger than lucid and less than maverick's10:37
bigjoolsyou can add "apt >= <new version>" in that case10:38
jtvIt's inbetween.  I'm just wondering: if I say "maverick" in the changelog, will the change still go into lucid machines?10:38
bigjoolsjtv: when I changed them recently, I uploaded to maverick, and then package-copied w/binaries to lucid10:38
jtvI have a >> dependency to be precise, for complicated reasons.10:38
bigjoolsand natty10:38
bigjoolswhy?10:39
jtvComplicated reasons.10:39
jtvgmb added a "lucid" entry to the changelog last month.10:39
jtvbigjools: I guess the binaries don't amount to much for this stuff.10:40
bigjoolsno10:40
jtvSo the same copy would work for me as well.10:40
bigjoolsbut you need to select that option or it won't copy10:40
jtvIt'll detect the maverick entries in the changelog and refuse to build for lucid?10:41
bigjoolsno, you can't copy intra-archive without binaries10:42
jtvah10:44
jtvjelmer: thanks for the fix :)10:47
=== al-maisan is now known as almaisan-away
henningejtv: Hi!11:07
jtvhi henninge!11:07
henningejtv: Can you have a look at this mp, please and possibly review it?11:08
henningehttps://code.launchpad.net/~henninge/launchpad/devel-710591-setcurrenttranslation-extension/+merge/4859411:08
jtvhenninge: yes on the former, maybe on the latter :-P11:08
henningeI know, I know ...11:08
henninge;)11:08
jtvJoking—I'll review.11:08
jtvFor a price^H^H^H^H^H^H^H^C11:08
* henninge might fall asleep though11:09
jtvand jtv might eat a bit—won't take long.11:15
jtvhenninge: typo in ITranslationMessage.acceptAsImported: sold_style_import11:29
jtvhenninge: also, please move the "real" docstring from the model class to the interface.11:30
jtvOh, the big one is on POTMsgSet, not TranslationMessage.11:30
henningejtv: right, that is modeled after approve.11:30
jtvSorry about that.11:31
henningejtv: I just saw that "lib/lp/app/widgets/__init__.py" appears in the diff. I had a conflict when pulling the latest devel.11:34
jtvI was wondering about that but decided not to whinge. :)11:35
henningeThat is not supposed to be in my brnach.11:35
jtvhenninge: I see that the design discussion opened up another can of worms about imports as well.11:36
henningewhich design discussion?11:37
jtvThe design discussion for your branch.11:37
jtv"What to do about Ubuntu packaged/published/imported/upstream imports."11:38
henningeah, that.11:38
henningeWell, I realized when doing this that using "approve" in the importer is just not The Right Thing.11:39
jtvIf I read the docstring correctly, this means that messages that get made current during import aren't marked as reviewed.  I thought they were, actually.11:39
henningejtv: btw, the next branch will actually update the importer.11:39
henningeNo, they were not,11:40
henningeI checked the old code.11:40
jtvThat explains why I can't look up the answer to that question in the diff.  :)11:40
jtvSo we were getting is_current messages without a review date?11:40
henningeObviously yes, since ever.11:41
henningeDavid and Robert were pretty confused when all translations uploaded by Robert were marked as being reviewed by him.11:42
jtvWhen you update the import code, will we keep the implicit support for non-reviewer uploads?11:44
jtv"if is_reviewer: acceptAsImported(...)"?11:44
jtvBecause I thought that was very nice in your existing code.11:44
henningeHm11:45
bigjoolsjtv: what did you change in the a-f stuff?11:45
bigjoolsjtv: it works for the package I uploaded but there's loads of new warnings in the log11:45
jtvbigjools: ah11:45
jtvthat was a bonus11:46
jtvI logged stderr from the sub-process at a higher level.11:46
jtvIt was previously DEBUG, which seemed inappropriate.11:46
bigjoolshmmm ok11:46
jtvWant me to change that?11:46
bigjoolsno, let's roll with it11:46
jtvI was about to haggle down to INFO.  :)11:46
jtvBut stderr is meant to be for error stuff, after all.11:47
bigjoolsthe DF warnings are genuine, just annoying11:47
jtvThen maybe the real lesson is that we should fix them.11:47
bigjoolsit's basically because we've not got an intact archive on there due to lack of space11:47
henningejtv: I had not planned on that. I was going to use "old_style_imports" only if the upload is by_maintainer and to a source package and no upstream template eixists.11:47
bigjoolsjtv: nothing to fix11:47
henningejtv: but I don't plan to use approve for anything.11:47
bigjoolsother than to publish with the "careful" option - but we'd run out of disk space pretty quick11:47
jtvhenninge: is this related to it being old-style though?  I would have thought you were going to replace the approve call with an acceptAsImported one.11:48
henningeexactly11:48
henningebut the "old_style" parmeter is only True when those three conditions are met11:49
henninges/is/will be/11:49
jtvhenninge: then this isn't really "old style" (especially since AFAIK we have no plans to change it), more a kind of "upstream-by-proxy style" import.11:49
henningewell, I called it old_style because it uses "is_current_upstream" like the old "is_imported"11:50
henningewhen importing to a source package11:50
jtvhenninge: yes, but think from the perspective of an engineer who's not familiar with Translations as it was before Recife, who now has to work on the codebase.11:50
jtvUnlikely, I know.  :-)11:50
bigjoolsis anyone already fixing devel?11:51
henningeoh, I have a few engineers here in my squad that are having fun with the codebase...11:51
jtvhenninge: that engineer won't have "old style" as a reference base, and won't be interested in it, and will interpret it as legacy stuff, to be grandfathered in eternally and then removed.11:51
jtvSo can you come up with a more descriptive name?11:51
henningejtv: ok, renaming is fine by me.11:51
jtv"Two things are hard…"11:52
henningeNot when I am this tired ... ;)11:52
henningewhat was the other one?11:52
bigjoolsis anyone even bothered about devel?11:52
henningeWhat's wrong with it?11:53
henningejtv: upstreamless_imports ?11:53
henningeone_sided ?11:54
jtvbigjools: is it buildbot?11:54
bigjoolsit fails locally too11:54
jtvWe may have grown too accustomed.11:54
jtvwhoops11:54
jtvhenninge: deliberately taking the distraction to give the brain time to percolate. :)11:55
jtvbigjools: what test?11:55
bigjoolsFailure in test canonical.launchpad.webapp.tests.test_authentication.TestOAuthParsing.test_split_oauth11:56
bigjoolssee my email11:56
jtvargh not oauth11:57
wallyworldbigjools: i just logged on the check how things were going. build failure :-(11:57
bigjoolswallyworld: yeah, see the email I sent11:58
wallyworldjtv: bigjools: poolie landed a branch which deleted a "duplicate" oauth.py or something like that11:58
wallyworldperhaps we rollback that branch?11:59
bigjoolsthat was my thought unless someone knows how to fix it11:59
wallyworldi'm not across fully the reason for making the change that was made11:59
bigjoolsI know pretty much bugger all about oauth :/11:59
wallyworldwell that makes at least 2 of us12:00
wallyworldi'm waiting on rev 12327 to get to qastaging so i can complete qa of one of my bugs too12:00
wallyworldbut with the build failure, that ain't gonna happen anytime soon12:01
jtvPasses for me locally.12:01
deryckMorning, all.12:02
jtvFew hours old all.12:02
bigjoolsjtv: the failing test?12:02
jtvHi deryck12:02
jtvFew hours old *though* :)12:02
jtvbigjools: yes, test_launchpad_login_source12:02
bigjoolsyou have latest devel?12:02
jtvFew hours old.12:02
jtvI'm not sure about updating it now!12:02
bigjoolstest_split_oauth is the test12:02
=== matsubara is now known as matsubara-afk
jtvAh that one—passed as well.12:03
bigjools?!12:03
bigjoolsyou have latest sourcedeps etc?12:03
jtvGuess not.12:08
jtvhenninge: how about calling the new behaviour "upstream for package"?  POTMsgSet.acceptAsImported is really two methods dressed up as one horse though, so I'd advocate splitting it up and putting the "if" all the way in the calling code.12:11
wallyworldbigjools: the oauth.py removed from lib/contrib is different to the one from the oauth egg12:22
bigjoolsAWESOME :)12:22
wallyworldso that's likely the reason that test fails12:22
wallyworldthe one removed could well be the old, buggy version but.......12:22
wallyworldand maybe all we need to do is update the failing test, but i don;t have enough knowledge about all this to do that12:23
bigjoolsme neither12:23
wallyworldanyone else likely to know?12:23
bigjoolswe probably need to wait for our friends in North Carolina to wake up12:24
wallyworldwe could ask one of the reviewers but they're not here atm12:24
wallyworldbigjools: so pqm should close as scheduled in 30 minutes and we land a rc fix after that?12:25
wallyworldor we want to land a rollback now?12:25
wallyworldor something else?12:25
bigjoolswallyworld: I thought PQM was closing in another 3.5 hours12:25
wallyworldoh have i got the tz wrong?12:25
bigjoolsit was 1600 UTC right?12:25
wallyworld14:00UTC12:25
wallyworldbut it can be 16:00 :-)12:25
bigjoolsargh12:26
bigjoolsseems an odd time :)12:26
wallyworldi just copied from what happened last release :-)12:26
bigjoolsmake it 23:00, go on :)12:26
bigjoolsyou can do whatever you like, you're the RM12:26
wallyworldwell, i vote that we make it 16:00 to fix this issue :-)12:26
bigjoolstypically we close it when the US guys finish on a Friday12:26
bigjoolswhich is 230012:27
wallyworldwhich tz?12:27
bigjoolsthere is Only One TZ12:27
bigjools:)12:27
bigjoolsmy db-devel branch is in ec2 right now as well, if it doesn't land I'll probably have to kill kittens12:28
wallyworldbigjools: just to be sure, so you saying to close pqm in 3.5 hours12:29
bigjoolswallyworld: in 11.5 hours12:30
wallyworldbigjools: cool, even better. it's late here and i'm easily confused12:30
bigjoolsyou'll allmost certainly catch people off guard closing at 1600!12:30
bigjoolswallyworld: actually I meant 10.5 hours :)12:31
wallyworldok. i should check in with a losa to make sure the closing time is clear12:31
bigjoolsprobably a good idea12:31
wallyworldbigjools: so that will allow your db-devel branch to land and the us guys time to look at the oauth issue12:32
bigjoolsyup12:32
wallyworldok12:32
bigjoolsawesome - go get some sleep, enjoy your weekend12:32
wallyworldare you able to ping someone from across the pond to follow up?12:32
bigjoolsyeah I'll chase12:33
wallyworldawesome. thanks12:33
bigjoolsnae prob12:33
wallyworldgary_poster: that branch i submitted to ec2 failed tests12:33
wallyworldso as a quick fix, wgrant added the required insert/update permissions to security.cfg for the personsettings table12:34
wallyworldand the use of the db_user context manager was rolled back12:34
wallyworldgary_poster: just as an fyi in case you were wondering what happened ^^^^^^12:35
=== matsubara-afk is now known as matsubara
wallyworldbigjools: i'll send mbarnett an email about the altered pqm closing time but if he appears before your eod, if you could irc him also that would be great. tia :-)12:40
bigjoolssure thing12:40
adeuring /topic https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: adeuring | https://code.launchpad.net/launchpad-project/+activereviews12:53
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: bac| https://code.launchpad.net/launchpad-project/+activereviews
=== adeuring changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: bac, adeuring| https://code.launchpad.net/launchpad-project/+activereviews
gary_posterwallyworld: thank you!  so, the main branch landed13:01
gary_poster?13:02
gary_posterand I should clean up the insert/update bits ?13:02
wallyworldgary_poster: i think instead your branch was branched and the changes i alluded to made and that one was landed13:03
gary_posterawesome13:03
gary_posterlooking for db-devel13:03
wallyworldi had to go and get the kid from school so missed the main action13:03
gary_posterI assume I should fix that up now13:03
gary_poster:-)13:03
wallyworldgary_poster: i think the concensus was that the lack of permissions on the personsettings table was the true root cause issue that needed fixing13:04
wallyworldso not sure there's too much to fix13:04
wallyworldin other words, perhaps the db_user context manager was not needed13:05
gary_posterhm.  I didn't think that was actually necessary, especially for the files I touched for instancer13:05
gary_posterthat is, the tests needed the enhanced permissions13:05
wallyworldceratinly it's still there but the tests have been reverted not to ust it i believe13:05
gary_posterfor stup13:05
gary_postergotcha13:05
gary_posterfor setup I meant13:05
gary_posterI don't see it on https://code.launchpad.net/~launchpad-pqm/launchpad/db-devel13:06
* wallyworld looks13:06
wallyworldgary_poster: here's the branch https://code.edge.launchpad.net/~wgrant/launchpad/bug548-db-2-tests13:07
gary_posteryes I found, thank you13:07
gary_posterWhat does status "Superseded" mean I wonder13:08
gary_posternever seen that one before13:08
wallyworldme either :-)13:08
gary_posteroh there it is13:08
gary_posterhttps://code.launchpad.net/~wgrant/launchpad/bug548-db-2-tests/+merge/4858013:08
wallyworldi thought it was submitted to ec213:08
gary_postermaybe it failed some more :-/13:09
wallyworldthere's a buildbot failure atm which may be holding things up13:09
gary_posterah13:09
wallyworldyou don't know about oauth per chance?13:09
gary_posterfoundations was in charge of it but I barely knew much of anything.  lessee...benji is still sick...stub also worked on it13:10
gary_posterand then salgado is on another team13:10
gary_posterso we have no experts :-(13:10
gary_posterI can stare at it too13:10
wallyworld:-(13:10
gary_posterthere's no visibility into the test output of my branch13:11
wallyworldthe oauth.py frob lib/contrib was removed sinces there's a version in the oauth egg13:11
gary_posterwhich is a shame13:11
wallyworldbut the 2 versions are different and now there's a test failure13:11
gary_posterso I guess I'll dig into this a bit13:11
gary_postercan we simply revery?13:11
gary_posterrevert13:11
salgadogary_poster, I'm happy to have a look at that, if you'd like13:11
wallyworldgary_poster: you mean the one that i landed?13:11
gary_postersalgado: thank you!13:12
wallyworldthe test output from that ec2 run i did for you?13:12
gary_posterwallyworld: I got that.  I meant the one from wgrant13:12
wallyworldoh.13:12
gary_posterthe changes in wgrant's branch do look good, but actually, I still think what I had will be necessary13:13
wallyworldgary_poster: btw, bigjools is going to follow up with someone in the usa about the oauth thing. i asked you because i had your attention :-)13:13
gary_posterthere are some dbusers who don't have person access at all13:13
gary_poster:-)13:13
bigjoolsI was going to be asking gary anyway :)13:14
gary_poster:-P :-)13:14
jtvbigjools: another thing that should become faster with my "view" branch is finding binary package files on a distribution.  The soyuz queue and sync-source seem to make use of that.13:14
gary_posterSince salgado has volunteered I think we're officially saved13:14
gary_posterbigjools, wallyworld ^^^13:14
wallyworld\o/13:14
bigjoolsgary_poster: sorry I'm a bit behind on this conversation, is he fixing the issue or reverting it?13:15
gary_posteryes bigjools :-P  I never got around to seeing what the issue was13:15
bigjoolsjtv: great!13:15
wallyworldgary_poster: also as an fyi, i got the pqm closing time wrong so it's now 23:00UTC not 14:00UTC13:15
wallyworldso there's time to get stuff sorted13:15
jtvbigjools: the more positive you are, the more I feel we must be ignoring some major screwup on my part.  :-)13:15
wallyworldthere's a db-devel rev which needs qa but i'm sure curtis will do that before eod :-)13:16
bigjoolsjtv: I'm sure you'll be fine :)13:16
gary_posteryay!  so now we are at...13:16 UTC?  I forget if I am -5 or -4 .  looking13:16
bigjoolswallyworld: I have a db-devel that will land soon when ec2 finishes it13:16
gary_posteryeah13:16
jtvbigjools: I guess you just found my "be more careful" button.  :-)13:16
wallyworldi've got one to but need 12327 to land on qastaging first >:-(13:17
gary_posterso we have 9:40-ish, yeah wallyworld?  That's awesome.  Thanks for the heads up13:17
bigjoolswallyworld: mine's already QAed13:17
wallyworldgary_poster: yeah. i thought i copied from what happened last release but clearly was smiking something that day to get the time so wrong13:18
gary_poster:-)13:18
wallyworldbigjools: thanks!13:18
wallyworldnight guys, have a good day. good luck with the oauth thing. email if you need me to do anything for the release13:22
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
gary_posterthank you wallyworld !13:27
wgrantgary_poster: Hi.13:36
salgadoso, this is what happened13:36
gary_posterwgrant: hi, and thank you too.  1 sec finishing call13:36
salgadombp fixed bug 314507 by changing contrib/oauth.py, and in the process of that he wrote a test for the fix13:37
_mup_Bug #314507: OAUTH server ignores ignores first element in header (rather than realm key) <api> <lp-foundations> <qa-ok> <Launchpad itself:Fix Released by mbp> <python-oauth (Ubuntu):Invalid> < https://launchpad.net/bugs/314507 >13:37
wgrantgary_poster: My changes are fine. But webservice tests fail because snapshotting hits "Teams do not support this attribute.13:37
salgadohe then noticed we didn't need contrib/oauth.py because we already have a python-oauth egg new enough, which has a fix similar to the one he did to contrib/oauth.py13:38
wgrantImmutableVisibilityError: This team cannot be converted to Private since it is referenced by a personsettings.13:38
wgrantThat also.13:38
wgrantgary_poster: Those are the only two failure modes. But I'll forward you the email.13:38
salgadobut the upstream fix is not really compatible with his fix, so the test fails13:38
gary_posterwgrant, yeah the email would be perfect13:39
gary_posterthank you again wgrant13:39
wgrantNo worries.13:40
wgrantEmail sending...13:40
LPCIBotProject devel build (418): STILL FAILING in 6 hr 8 min: https://hudson.wedontsleep.org/job/devel/418/13:42
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless,13:42
LPCIBotwallyworld][bug=712882][no-qa] Silence non-error output from13:42
LPCIBotmirror-prober.sh.13:42
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][bug=670452] Fix layout of related branches collapsible13:42
LPCIBotfieldset13:42
LPCIBot* Launchpad Patch Queue Manager: [r=lifeless][ui=none][no-qa] Remove duplicated urgencymap in gina.13:42
LPCIBot* Launchpad Patch Queue Manager: [r=jcsackett,13:42
LPCIBotsinzui][ui=none][bug=701545][no-qa] remove extra copy of oauth.py13:42
=== almaisan-away is now known as al-maisan
salgadogary_poster, I've replied to bigjools' email.  bottom line is, I think the change should be reverted until we get a python-oauth with a fix that makes the test pass13:54
gary_postersalgado: makes sense.  thank you very much!13:55
jtvadeuring: I'm about to head off for FOSDEM, but was wondering if you could review this one: https://code.launchpad.net/~jtv/launchpad/bug-181368-view/+merge/4860913:56
gary_posterbigjools: are you available to (find someone on a bug rotation to) do that?13:56
adeuringjtv: sure, I'll look13:57
jtvadeuring: and thanks for that other review, very discreet!13:57
jtvbigjools: any luck on dogfood?13:58
salgadogary_poster, np13:58
gmbderyck: YUI JS tests are run as part of our harness, True or False?13:59
deryckgmb, True13:59
gmbderyck: Thanks.13:59
deryckabentley, hey, hey.  standup ping.14:00
deryckgmb, and YUI tests should be preferred to Windmill14:00
bacderyck: so how does one run a YUI test from the command line?14:16
jtvbigjools, adeuring: I'm not long for this login.  If there's anything you need me for, speak now or for the weekend hold your peace.14:18
wgrantgary_poster: Did my email make it?14:20
gary_posteryes, thank you much wgrant.14:20
deryckbac, firefox path/to/test/file.html14:21
wgrantGreat.14:21
wgrantgary_poster: They look easy enough to fix.14:21
* wgrant sleeps.14:21
gary_posterwgrant, agreed.  night14:21
deryckbac, and currently, they are not pretty and easy to read unless you set fetchCSS: true in the test.14:21
bacderyck: that's not command line.  how are they run by our test harness?14:21
deryckbac, ah, sorry. xvfb-run ./bin/test -cvvt test_yuitests14:22
deryckbac, that will run *every* YUI test.  You can limit by adding --layer=BugsWindmillLayer (or whatever app layer you need)14:22
bacderyck: thanks!14:22
deryckbac, also, there is no way to run a single YUI file via bin/test.14:23
bacderyck: gotcha14:23
bacderyck: i'll add that to the wiki14:23
deryckbut if you TDD with YUI test it makes sense to keep the browser open.  so using firefox path/to/test makes sense there, I think.14:24
deryckor whatever browser you prefer, obviously.14:24
bacderyck: right14:25
jtvhenninge: I gave you a conditional approval, by the way, on the points we discussed.14:25
bigjoolsjtv: it worked ok14:27
bigjoolsthought I'd already said that :)14:27
bigjoolsgary_poster: I can revert it14:29
jtvbigjools: maybe I just missed it.  All I remember seeing is the bit about the warnings.  So the files were produced correctly, not one architecture overwriting the rest or anything?14:29
gary_posterthanks bigjools14:30
jtvbigjools: and also, what did it do to performance?14:30
bigjoolsjtv: hard to say about that, DF only has one builder14:30
bigjoolsbut the Package file I looked at was updated ok14:30
jtvbigjools: well for this purpose, "source" is an architecture.14:30
bigjoolsjtv: the Sources file was also ok14:31
bigjoolsno idea with performance14:31
bigjoolsthe longest part by far is where we generate the files for a-f14:31
jtvbigjools: I've been assuming that the outputs for different architectures never write to the same files, based on wgrant's note that it could be parallelized.14:31
bigjoolscorrect14:31
jtvPhew.14:31
jtvGot a branch in review that'll hopefully speed that part up a bit, but had to stop myself from trying to fix everything.14:33
bigjoolsthere's one file per suite-arch14:33
jtvWhat I thought/hoped.14:33
jtvI think we could probably ditch the batch processing now, since it's trying to force the StupidCache's hand but we now have GenerationalCache.14:34
jtvOne thing it _could_ still be useful for is prejoining.  Can't do that with those get-all-packages queries, but can with a reasonably-sized batch of rows.14:35
jtvThat'd apply nicely to practically the entire BinaryPackageFilePublishing view: select BPPHs and BinaryPackageFiles, batch them, then batch-fetch the stuff that pulls in the other tables.14:37
jtvThat could save us something like half the tables in the join.14:38
jtvAnyway, I have to run now!14:39
danilosbac, adeuring: hi, anyone eager to take on a pretty simple branch?14:41
adeuringdanilos: I'm currently reviewing a branch from jtv... bac?14:42
bacdanilos: ok14:42
danilosbac, thanks, it's up at https://code.launchpad.net/~danilo/launchpad/bug-548-use-preference/+merge/4861614:42
danilosbac, fwiw, I am not sure where exactly does the change in app/widgets/__init__.py come from in there14:42
danilosbac, probably one of merging artifacts (I've based in on as of yet unlanded gary_poster's branch)14:43
gary_posteryeah14:43
gary_posterit was an artifact on mine too, starting yesterday14:43
danilosgary_poster, ah, interesting14:44
* bigjools just sent a testfix to PQM14:48
allenapgmb, deryck: Would one or both of you have time to review https://devpad.canonical.com/~gavin/howto-import-bugs-into-launchpad.html?14:52
deryckallenap, sure, I can look.14:52
allenapThanks :)14:53
salgadowhere's sinzui?  he's replying to lp questions but is not around here?14:55
deryckallenap, it's very nice.  very thorough.14:57
deryckallenap, The only "gotcha" I've had that wasn't covered, was importing bugs into a private project on staging.  Thinking the bugs didn't import, when it was just that I couldn't see them.14:57
derycknot sure if that should be covered or not, but otherwise, it's very well done and accurate.14:57
allenapderyck: Cool. I've never done an import into a private project. Is it just that the bugs are not visible unless you've got the right puppy powers?14:58
deryckallenap, exactly.  so you completely have to depend on the person to followup and check them completely themselves.14:59
danilosallenap, gmb: hi guys, do you know if it's possible to set a direct subscription to LIFECYCLE through UI already (on qastaging)?14:59
allenapderyck: Okay.14:59
gmbdanilos: It isn't.14:59
allenapderyck: Thank you :)14:59
deryckallenap, private is the exception, obviously.  but commercial customer imports will be this way.14:59
deryckallenap, np! :-)14:59
gmbdanilos: Oh, wait.15:00
gmbI tell a lie15:00
danilosgmb, ok, thanks... ok, no thanks for you then! :)15:00
gmbdanilos: Yes, it can be done (sorry, I saw LIFECYCLE and read NOTHING for some reason)15:00
danilosgmb, is it just +subscribe on the bug?15:01
gmbdanilos: if you go to bug/+subscribe you can choose it there.15:01
danilosgmb, I assume I need malone-alpha membership?15:01
danilosgmb, because I don't see it on https://bugs.qastaging.launchpad.net/malone/+bug/548/+subscribe15:01
_mup_Bug #548: Launchpad sends change notification updates to the person who requested the change <email> <lp-bugs> <story-better-bug-notification> <story-better-notification-sending> <Launchpad itself:In Progress by yellow> < https://launchpad.net/bugs/548 >15:01
gmbdanilos: You're not a member of malone-alpha on qastaging. I've added you.15:02
danilosgmb, excellent, thanks15:03
danilosI keep getting timeouts on qastaging trying to subscribe to a bug... let me try modifying an existing subscription isntead15:05
=== matsubara is now known as matsubara-lunch
marsbac, ping15:08
bachi mars15:10
bigjoolstestfix landed 10 mins ago15:26
bachi danilos, i'm looking at your branch.15:48
bacdanilos: i'm confused by bugnotification.py15:48
bacdanilos: why do you test not person.selfgenerated_bugnotifications instead of not recipient.selfgenerated_bugnotifications15:49
bacdanilos: why do you test "not person.selfgenerated_bugnotifications" instead of "not recipient.selfgenerated_bugnotifications" ? (redone for clarity)15:50
bacnm15:51
danilosbac, ok :) (fwiw, it's because recipient might be including the person transitively, so this is the cheapest check)15:53
bacdanilos: for the list of bugnotifications, the first_notification.message.owner is the person who performed the action that is generating the message?15:54
danilosbac, that's right15:54
bacfor all bugnofitications15:54
danilosbac, in that method, all notifications that are passed in are caused by the same person and for the same bug (look at asserts below)15:54
bacperhaps changing 'person' to something more descriptive, like 'instigator'15:54
danilosbac, sure, makes sense15:55
=== beuno is now known as beuno-lunch
danilosbac, btw, how do you feel about: 1) 'originator', 2) 'person_causing_change', 3) 'changed_by', 4) 'change_caused_by' or something like that?16:17
bac216:18
bacit's wordy but unambiguous16:18
sinzuiI suspect the worst. gedit and gvim go belly up seconds after they launch. I think I should restart before natty's desktop session ends the same way16:18
danilosbac, cool, thanks16:19
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
bigjoolshow had I not noticed before that the branch page shows what branch was merged in each revision and the bug - that's awesome16:22
=== matsubara-lunch is now known as matsubara
jmlallenap: do you want to give my branch a spin again, see if it builds now?16:41
jmlbzr+ssh://bazaar.launchpad.net/~jml/launchpad/sphinx-it-up16:41
allenapjml: Cool, yeah.16:41
sinzuibac: do you have time for a trivial branch: https://code.launchpad.net/~sinzui/launchpad/reg-docs-1/+merge/4862716:49
=== al-maisan is now known as almaisan-away
bacsinzui: sure16:49
allenapjml: Works nicely :) security.txt had a "severe" error, which can be fixed with http://paste.ubuntu.com/562626/. I'll go and update the mp.16:51
jmlallenap: ta16:51
=== beuno-lunch is now known as beuno
=== deryck is now known as deryck[lunch]
bacsinzui: sorry, i was overcome by hunger and had to grab some lunch17:40
sinzuibac: np. I an struggling to bring some stability to natty17:40
=== adeuring changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: bac| https://code.launchpad.net/launchpad-project/+activereviews
bacsinzui: do we need to specify the hkp port since the value you list is the default?  it's kind of like saying http://www.foo.com:80, no?17:46
sinzuiI do not know17:46
sinzuigoogle is not forthcoming on this question17:47
bacsinzui: the bug report seemed to indicate the port was not necessary, unless i misread17:55
sinzuibac: I agree17:55
sinzuiI am very disappointed by the lack of documentation about this17:55
sinzuibac: I will remove the port because we know the default port is being used by ubuntu's keyservers17:58
bacsinzui: great.17:58
bachi abentley, there is a question about code imports failing.  could you look at it?  https://answers.launchpad.net/launchpad/+question/14386118:00
sinzuibac: ping18:11
bachi sinzui18:11
sinzuibac: can you add open-cat-team so that I can veryify the membership is proposed: https://staging.launchpad.net/~delegated-team/+add-my-teams18:12
bacdone18:12
sinzui\o/18:12
=== deryck[lunch] is now known as deryck
abentleyhenninge, I am updating the template precedence rules so that we can merge productseries templates with sourcepackage templates.18:57
henningeabentley: wie bitte?18:57
abentleyhenninge, I'm guessing that a product translation focus should take precedence over a package translation focus.  What do you think?18:57
abentleyhenninge, ja18:58
* henninge has to think about this for a moment18:58
henningeabentley: I never really touched that, I think that's Jeroen's making.19:00
henningeabentley: where is this precedence applied?19:00
bachi henninge and abentley.   there were questions related to your expertise that i assigned to you.  hope that is ok.19:00
henningebac: I answered mine ;)19:01
abentleyhenninge, it's used by the message sharing migration script, which I have now refactored to be used from the job.19:01
baccool, thanks henninge19:01
henningeabentley: I figured but where exactly? Is it about chosing which POTMsgSet to keep and which to throw away?19:02
abentleybac, alright.19:02
abentleyhenninge, it's used to decide which is the most "representative" POTMsgSet, which yes, I believe affects which ones get deleted.19:03
henningeabentley: yes, I assume we'd want to favor the upstream template here.19:05
henningeotoh, I don't think it makes a huge difference.19:05
abentleyhenninge, in case of clashes, the subordinate is "saved" by diverging it.19:06
henningeabentley: hang on, but now you are talking about translation messages.19:06
abentleyhenninge, you're right, it's diverging translationmessages.19:08
henningeabentley: in that case it might be smarter to do it the other way round.19:08
henningebecause of the 1:n relationship19:08
henningescratch that19:09
abentleyhenninge, I think it's a question of whether you want to favour diverging upstream or ubuntu translations.19:09
henningeabentley: a clash between upstream and Ubuntu should be solved by keeping both and setting is_current_upstream and is_current_ubuntu on each of them respectively.19:10
henningeso that's not really a clash.19:10
abentleyhenninge, would you have to mark one of them diverged?19:11
henningeno19:11
henningethe one will be shared on the product side, the other on the ubuntu side19:11
henningeA clash is when you have different translations within different series of the same product or source package.19:12
henningeThen diverging is the only solution.19:12
abentleyhenninge, okay.19:13
=== salgado is now known as salgado-afk
henningeabentley: the question here is, will the job deal with both kinds of merging: The old kind within a prouduct/sourcepackage and the new kind between a product and a sourcepackage.19:15
henningeor will it assume that all products and sourcepackages it encounters are already sharing within themselves?19:16
abentleyhenninge, the answer is "kinda".19:16
henningeI think that might be okay.19:16
abentleyhenninge, the laziest solution is to perform the merge within the product and all linked sourcepackage/distroseries.19:17
abentleyhenninge, because we already have ways of getting that list.19:17
henningeabentley: sounds right19:18
abentleyhenninge, but we could query for just the templates within the productseries and sourcepackage that were just linked.19:18
abentleyPresumably, that's more efficient if we assume that the product and sourcepackage are already sharing maximally.19:19
abentley(in their separate domains)19:19
henningeoh, now I see your point19:20
henningeofficially, the message sharing migration has finished.19:20
henninge(the old one)19:20
henningeso the script should rightfully assume that each are sharing within themselves.19:21
henningeabentley: I have to go afk for a while.19:22
abentleyhenninge, okay.  Ping when back.19:22
henningesure19:22
henningeabentley: ping (back for a little while)19:52
abentleyhenninge, why do we limit potmsgsets to templates with the same name?  Why not share all translations of the same phrase within a piece of software?20:02
henningeabentley: wow, that is a very fundamental question you are raising there!20:03
henningeabentley: but I guess one easy anser might be that one of the reasons to partition the translatable strings of a piece of software into different templates is to keep domains appart.20:05
henningee.g. the UI and the backend, where the same term might be used differently.20:05
henningeAlso, without that, we'd have to re-define divergence a little although that already points to individual templates.20:06
abentleyhenninge, If we really did want different translations of the same term, we could use divergence.20:06
abentleyhenninge, it's just that I'm reimplementing that restriction, so I had to wonder how much sense it makes.20:07
henningeotoh the overlap between different templates should be small.20:08
henningeabentley: yes but that is not the only place in the code were that restriction is used/enforced.20:08
abentleyhenninge, I think this restriction means that if one template splits into two, or two combine into one, we'll lose an opportunity to carry translations across.20:08
henningethat is true20:10
henningeabentley: I'd say that is something to think about but it would be an extra branch to introduce it.20:11
abentleyhenninge, cool.20:11
henningeBut it shows how spreading the domain knowledge bring in new views and ideas. ;-)20:11
henninge(or possibly an extra feature)20:12
* henninge has to lunch now20:13
maxbIs someone doing something to the sourceforge code imports right now?20:22
maxbBecause I'm seeing what looks like an import that got dispatched to an import slave despite being in suspended status20:23
lifelessmaxb: theres no chatter in -ops about such a change20:24
maxblifeless: They're failing to present the intermediate cert in their change20:24
maxb*chain20:24
maxbThis means that tolerant things like firefox are happy. Stricter things like gnutls and java are very much not20:24
lifelessmaxb: yes, so they all failed20:24
maxbSomeone has evidently set the imports to Suspended status, but I don't understand why they are still apparently being dispatched to the importds20:26
lifelessmm20:27
maxbhttps://code.launchpad.net/~vcs-imports/emesene/trunk for example20:27
lifelessperhaps they were already queued20:27
lifelessmwhudson: ^ you were involved...20:27
deryckheh.  I just completed the Thunderdome survey.20:28
deryckit's not exactly rick rolling.  But it's nice. :-)20:29
lifelessmaxb: I've toggled that one into failed and back to suspended20:29
lifelessmaxb: we'll see if that sorts it out20:29
maxbwe need code imports exposed in the api :-/20:30
maxboh for a tuit :-)20:30
lifelessmaxb: that would be great.20:37
maxbMaybe after I finish off my in-progress bzr work :-)20:38
james_wcode imports are exposed to some extent20:39
jamlifeless: maybe you can point me to someone else. I'm trying to write a launchpad test that asserts when something fails we *do* create an oops20:44
jambut the test infrastructure seems to say "getting an oops == the test failed"20:44
lifelessjam: in what context are you doing htat20:44
lifelessjam: the different layers will impact this20:44
jamlifeless: the oops_middlewear for the loggerhead test suite isn't yet tested20:45
jamso I wanted a test that it creates an oops normally20:45
jamand then doesn't create one for socket exceptions20:45
jamlike EPIPE20:45
lifelesscool20:45
jamI tracked into the stack, and we *are* suppressing the exception in the WSGIHandler, but that is above the application20:45
jamand the oops logic is an app that traps it underneath that20:45
lifelessyah, I saw your mail on that20:45
lifelessso20:46
lifelesswhat method is treating oops=test fail20:46
lifelessjam: or are you not sure?20:49
jamI'm not sure20:49
lifelesspastebin the failure ?20:49
jamlifeless: https://pastebin.canonical.com/4290820:50
jamIt may be that the oops is only reported because the test failed?20:50
jamObviously RuntimeError was raised, but maybe it doesn't propagate all the way up the stack20:51
lifelessright20:51
lifelessthat oops is just accumulated via addDetails20:51
lifelessyour line 186 is the actual failure20:51
lifelessFile "/home/jameinel/dev/launchpad/work/lib/launchpad_loggerhead/tests.py", line 186, in test_exception_triggers_oops20:51
lifeless    self.runtime_failing_app)20:51
jamahh, oops_middleware has "if error_page_sent: return" rather than raise20:53
jamso if it can get to the point it can report the error, then it *doesn't* re raise the exception20:53
jamI'm not entirely sure why, but I can live with it20:53
lifelesswell20:54
lifelesswe want to show a page describing the oops20:55
lifelessif we raise the user gets a INTERNAL SERVER ERROR page20:55
jamlifeless: which they'll get if we get an internal error after starting the response body20:55
jambut... meh20:55
jamnot something I have to fix for what I'm working on20:55
lifelessright20:55
lifelessin lp proper we buffer until we know we'll succeed20:56
lifelessfor a few reasons, this being one of them.20:56
=== matsubara is now known as matsubara-afk
=== Ursinha is now known as Ursinha-afk
jammwhudson: if you're around. When I run 'make run_codebrowse' it fails when trying to access the xmlrpc server. It seems to work with 'make run_codehosting'. Should we get rid of the 'make run_codebrowse' target entirely?21:23
jamah, nm, we can't21:25
jambecause 'bin/run codewbrowse' actually calls back into 'make run_codebrowse'21:25
=== almaisan-away is now known as al-maisan
=== Ursinha-afk is now known as Ursinha
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/| PQM is open | firefighting: - | On call reviewer: -| https://code.launchpad.net/launchpad-project/+activereviews
LPCIBotYippie, build fixed!22:02
LPCIBotProject devel build (419): FIXED in 6 hr 34 min: https://hudson.wedontsleep.org/job/devel/419/22:02
lifelesssinzui: hi22:16
sinzuihi lifeless22:33
lifelessI was wondering22:34
lifelessbug 71269822:34
_mup_Bug #712698: No way to expire existing sessions <Apache OpenID:New> < https://launchpad.net/bugs/712698 >22:34
lifelessmay be pretty - or even very - shallow22:34
lifelessits outside our direct remit, but as a team we'd gain a lot if we can increase the openid nonce timeout22:35
sinzuiwgrant: was looking at this code two weeks ago22:36
lifelessyeah22:36
lifelessso it might be easy for him to eyeball and write up /how/ sysadmins can reset nonces22:36
lifelessI imagine there is a non-coding solution.22:36
sinzuimailman polls to keep this information synced. I am not sure if it is viable to do a push scenario since there are a lot of sites to push too22:40
lifelesssinzui: well, this is for our microsites22:41
sinzuigetMembershipInformation(team) is the very method I refactored last week22:41
lifelesssinzui: the goal is some means for the losas to ensure that folk which have left the company do not retain access22:42
lifelesssinzui: e.g. its a very rare event22:42
sinzuiThat is a special case in leaveTeam() admins (losas) can force the leave to be silent22:43
lifelesssinzui: at the moment the only mechanism is doing a new openid handshake, which is very slow and annoying22:43
lifelesssinzui: perhaps we're talking at cross purposes?22:43
sinzuiNo22:44
sinzuiI understand what you are asking, but there is a massive gap between what we do now and what we are asking in therms of Lp integration22:44
lifelesssure; this is why I was talking low tech22:44
lifelessjust a 'reset all the nonces for a given microsite'22:45
sinzuibridging that gap requires understand what we do now, why and asking if we want to extend the behaviour or replace everything with a more comprehensive solution22:45
lifelessthere are only a few such sites - devpad, lpstats, lp-oops22:45
lifelesssinzui: fair enough, I am rather jumping the gun :)22:45
=== elmo is now known as elmo_away
lifelesssinzui: however, sadly, I have to pop out for a while; it would be cool to make this better in any regard22:46
henningeHi! Is this a known failure? http://paste.ubuntu.com/562802/22:57
wgrantlifeless, sinzui: I think we can probably just tell people to purge the OpenID session cache.23:43
wgrantIt would be nice if the server could rerun check_authentication behind the scenes, but it can't :/23:43
sinzuiwgrant: if we recorded which sites asked for which teams, and see a removal from such as team, we should push. That does require co-ordinated work of course23:45
wgrants/OpenID/mod_python/23:46
wgrantsinzui: We could.23:46
wgrantBut that is probably going to require OpenID extensions and stuff.23:46
wgrantbac: Why did you assign me to that Google Code import question?23:53
henningewallyworld: Hi, are you available to grant r-c's?23:58
henningeHm, is PQM really still open or is the subject lying?23:59
* henninge tries23:59

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