/srv/irclogs.ubuntu.com/2012/06/20/#launchpad-dev.txt

jcsackettwallyworld_: Don't know if you want to chat, but I'm back if you want to. Hackerspace meeting ran long.00:06
wallyworld_jcsackett: sure, just give me a minute00:06
jcsackettAnytime. Going to have to be irc tho. Too loud here for anything else. PM me when you want.00:07
wallyworld_jcsackett: tl;dr; we will be adding a (+)Team link to the person picker, will transition picker content to simplified add team form like we do for confirmation stuff in the picker00:12
wallyworld_this outcome is different to what you discussed with sinzui yesterday00:12
jcsackettYeah. Y'all convinced him?00:13
wallyworld_jcsackett: we also need to look at simplifying the open/closed team choices from 4 radio buttons down to 2 choices (open/close) with an option checkbox for each (thus providing the 4 scenarios)00:14
wallyworld_we talked it through00:14
wallyworld_was a good discussion00:14
wallyworld_jcsackett: i believe you will be asked to look at the open/closed policy choices as per the above00:14
jcsackettCool. I'll bug sinzui about it tomorrow then. :-)00:15
wallyworld_and then we can combine that work with the new picker/overlay form00:15
wallyworld_sounds good00:15
wallyworld_StevenK: were there no other soyuz vocab tests you could add to? ie did you have to create a new test module just for that one test?00:24
wallyworld_wgrant: we have a small workflow issue. share all es with aaa. subscribe aaa to es bug. no aag created because apg exists so bug is visible. change sharing permission for es for aaa to some. bug not visible and no aag created00:30
wgrantwallyworld_: Yeah, that's where conflating subscription and visibility continues to be awkward..00:39
wgrantwallyworld_: I suspect we should just create the usual revocation job and remove the subscription.00:39
wallyworld_wgrant: not sure that's the best thing to do. i mean the user intent is to be subscribed to that bug still, but only see that and not all other private things00:40
wgrantwallyworld_: Doesn't that same argument apply to the team's members?00:42
wallyworld_in which scenario?00:43
wgranteg. foo a member of bar, foo is subscribed to an artifact on a policy on which bar has an APG00:43
wgrantbar's APG is revoked.00:43
wgrantPossibly changing to Some.00:43
wgrantOr to None.00:43
wallyworld_yes, the case for apg revocation converting existing subscriptions to aag should be transitive00:44
wallyworld_maybr00:44
wallyworld_no, i mean the team gets the aag00:45
wallyworld_and then the members can see the bug while they remain in the team00:45
wgrantThat's illegal00:46
wgrantSince the team doesn't have a subscription.00:46
wgrantIt can't have an AAG.00:46
StevenKwallyworld_: There are no other Soyuz vocab tests that I could find.00:46
wallyworld_really? that's not good00:47
wallyworld_not even in doc tests?00:47
StevenKwallyworld_: I grepped the entire tree for the vocab names00:48
wallyworld_wgrant: my assumption was the team did have a subscription, but if not, then i think what you say sounds ok00:48
wallyworld_StevenK: r=me00:49
wallyworld_wgrant: so everything looks ok so far on qas with the triggers removed, except for an oops in the job created when a team member is removed.00:51
StevenKwallyworld_: Thanks, I've tossed it at ec2.00:51
wgrantwallyworld_: What's that OOPS?00:51
wallyworld_OOPS-96532e891268827ddb456c0488c160ef00:51
wallyworld_i haven't looked at it yet, created a card00:51
* wallyworld_ goes to get key cut, bbiab00:59
StevenKwgrant: So, query?01:08
wgrantStevenK: The query itself is probably fine.01:12
wgrantBut we likely want an index on access_policy01:12
StevenKThere is one?01:13
StevenKThe EXPLAIN ANALYZE mentions an index scan01:14
wgrantIt was probably an index scan on information_type.01:14
wgrantHowever01:16
wgrantThere's few enough private branches that that might not be a problem.01:16
StevenKwgrant: It's worse with an index on access_policy01:18
StevenKwgrant: http://pastebin.ubuntu.com/1050184/ both hot, top is without the index on access_policy.01:19
wgrantStevenK: Try now01:20
StevenKwgrant: Same as the top one01:22
wgrantStevenK: Also, what's the actual query you're using?01:22
StevenKwgrant: Oh, sorry. http://pastebin.ubuntu.com/1050188/01:23
wgrantSo, that's not quite the actual query.01:25
wgrantThe real thing will have a LIMIT foo at the end01:25
StevenKwgrant: http://pastebin.ubuntu.com/1050199/01:37
wgrantStevenK: It seems to be fine without the extra index.01:38
wgrantNot marvellously fast.01:38
wgrantBut the public branches aren't clustered badly enough that it will be a problem.01:38
cjwatsonIs utilities/prioritygrid.py in use any more?  It looks obsolete since I don't believe those wiki prioritisation tables are being used any more (?).  Maybe 146 easy LoC for somebody.01:43
lifelessnuke from orbit01:47
StevenKwgrant: Right, so do you want to approve the MP, then?01:48
cjwatsonlifeless: righto, will do01:49
wgrantStevenK: Done01:50
lifelesscjwatson: classic NIH stuff that01:50
lifelesscjwatson: https://dev.launchpad.net/VersionThreeDotO/Soyuz/Inputs - last edit 200901:51
wgrant    def __getitem__(self, name):01:53
wgrant        for series in self.series:01:53
wgrant            if series.name == name:01:53
wgrant                return series01:53
wgrant        raise NotFoundError(name)01:53
wgrantwtf01:53
wgrantwallyworld_, StevenK: Extremely challenging review for one of you: https://code.launchpad.net/~wgrant/launchpad/bug-1015289/+merge/11113903:21
wallyworld_wgrant: looks ok to me, i assume we have an approximatedate tal formatter03:22
wallyworld_there are no tests needing updating?03:22
lifelesswallyworld_: wgrant: if you guys have FDT pending stuff, I'm willing to grant exceptions to the one-patch-per rule; I'll be updating docs shortly to reflect that.03:22
lifelessneeds to route through me or flacoste on a case by case basis.03:23
wgrantwallyworld_: All the tests use sampledata, so they're a bit awkward to test this with. It's the formatter we use for dates basically everywhere, so I don't think tests are very useful.03:23
wgrantlifeless: We deployed the last of the two week-long batches on Monday.03:23
wallyworld_wgrant: ok, r=me03:24
wgrantwallyworld_: Thanks.03:25
wallyworld_np03:25
StevenKlifeless: Oh, because I don't do DB patches? :-P03:31
lifelessStevenK: because you haven't been whinging about it :)03:31
lifelessStevenK: (actually, I forgot to ping you as well, mea culpa)03:32
StevenKlifeless: wgrant is very good at whinging, so I've been letting him play to his strengths ...03:32
lifelessLOL03:33
wgrantHeh03:36
wgrantAh, 8-way UNION ALLs, my favourite.04:04
lifelesswgrant: the openid thing thats terrible, or something else ?04:14
wgrantlifeless: My bugsummary recalculator.04:19
wgrantlifeless: The OpenID thing being the name-generation timeout you pointed out yesterdayish?04:19
lifelessfunky chicken04:19
lifelesswgrant: is that what it was?04:19
wgrantlifeless: Yeah04:20
wgrantemail address started with launchpad@04:20
lifelesswgrant: win.04:20
wgrantSo it tried to generate a nick from that04:20
wgrantConflict, so add number04:20
wgrantConflict, so increment number04:20
wgrantConflict, so increment number04:20
wgrantConflict, so increment number04:20
lifelesshaha04:20
wgrantAlthough we may have another bug, since there aren't *that* many, I don't think.04:21
lifelessperhaps it should select count(*) from person where name like 'prefix-%' instead.04:21
lifelessand docs updated04:24
lifeless-> to buy a PC powersupply for his reprap04:24
wgrantMy god04:25
wgrantThe algorithm isn't actually that stupid04:25
wgrantIt's even worse04:25
wgrantI don't even...04:25
wgrantwhat the heck is it trying to do04:25
mwhudsondoes the name blacklist get in on the fun too?04:25
wgrant(for those playing at home, it gets from 'launchpad' to '78luphr0rnk2nuqimstywepozxn9kl19tqh0tx66b5dki1xxsh5mkz9gl21a5rlwfnr8jn6ln0m3jxne2k9x1ohg85w3jabxlrqbgs-launchpad-a811i2i3ytqlsztthjth0svbccw8inm65tmkqp9sarr553jq53in4xm1m8wn3o4rlwaer06ogwvqwv9mrqoku2x334n7di44o65qze')04:25
mwhudsonactual lol04:26
mwhudson(must be tired)04:26
StevenKOh my ...04:26
wgrantSo it tries to add a random suffix.04:26
wgrantThen a random prefix04:26
wgrantThen mutate a character04:26
wgrantThen a prefix and a suffix04:26
wgrantThen all three04:27
wgrantAnd somehow it gets 78luphr0rnk2nuqimstywepozxn9kl19tqh0tx66b5dki1xxsh5mkz9gl21a5rlwfnr8jn6ln0m3jxne2k9x1ohg85w3jabxlrqbgs-launchpad-a811i2i3ytqlsztthjth0svbccw8inm65tmkqp9sarr553jq53in4xm1m8wn3o4rlwaer06ogwvqwv9mrqoku2x334n7di44o65qze04:27
wgrantStill04:27
wgrantNot as bad as it could have been04:27
wgrantIt does up to 1000 attempts04:27
wgrantEach of which adds a character to the prefix and suffix, and mutates the name further04:28
lifelesswgrant: how did it get to the number it got to ?04:28
wgrantSo if we didn't ahve the timeout...04:28
wgrantI suspect it's because it contains launchpad04:28
wgrantSo is blacklisted04:28
lifelesshah04:28
wgrantHm04:28
lifelessso, just plain fail.04:28
wgrantExcept then the mutation should pass04:28
wgrantSo maybe not04:28
wgrantHmmmmmmmmmmmmmmmm04:29
wgrantmmmmmmm04:29
wgrantmmmmmmm04:29
wgrantmmmmmm04:29
wgrantThe mutation it ends up with is cdpq7ln4t04:29
wgrantWhich is already the name of a person04:29
wgrantSurely we don't actually start with a predictable seed.04:29
wgrantROFL04:29
wgrantROFL04:29
lifelesswhatever could go wron with that ?04:29
lifelessback soon, to hear the end of the story04:29
wgrant    # We seed the random number generator so we get consistent results,04:30
wgrant    # making the algorithm repeatable and thus testable.04:30
wgrant    random_state = random.getstate()04:30
wgrant    random.seed(sum(ord(letter) for letter in generated_nick))04:30
wgrantHahahahahahah04:30
mwhudsonah uh what04:30
wgrantBecause that's a good idea.04:30
mwhudsoni presume this means there are some truly comedy nicks already04:31
wgrantSo because so many people have a local user part of 'launchpad'...04:31
wgrantyes04:31
wgrantthat04:31
wgrantChecking for just what we have...04:31
wgrantThat must mean that 78luphr0rnk2nuqimstywepozxn9kl19tqh0tx66b5dki1xxsh5mkz9gl21a5rlwfnr8jn6ln0m3jxne2k9x1ohg85w3jabxlrqbgs-cdpq7ln4t-a811i2i3ytqlsztthjth0svbccw8inm65tmkqp9sarr553jq53in4xm1m8wn3o4rlwaer06ogwvqwv9mrqoku2x334n7di44o65qze already exists04:31
wgrantOr it's too long04:31
wgranthttp://launchpad.net/~78luphr0rnk2nuqimstywepozxn9kl19tqh0tx66b5dki1xxsh5mkz9gl21a5rlwfnr8jn6ln0m3jxne2k9x1ohg85w3jabxlrqbgs-cdpq7ln4t-a811i2i3ytqlsztthjth0svbccw8inm65tmkqp9sarr553jq53in4xm1m8wn3o4rlwaer06ogwvqwv9mrqoku2x334n7di44o65qze :)04:32
mwhudsonhttps://launchpad.net/~78luphr-lannyuwgd-a811i2i04:32
mwhudsonhahahahahahahahahahahahaha04:32
mwhudsonahah04:32
* mwhudson runs out of breath04:33
wgrantI'd seen crazy stuff like this before04:33
wgrantBut assumed it was just users being strange04:33
mwhudsongiven04:33
mwhudson            "This should be impossible to trigger unless some twonk has "04:33
mwhudson            "registered a match everything regexp in the black list.")04:33
mwhudsoni'd be inclined to blame SteveA04:33
wgrantNah04:33
wgrantNot really04:33
mwhudson(probably not for the seeding though)04:33
wgrantBack in his day it included the domain04:33
mwhudsonah04:33
wgrantBut we stopped including the first segment of the domain because people complained it gave away their email address.04:34
mwhudsonheh04:34
mwhudsonsha256 the address instead? :)04:34
wgrantlaunchpad_dogfood=# SELECT COUNT(*) FROM person WHERE name LIKE '78lup%';04:34
wgrant count04:34
wgrant-------04:34
wgrant   30604:34
wgrantAnd that's less than half of them.04:34
mwhudsonlength(name) > 100 ?04:35
mwhudsonor whatever the sql is for that04:35
wgrant27504:36
mwhudsonoof04:36
wgrantLots of those are deactivatedaccount, though04:36
wgrantLots is actually only 1404:37
StevenKLots, in troll.04:37
wgrantMost of the rest are the 78luphr things04:37
wgrantExcept for the ones that are generated from ubuntu@ instead of launchpad@04:37
wgranteg. mrzx4l98d4tp89jab6giohdrjqysbyjs4npz2ccq25kvjmf5h8u4cmidcko7s4tfr6ur1teuv4ju1af4k-bp84z2-hwbqs6tox1bv6csee9psn5309v7488f3dugifm692db2xfq8n1fsz7l87835tr0q36m2p3ftwpoqoy6v604:37
StevenKMemorable.04:38
wgrantadmin@ and info@ are also not uncommon04:38
mwhudsonhttps://launchpad.net/~mrzx4l98d4tp89jab6giohdrjqysbyjs4npz2ccq25kvjmf5h8u4cmidcko7s4tfr6ur1teuv4ju1af4k-bp84z2-hwbqs6tox1bv6csee9psn5309v7488f3dugifm692db2xfq8n1fsz7l87835tr0q36m2p3ftwpoqoy6v6 -> "Are you Ubuntu?"04:39
wgrantHeh04:39
mwhudson"we are all ubuntu!"04:39
StevenKUbuntu does not use Launchpad. This page was created on 2012-05-03 when the landscape-api_12.04+bzr4143-0ubuntu1.8.04+jenkins547 package was uploaded to hardy/RELEASE.04:41
* StevenK cackles04:41
wgrantSo04:45
wgrantThings that shouldn't be deterministic:04:45
wgrant - Collision resolution algorithms04:45
lifelessindeed.04:53
StevenKsteven@undermined:~/launchpad/lp-branches/destroy-old-privacy-ui% bzr di | diffstat -s05:18
StevenK 20 files changed, 72 insertions(+), 425 deletions(-)05:18
StevenKI am disappoint.05:19
wgrantStevenK: Must have missed some stuff.05:20
StevenKwgrant: But where?05:22
wgrantYes.05:23
StevenKsteven@undermined:~/launchpad/lp-branches/destroy-old-privacy-ui% bzr grep show_information_type_in_ui05:23
StevenKsteven@undermined:~/launchpad/lp-branches/destroy-old-privacy-ui% bzr grep show_information_type_in_branch_ui05:23
StevenKsteven@undermined:~/launchpad/lp-branches/destroy-old-privacy-ui%05:23
StevenKI'm going to toss it at ec2 and see how much carnage there is.05:25
lifelesswgrant: did you file a bug about th eappserver src ip visibility ?05:25
wgrantlifeless: No.05:29
lifelesswgrant: will you?05:31
wgrantlifeless: Not unless there's a good argument for it :)05:33
lifelessthe law isn't good enough?05:35
wgrantThe DPA doesn't, AFAIK, say "Launchpad engineers aren't allowed to see source IP addresses in request logs to diagnose operational issues"05:37
wgrantThat may be implied somehow, but I haven't seen an argument to that effect.05:38
wgrantPerhaps there is a wiki page on this.05:38
stubHuh. So I accidentally landed my branch by using bzr lp-land instead of ec2 land yesterday, and reverted when this was noticed due to buildbot failure. I then ran ec2 land as intended. And it landed, and buildbot is green.05:42
stubThe errors buildbot yesterday looked like they should consistently fail too...05:44
wgrantstub: What was the buildbot failure like?05:44
wgrantstub: It was only on the non-real buildbot.05:44
wgrantSo it might have been using 8.4, for example05:44
stubohh.... that would explain it05:45
stubxx-dbpolicy thinking the slave was the master etc.05:45
wgrantI don't know what gary's setup is these days.05:45
wgrantBut it's reasonable plausible that it's still on 8.4, since we haven't used 9.1-specific stuff yet.05:45
wgrantHm05:45
wgrantExcept I think StevenK did last week05:46
stubReal buildbot is green so the landing is good.05:46
wgrant2209-16-6 uses ORDER BY in an aggregate, so that should have weeded out any 8.4 installations05:46
wgrantDo you recall the traceback?05:46
stubIt must have been some other buildbot - can't see read on the board05:47
wgrantIt was an ephemeral parallel buildbot test from gary.05:48
wgrantIt's gone now.05:48
wgrantAnyway, let's migrate staging to streaming replication now :)05:48
stubyer, looks like an ec2 instance in my history05:48
wgrantRight? :)05:48
stubyes, that is what this landing is. when it is on staging and qastaging, I can convert the staging dbs.05:49
lifelesswgrant: its the conclusion of IS, after discussion with legal etc.05:49
stubUnfortunate side effect - at the moment, we have a single cluster so all the RAM on sourcherry can be dedicated to it. With the new setup, we have to run two clusters so ram usage will be less optimal because we will have two copies of the hot set in shared_buffers, and probably should reduce shared_buffers too.05:50
stubno, that isn't quite right.05:50
stubbut it will still be less optimal, as load isn't split 50/50.05:51
wgrantlifeless: Is this insanity documented anywhere? :/05:51
lifelesswgrant: rt 5241705:52
lifelesswgrant: I wanted a solid ruling, so I sought clarity.05:52
wgrantDoesn't this also mean that non-EU sysadmins shouldn't be able to see it?05:52
wgrantSince that would involve transferring the data to somewhere outside the EU05:52
lifelesswgrant: I'm not going to go seeking trouble; elmo has presumably walked through all of that05:53
lifelesswgrant: the issue for our purposes is sysadmin/non-syadmin/reason-for-access05:53
wgrantbrb, starting new planet05:56
wgrantI guess sysadmins will have to do all further analysis of load issues.05:58
bigjoolsdid you remember the Genesis device?05:58
lifelessyes05:58
lifelesswgrant: I think thats an extreme proposition to take05:58
wgrantNah, the extreme (but probably correct) position here is the EU should be involved purely because of batshit insane laws like this.05:59
wgrants/involved/dissolved/05:59
lifelessactually, if we operated in NZ, we'd have similar constraints05:59
lifelessEU is in no way a special snowflake05:59
stub hey, some of us like batshit insane laws protecting privacy :)06:00
bigjoolswgrant has a point - the EU should be dissolved for plenty of reasons :)06:01
wgrantstub: Filtering source IP addresses from the engineers operating the service is hardly protecting privacy in any useful manner :)06:01
stubAssuming benevolent engineers06:03
wgrantAh07:41
wgrantThe initial bugsummary population query counted assignees in viewed_by, but the triggers to maintain it did not.07:42
wgrantThat explains some of the drift.07:43
=== frankban changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | Welcome our new intern: ivory | On call reviewer: frankban* (rvba) | Firefighting: - | Critical bugs: 3.47*10^2
adeuringgood morning08:03
cjwatsonwgrant: Thanks for your review of https://code.launchpad.net/~cjwatson/launchpad/gina-deb-vendor-debian/+merge/111120.  I made that correction; could I have "Status: Approved"?08:21
wgrantcjwatson: Sorry, probably had too many MPs open so the request didn't make it through before I closed the tab. Fixed.08:22
cjwatsonThought so, thanks.08:22
lifelesswgrant: \o/08:31
lifelesswgrant: (finding a/the bug)08:32
wgrantlifeless: It's one of the bugs, but there's at least one other that there's probably no hope of ever finding.08:32
wgrantI suspect it's gone now.08:32
ivoryfrankban: could you review this? https://code.launchpad.net/~ivo-kracht/launchpad/bug-425934/+merge/11078608:54
frankbanivory: sure08:55
ivoryfrankban: thx08:56
cjwatsonDear qastaging, would you care to be any slower?  I'm sure it's possible.09:39
* czajkowski hands cjwatson a baseball bat 09:39
cjwatsonwgrant: Re the pcj-reupload / PermissiveSecurityPolicy discussion from last night: the test that fails if I ditch that removeSecurityProxy is lib/lp/soyuz/stories/ppa/xx-ppa-files.txt:274.  Is it even possible to run PermissiveSecurityPolicy stuff within pagetests?10:47
cjwatsonIt certainly isn't obvious how to e.g. change the layer to something zopeless.10:47
cjwatsonI suppose I could change that code to run Archive.copyPackage rather than running do_copy directly, but ISTM that that would just move the problem to one of how to run the job in-place with a permissive security policy10:49
=== almaisan-away is now known as al-maisan
mpt"Visible only to users with whom the project has shared embargoed but you've stopped reading by this point anyway."11:11
jml:)11:11
mpt(reported as bug 1015509)11:18
=== G is now known as Nigel
wgrantcjwatson: Yeah, pagetests will be a problem there.12:25
adeuringfrankban: could you please review this MP: https://code.launchpad.net/~adeuring/launchpad/bug-29713/+merge/111212 ?12:45
frankbanadeuring: on it in a minute12:46
adeuringfrankban: thanks!12:46
adeuringstub: since this MP adds a DB patch file, you might want to have a look too, though it's just a change of ftq() and _ftq(): https://code.launchpad.net/~adeuring/launchpad/bug-29713/+merge/11121212:47
stubadeuring: Ta. I'll look at it later. Not sure if this counts as a db patch or a code patch really with all that python.12:53
adeuringstub: yeah, but formally it's a DB patch ;)12:53
stubadeuring: I think the old code duplication between _ftq and ftq was because we were generating it from a single source. Making one depend on the other now is a good move.12:54
adeuringthanks :)12:54
StevenKstub: Can you tag the bug related to r15444 as 'qa-bad bad-commit-15444' ?13:01
StevenKHmmm, and then it lands in r15448.13:02
=== benji is now known as Guest14462
=== benji___ is now known as benji
cjwatsonWhat happened to http://lpqateam.canonical.com/qa-reports/deployment-stable.html?13:50
cjwatson(404)13:51
james_wlooks like maybe the vhost is now served by something else on the same machine?13:52
james_whttp://lpqateam.canonical.com now looks suspiciously like https://lpbuildbot.canonical.com/13:52
cjwatsonYes, quite13:53
cjwatson(Only without HTTPS/openid)13:54
cjwatsonwebops: lpqateam.canonical.com appears broken - see above13:55
cjwatsonjames_w: weirdly, those two aren't on the same IP address13:55
gnuoyI'll take a look13:55
mthaddoncjwatson: interesting, I suspect that's me - checking13:56
cjwatsonmm, wrong VirtualHost in /etc/apache2/sites-enabled/lpbuildbot.canonical.com perhaps13:57
mthaddoncjwatson: sorry about that, fixed13:57
cjwatsonthanks13:57
deryckadeuring, https://plus.google.com/hangouts/_/698ee8339ef1f2f3cbdce4185991264b12204423?authuser=0&hl=en14:04
stubStevenK: Did I break qatagger?14:05
sinzuijcsackett, we have a busy day today. I think we have a check point in 20 minutes and I need to inform you of the revelations about creating a team14:12
jcsackettsinzui: yeah, i talked a bit with wallyworld_ about it last night, but i def need more info.14:16
jcsackettyou want to talk post-checkpoint?14:17
sinzuiyes.14:17
jcsackettcool. long round of meetings then. i better go make more coffee. :-P14:17
sinzuiMaybe we can hijack the hangout14:17
jcsacketti'm fine with that.14:17
=== skaet_ is now known as skaet
=== al-maisan is now known as almaisan-away
=== frankban changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | Welcome our new intern: ivory | On call reviewer: - | Firefighting: - | Critical bugs: 3.47*10^2
=== salgado is now known as salgado-lunch
gary_posterstub, I suspect (hope for your sake) that you are long gone, but just in case, http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/revision/15448 is causing failures on the parallel test machine.  the default flavor of stores that we are getting in the failing tests is master, not slave, which appears to be the source of the errors.  I can't duplicate locally, but I duplicate every time, including across new16:40
gary_postermachines, on EC2.16:40
gary_posterFailures look like this: http://ec2-184-72-208-228.compute-1.amazonaws.com:8010/builders/lucid_db_lp/builds/0/steps/shell_9/logs/summary16:40
gary_posterI can duplicate on the EC2 machine trivially, just by running the first test in the lxc container in isolation.16:40
gary_posterthe store provides IMasterStore, not ISlaveStore.16:41
gary_posterI'm digging in, but three reliably failing tests is a big step back for us16:41
gary_posterso help would be appreciated.16:41
gary_posterI'll send you a note at my EoD to let you know where we are with this, one way or the other16:42
stubgary_poster: yo16:42
gary_posteroh, hey stub!  I'm sorry you are still around :-)16:43
stubso it went through ec2 and buildbot fine. I'm not sure why it fails there, but a start would be to confirm PG 9.116:43
gary_posterstub, yeah, I saw it passed everywhere else fine, and I have not been able to dupe locally at all16:44
gary_posterand yes, just verified the verification: the machine is running 9.116:44
gary_posterwell, to be precise--16:44
gary_poster9.1.4-1~lucid416:45
stubxx-dbpolicy.txt is the interesting one. Others will be fallout I assume.16:46
stubWe seem to be in master only mode16:46
gary_posterright16:46
gary_posterlp.services.webapp.tests.test_dbpolicy.LaunchpadDatabasePolicyTestCase.test_defaults is really just the same thing16:46
gary_posterwhen I put a pdb in there, it says that the store implements master16:47
stubgetting timeouts on launchpad...16:47
gary_posteryeah, me too, but it eventually loaded16:47
stubgary_poster: It is valid to get the master store if you are asking for a slave store. We need to trace that to see why it is deciding to do that. For this, it would mean the lag is too high and it considers the slave useless.16:48
gary_posteroh16:48
gary_posterok16:48
stub+        streaming_lag = slave_store.execute(16:49
stub+            "SELECT now() - pg_last_xact_replay_timestamp()").get_one()[0]16:49
stubI think that is the only relevant line added16:49
gary_posterstub, in dbpolicy.py, in getStore, self.default_flavor == 'master'.  Is that consistent?16:51
gary_poster(this is in a pdb, I mean)16:51
stubtest_dbpolicy.py is probably better to debug this I guess.16:52
gary_posteryeah, that's where I am16:53
gary_posterI got the lp.services.webapp.dbpolicy.LaunchpadDatabasePolicy16:53
gary_posterwhich in says the default_flavor is master, in code and in pdb, so I must have zigged when I should have zagged earlier, because it makes sense that the store should be a master once I'm here.16:54
gary_posters/which in/which/16:55
stubgary_poster: So we attach the interface to the object we return from getStore? How could this happen then?16:55
gary_posterstub, I'm currently exploring whether lib/lp/services/webapp/adapter.py(848)get() should not have a LaunchpadDatabasePolicy from StoreSelector.get_current()16:57
gary_posterbecause once it does, afaict, we're on the wrong path16:57
stubgary_poster: and in that test, yes, it should be default of slave because we are testing the Slave policy16:57
gary_posterstub, so the following result is the wrong one--we should see some other policy class, right?16:58
gary_poster((Pdb)) p StoreSelector.get_current()16:58
gary_poster<lp.services.webapp.dbpolicy.LaunchpadDatabasePolicy object at 0x134b76cc>16:58
stub   def setUp(self):16:59
stub        if self.policy is None:16:59
stub            self.policy = SlaveDatabasePolicy()16:59
stub        super(SlaveDatabasePolicyTestCase, self).setUp()16:59
stubso yeah, should be a slave policy17:00
gary_posterhuh17:00
gary_posterok, I'll do my pdb in that setUp17:00
stubI'd watch SlaveDatabasePolicyTestCase.setup17:01
stubIt will not set the policy if it is not None, to avoid stoping on subclasses having already set it.17:01
gary_posteryeah that's what I meant; trying17:01
gary_posterwhoa!17:03
gary_posterself.policy is not None17:03
gary_posterit is LaunchpadDatabasePolicy.17:03
gary_posterWho did that and why!17:03
gary_posteroh17:04
gary_posterit is a confusing test assembly17:04
gary_posterstub, notice the failing test is actually lp.services.webapp.tests.test_dbpolicy.LaunchpadDatabasePolicyTestCase17:05
gary_posterwhich has its won setUp17:05
stuboh17:05
gary_posterwhich sets the policy to LaunchpadDatabasePolicy17:05
gary_posterSo now I'm wondering why it is working everywhere else17:05
stubDEFAULT_FLAVOR is decided on by the policy, it might be slave, might be master17:06
stubline 246 of dbpolicy.py17:07
stubThat line should be hit, and I bet it isn't17:07
stubthe getReplicationLag call above it is the new code I landed.17:07
gary_posterstub, the code I saw in pdb was getStore in the base class, not install17:08
gary_posterline 100 (with line 92) were the pertinent bits17:09
gary_posteroh17:09
stubgary_poster: Can you run "SELECT now() - pg_last_xact_replay_timestamp()" on one of your test dbs if you have one available from a paused test?17:09
gary_posterbut then we set17:09
gary_posterk17:09
stubIt should always be returning NULL since the database isn't replicated17:10
stubUnless I've misunderstood something, and your dbs are being setup differently17:10
gary_posterstub, I should be connecting to a db that looks something like launchpad_ftest_2391, yes17:13
gary_poster?17:13
stubgary_poster: yes, that looks fine17:14
gary_posterstub, I get 02:17:48.97063217:14
stub2 hours, 17 minutes.17:14
stubBum.17:14
stubSo how are you setting your databases up?17:15
gary_posterusing lpsetup, which call launchpad-database-setup or whatever it is called.  Lemme get that code for us...17:15
stubnah, that is fine. it is the standard stuff.17:15
stubHmm...17:15
stubI get null, lucid staging database 9.1.4...17:16
stubBut I think this means my landing needs to be reverted, and I need to detect if the slave database is using pg 9.1 replication before doing that check.17:17
stubI'll double check the docs first.17:17
gary_posterstub, fwiw, the database is setup in line 222 of http://bazaar.launchpad.net/~canonical-launchpad-branches/lpsetup/trunk/view/head:/lpsetup/subcommands/install.py17:20
stubgary_poster: but parallel testing hasn't changed this?17:20
gary_posterhasn't changed what, stub?  We're using the same LP tree as everyone else, if that's what you mean17:20
stubdatabase setup.17:20
stubIf you start with 'make schema', it should all be fine.17:21
stubwhich is utilities/launchpad-database-setup, and that should be fine :-/17:22
gary_posterstub, we do run make schema.  results of all of that per-build setup are here:17:22
gary_posterhttp://ec2-184-72-208-228.compute-1.amazonaws.com:8010/builders/lucid_db_lp/builds/0/steps/shell_8/logs/stdio17:22
stubUnless perhaps your database crashed at some point and started up in recovery mode? Which would mean it replayed logs, and that function would return something.17:22
gary_posterWe've gotten the LANG complaints forever.  We now know the cause but we haven't bothered to change anything17:22
gary_posterbecause it's been working fine up to now17:23
stubyer, I think I need to revert and not assume pg_last_xact_replay_timestamp() returns NULL on unreplicated systems.17:23
gary_posterstub, where would I look to see if we have the crash you expect?  or do you not want to bother?17:24
stubDon't bother.17:24
=== salgado-lunch is now known as salgado
gary_posterok cool17:24
stubIf it can happen, it can happen.17:24
gary_posterok17:24
stubThis code needs to cope.17:25
gary_postergotcha17:25
gary_posterstub, fwiw, I see this: http://pastebin.ubuntu.com/1051255/ .  That seems to align with the time frame that we are talking about.  I bet we are shutting down the lxc containers harder than postgres expects, so that's what it is complaining about.17:29
* gary_poster likes tidy explanations17:29
stubgary_poster: Yes. So replication works the same was as recovery after a hard shutdown.17:29
stubThe wal files are replayed to ensure the data files are correct.17:30
gary_postergotcha17:30
stubWhich makes my replication lag check return a value17:30
stubBum.17:30
gary_postergotcha. :-/17:30
stubI'll revert that again now17:31
gary_posterok thanks stub, and thank you very much for helping so far past EoD17:31
stubnp. I had a few hours in the middle off so am catching up :)17:31
gary_poster:-) cool17:33
=== deryck is now known as deryck[lunch]
lifelessstub: good $midnight?18:12
stub1am?18:13
lifelessyowser :>18:13
stubgary defeated my cunning plans18:13
lifelessI see18:13
czajkowskiis launchad the team that never sleeps!18:14
lifelessthis is the team that goes on and on18:14
stubgary_poster: If you haven't messed with your evil postgresql installation, can you run 'SELECT pg_is_in_recovery(), pg_last_xact_replay_timestamp()' for me?18:30
gary_posterstub, sorry, you missed the window by seconds18:31
stubdoh.18:31
gary_posterstub, although...18:31
stubI'll try and break my local install then :)18:31
stubunless...18:31
gary_poster(1) I got trunk after your branch and things were fine again, and (2) if you give me about five minutes, I can log into a running instance (with tests running) and do stuff there if that helps18:32
gary_posteror (3) I could kill the running tests and do stuff then.18:33
gary_posterany of those of interest, stub?18:33
stubNah, I think I've reproduced it here (shutdown immediate with changes made but before checkpoint).18:33
gary_postercool18:33
=== deryck[lunch] is now known as deryck
=== salgado is now known as salgado-afk
wallyworld_sinzui: wgrant: StevenK: jcsackett: link works now22:31
wgrantsinzui: http://launchpad.net/~78luphr0rnk2nuqimstywepozxn9kl19tqh0tx66b5dki1xxsh5mkz9gl21a5rlwfnr8jn6ln0m3jxne2k9x1ohg85w3jabxlrqbgs-cdpq7ln4t-a811i2i3ytqlsztthjth0svbccw8inm65tmkqp9sarr553jq53in4xm1m8wn3o4rlwaer06ogwvqwv9mrqoku2x334n7di44o65qze22:34
wgrant(that's where 'launchpad' gets you)22:34
cjwatsonThat's still the best URL ever22:34
wgrantThe 'cdpq7ln4t' is 'launchpad'22:34
wgrantMutated deterministically to avoid collisions.22:34
cjwatsonwgrant: My theory is that Launchpad is trying to beat bug 255161 for the funniest bug ever.22:41
_mup_Bug #255161: I am unable to print from open office, I tried reinstalling open office but it did not work. I use a brother mfc240c printer and I am running Hardy. Printing from other apps has not been an issue. <OpenOffice:Invalid> <cupsys (Ubuntu):Invalid> < https://launchpad.net/bugs/255161 >22:41
wgrantcjwatson: Ah yes, I remember that one.22:49
cjwatsonwgrant: Does http://paste.ubuntu.com/1051761/ look about right as a gina hack to make it not commit anything?22:49
cjwatsonFor dogfood22:49
cjwatsonIt has commits all over the place so it's a little awkward22:49
wgrantcjwatson: I think that's correct.22:51
cjwatsonI won't try it until after I next regain consciousness, so there's a while to catch idiocies :-)22:52
wgrantYep.22:53
lifelesswgrant: so, why don't we just count the matching things and add -(N+1) and be done with it ?23:28
wgrantlifeless: Because seeding an RNG deterministically is more fun.23:31

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