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

StevenKwgrant: Looks like there are 18 or so legitimate failures, most of them related to query counts.01:19
StevenKAnd one very strange one where the sharing service seems to generate a completly bong query.01:20
StevenKwallyworld: ^ Let me get you a traceback01:20
wallyworldok01:20
StevenKwallyworld: http://pastebin.ubuntu.com/1077406/01:23
* wallyworld looks01:23
wallyworldStevenK: so, you have code that i don't, but the callto getPeopleWithoutAccess in trantitionToInfoTyoe in branch is being done with people=[]01:26
StevenK            blind_subscribers = service.getPeopleWithoutAccess(01:27
StevenK                self, self.subscribers)01:27
wallyworldso self.subscribers must be empty01:27
wallyworldor so it seems01:28
StevenK    + Subscribers: [<Person at 0x10071b50 eric (Eric the Viking)>]01:29
wallyworldfrom the sharing service code:01:30
wallyworld        # Find the people who can see the artifacts.01:30
wallyworld        person_ids = [person.id for person in people]01:30
wallyworldthe onbly way person_ids can be [] is if people is empty01:30
wallyworldso i'm not sure what's happening01:31
wallyworldcan you pastebin your code?01:31
StevenK    + Subscribers: [<Person at 0xeed1e90 eric (Eric the Viking)>]01:31
StevenK    + person_ids = [243652]01:31
StevenK(It's a doctest, so pdb debugging makes me want to kill people.)01:32
wgrantThat's probably the wrong call.01:32
StevenKBah, so it is.01:32
wallyworldah, i may have found it01:32
StevenKwallyworld: https://code.launchpad.net/~stevenk/launchpad/new-branch-visibility/+merge/11348401:32
wallyworldthere's also clauses in the result set In(TeamParticipation.teamID, policy_grantees)01:33
wallyworldmaybe policy_grantees is empty01:33
wallyworldor artifact_grantees01:33
wgrantThat should be a subselect, shouldn't it?01:34
wgrantSo it won't appear as an empty sequence in the textual statement.01:34
wallyworldperhaps, but it doesn't appear to be coded that way01:34
wgrantIt's a subselect01:35
wgrant            In(Person.id, person_ids))01:35
wgrantIt has to be that line01:35
wallyworldwhy not this line In(TeamParticipation.teamID, policy_grantees)01:36
StevenKif not person_ids: return [] ?01:36
wgrantYeah01:36
wallyworldor this one In(TeamParticipation.teamID, artifact_grantees)01:36
wgrantwallyworld: No.01:36
wallyworldthey use the same construct01:36
wgrantThat is on teamparticipation.team, and it uses a subselect01:36
wgrantWhereas the error is about person.id without a subselect01:36
StevenKwgrant, wallyworld: http://pastebin.ubuntu.com/1077416/ is the full statement01:37
wgrantlaunchpad_dev=# SELECT COUNT(*) FROM branchsubscription WHERE branch = (SELECT id FROM branch WHERE unique_name='~name12/firefox/main');01:37
wallyworldyes, i have read the code again and person ids doesn't use the sub select01:37
wgrant count01:37
wgrant-------01:37
wgrant     001:37
wgrantStevenK: There is the problem01:37
wgrant(1 row)01:37
wgrantStevenK: So you'll want to fix the sharing service to not crash when given no people, but you might also need to fix sampledata.01:38
wallyworldi don't think the service should be called with no people01:38
wallyworldif no people, don't call it01:38
wallyworldbut StevenK said above there were people01:39
wallyworld<StevenK>     + Subscribers: [<Person at 0xeed1e90 eric (Eric the Viking)>]01:39
wallyworld<StevenK>     + person_ids = [243652]01:39
StevenKDifferent call, as wgrant surmised01:39
wgrantWhen a statement from a human is in conflict with a traceback, disregard the human statement :)01:39
wallyworldok. i believed what i was told :-)01:40
StevenK        authorised_people = [self.branch.owner]01:40
StevenK    Unauthorized: (<Branch u'~name12/firefox/main' (1)>, 'owner', 'launchpad.View')01:40
wallyworldso, the design of getPeopleWithoutAccess was to be called with a non empty list01:40
* StevenK stabs things01:40
wallyworldi guess i should have added an assert01:41
StevenKRight, it changes the information type, reconciles access, tries to render Branch:+index, and fails hard because no one has access to the branch.01:42
wallyworldthat also happended at some point with bugs01:44
wallyworldi think reassigning a private bug01:44
wallyworldi can't recall the solution, perhaps redirect to the project page with a message i think it was01:44
StevenKwgrant: The branch in question is PUBLIC, I should create a branchsubscription for the owner anyway?01:46
wgrantStevenK: All new branches have a subscription created for the owner.01:46
wgrantThey can remove it, of course.01:46
wgrantBut the sample data is a little anomalous.01:47
StevenKRight, so let's create a subscription01:47
* wallyworld -> buy coffee02:15
* mwhudson stabs the branch vocabulary03:40
lifelessstub: hi03:57
lifelessstub: can we catch up soon ? [after morning cofee :)]03:57
stublifeless: hi03:57
stublifeless: Coffeed up already, been here a while; just offline on IRC03:57
lifelesscool, let me just change rooms03:58
lifelessstub: skype or g+; just sent you a g+ invite but skype is running too ... whatever you prefer04:00
StevenKwgrant: So, query counts?04:11
wgrantStevenK: Can you paste a failure?04:13
* StevenK fixes another test by use of rSP04:15
StevenKwgrant: http://pastebin.ubuntu.com/1077548/04:16
wgrantStevenK: Oh, I guess we still need the shortcircuit for public branches04:18
wgrantTo avoid tripping query tests like that :)04:18
StevenKwgrant: In IBranch.visibleByUser?04:21
StevenKHm, I wonder if this evil hack fixes it04:22
wgrantStevenK: Yeah04:22
StevenKwgrant: http://pastebin.ubuntu.com/1077551/04:22
wgrantStevenK: Exactly.04:23
StevenKWow, you approving of code I wrote in anger. :-P04:23
StevenKwgrant: I'm also getting a wierd failure in lib/lp/registry/browser/tests/poll-views_0.txt04:25
wgrantOh?04:25
StevenKwgrant: http://pastebin.ubuntu.com/1077553/04:26
wgrantStevenK: Did that fail on ec2?04:33
StevenKAnd locally04:33
wgrantStevenK: I don't care about locally. ec2 is all that's interesting :)04:34
StevenKOh, hah. It failed on ec2 with [<storm.databases.postgres.PostgresConnection object at 0x168662d0>]04:34
wgrantYeah04:34
* StevenK ignores it at spurious 2.7 garbage04:34
StevenKs/at/as/04:34
wgrantNah04:34
StevenKwgrant: And thoughts on http://pastebin.ubuntu.com/1077556/ ?04:35
wgrantStevenK: It's because of the local timezone.04:35
StevenKHaha04:35
StevenKPolls fail04:35
wgrantTest fail04:35
wgrantIt uses datetime.now() and assumes launchpad will interpret it the same way.04:36
StevenKPolls need to die horribly anyway04:36
spmStevenK: wgrant: I note you both always want features to die horribly. have you considered maybe having them be tastefully removed instead?04:39
StevenKspm: They don't deserve it.04:40
spmthat wasn't my implication04:41
spmI might have been alluding to deep and disturbing psychological problems that are currently assailing two of my close colleagues. might.04:41
spmthere's probably room for a "trolling" in that description too04:42
StevenKspm: Polls are special. They have been removed once, and then it turned out a few community teams required them to elect new members, so they were added back.04:42
spmlovely04:42
StevenKspm: You're not implying that wgrant and I are closet psychopaths? :-)04:45
spmsure I was04:45
wgrantCloset!?04:45
spmpoint04:45
spmit could be a very BIG closet04:45
StevenKwgrant: Can has look at pastebin?04:51
wgrantStevenK: Something may have been preloading subscriptions before.04:56
wgrantStevenK: Check the old query log to see what's different04:56
StevenKwgrant: bin/test -m test_pillar_sharing -t test_view_query_count still runs four tests, can I nail it down further?05:03
wgrantStevenK: -t specifies a regex05:03
wgrantMultiple regexes are ORed05:03
wgrantSo -t test_pillar_sharing.*test_view_query_count might work05:04
wgrantOtherwise -t test_pillar_sharing.TestProductSharingDetailsView.test_view_query_count should be pretty specific05:04
StevenKwgrant: http://pastebin.ubuntu.com/1077582/ is the test on devel, all 2500 lines of output05:09
wgrantStevenK: I was more interested in just the interesting bit.05:11
StevenKYeah, I'm just looking how to get the statement recorder to print out what it saw.05:11
wgrantStevenK: Reduce the limit to 105:13
StevenKHaha, that would do it too, I suppose05:13
StevenKwgrant: Interesting bit: http://pastebin.ubuntu.com/1077587/05:14
wgrantStevenK: Ah, I was looking at the wrong test05:19
wgrantStevenK: Given that it's viewing +sharing, it's probably logged in as the product owner05:20
wgrantStevenK: And you'll never guess who owns the branches that it creates.05:20
StevenKHahah05:20
wgrantSo the test is buggy05:20
wgrantIt verifies that the query count is constant, but only in a very exceptional case.05:20
StevenK    def makeArtifactGrantee(05:21
StevenK            self, grantee=None, with_bug=True,05:21
StevenK            with_branch=False, security=False):05:21
* StevenK stabs wallyworld05:21
wallyworldwhy?05:21
StevenKFor crimes against PEP805:21
wallyworldcould be worse05:22
spmyeah. could be stabbed for not providing cake to deserving webops staff05:30
StevenKspm: Hahaha05:31
StevenKwgrant: So what do you think the plan is?05:32
wgrantStevenK: Well, see what the query count is if the owner is someone else. I suspect it'll be the same with the new and old code.05:33
wgrantStevenK: That's an important bug, but not a regression.05:33
StevenKwgrant: Modulo being distracted by Sarah, http://pastebin.ubuntu.com/1077619/05:45
wallyworldspm: but i gave you some cake05:46
spmyeah. could be stabbed for not providing non-virtual cake to deserving webops staff05:46
spmfixed.05:46
wallyworldif i had one of those "beam me up scotty" things i could send you some05:47
stub🎂05:49
StevenKwallyworld: Money can be exchanged for goods, such as cake, and services, such as cake delivery to Canberra.05:51
wallyworldStevenK: ssshhh05:51
wgrantStevenK: I wonder if the user might be an admin, then.05:52
wgrantStevenK: It doesn't explicitly log in, AFAICT05:52
wgrantSo it might be running as some user tha happens to leak from the factory.05:52
StevenKHahahaha05:53
StevenKTestProductSharingDetailsView.setUp calls login_person(self.owner)05:53
wgrantStevenK: Right, that's what I expected. But then I wonder why the test works even after you change the branch owner.05:54
StevenKWell, it's only a query count05:54
StevenKI've not looked deeply into what that view is doing05:55
wgrantStevenK: Well, it's somehow doing an access check in 0 queries.06:00
StevenKwgrant: Shall we just bump the test from 12 to 26 and move on for the time being?06:00
wgrantStevenK: No. You need to work out why there are 0 queries initially.06:07
StevenKThere can't be zero. Is no understand06:07
wgrantStevenK: http://pastebin.ubuntu.com/1077619/ shows 0 access checking queries.06:08
StevenKwgrant: What about the last one that UNIONs against BranchSubscription?06:10
wgrantStevenK: Right, it only finds visible branches, same as with your changes, but then it doesn't do any subsequent checks.06:13
wgrantI can't see any code to prefill the authorization cache.06:13
wgrantSo I don't know what's going on06:14
StevenKSo where is there the actual view code? I've yet to find it06:15
wgrantStevenK: lp.registry.browser.pillar06:18
StevenKWTF? That code doesn't help at all06:19
wgrantHm?06:20
wgrantPillarPersonSharingView is what you're looking for06:20
StevenKIndeed, how does this even work?06:25
StevenKwallyworld: Maybe you could help? How is PillarPersonSharingView managing to do its work in 0 queries?06:28
wallyworldcontext?06:29
wallyworldwhen did this start happening?06:29
StevenKwallyworld: http://pastebin.ubuntu.com/1077619/ and http://pastebin.ubuntu.com/1077587/ and http://pastebin.ubuntu.com/1077556/06:30
=== matsubara-afk is now known as matsubara
wallyworldStevenK: the one with 25 queries, what changes were done for that?06:34
StevenKwallyworld: That branch is my new-branch-visibility branch that uses APG and AAG to determine branch access rather than subscriptions06:34
StevenKwallyworld: The other two pastebins are against devel06:34
wallyworldok06:35
wallyworldso the question you want to know i think is why changing the branch owner to some other person other than the pillar owner reduces the query count06:37
wallyworldStevenK: do all the other tests pass, other than the query count one?06:38
StevenKwallyworld: bin/test -vvt test_pillar_sharing == Ran 40 tests with 1 failures and 0 errors in 1 minutes 4.142 seconds.06:40
wallyworldStevenK: so looking at the devel branch with owner=someperson, the query count has just been reduced by 1, no?06:40
wallyworldie down to 1006:40
StevenKWhich makes no sense to both wgrant and I06:41
wallyworldwhat's your concern?06:41
wallyworld(save me trying to grok the sql)06:42
wgrantThe issue is not that changing the owner reduces the query count.06:42
wgrantIt's that it doesn't increase it.06:42
wgrantSomehow the old code is taking 0 queries to do security proxy access checks.06:42
wgrantThe new code is doing one per branch.06:42
wallyworldi see that the old code has an extra person select06:44
wallyworldat the end06:44
wallyworldso where are the SP checks you are expecting?06:45
wallyworldthe work to load the data is primarily done by accesspolicy stuff at the db level06:46
StevenKwallyworld: Where at the DB level?06:49
wgrantwallyworld: It's not the DB level that's the problem06:49
wgrantIt fetches the branches from the DB, then the securityproxies need to verify launchpad.View06:49
wgrantIn devel at present the launchpad.View checks take no queries06:49
wallyworldStevenK: in the queries performed by findArtifactsByGrantee06:49
wallyworldwgrant: but the current code return no branches06:50
wallyworldunless i am wrong06:50
wallyworldthe initial tests were written only for bugs06:51
wallyworldsince branches didn't support info type etc then06:51
wgrantwallyworld: That's actually not a crazy thought.06:52
wgrantExcept that this should have broken last week when we started adding AAGs.06:52
wallyworldwhy?06:53
wallyworldif the tests didn't create any branches06:53
wallyworldthen nothing would have broken06:53
wgrantOh, did the test change?06:53
wallyworldnot afaik.06:53
wallyworldthe test never created any branches to check06:54
wallyworldi think06:54
wgrantDoes so.06:54
wallyworldthere's a bunch of test modules that need to have extra tests for branhces added06:54
wgrant    def makeArtifactGrantee(06:54
wgrant            self, grantee=None, with_bug=True,06:54
wgrant            with_branch=False, security=False):06:54
wgrant            for x in range(0, 15):06:54
wgrant                self.makeArtifactGrantee(person, True, True, False)06:54
StevenKSo it makes 15 bugs and branches06:55
StevenKAnd then dies when the query count increases by 15.06:55
wallyworldbut are any of those branches included in the results06:55
wgrantNot until last week06:55
wallyworldright ok06:55
wgrantBut I don't see how this branch could change the set of branches that is found.06:56
StevenKBut it doesn't? The queries that are added are all access checks06:57
StevenKIf Branch and BranchSubscription are cached by earlier queries which sounds likely, the query count would be low06:57
wallyworldi'm still not sure why we expect changing the owner will change the results returned06:57
wgrantStevenK: BranchSubscription doesn't appear to be cached.06:57
wgrantIt's not even cachable.06:57
wgrantStevenK: It's used as part of the query's internal access check, but it's not returned.06:58
wgrantwallyworld: I was expecting that we were hitting the branch owner short-circuit.06:58
wgrantBut StevenK reports that the query count remains low even when a non-owner is used.06:58
wallyworldwell it dropped from 11 to 1006:58
StevenKYes, defined as 'remains low'06:59
StevenKRather than 2606:59
wallyworldso with bugs, they are bulk loaded06:59
wallyworldnot sure about branches06:59
wgrantRight, bug searches generally automatically populate the access cache.06:59
wallyworldthat's why this query count test was added06:59
wallyworldsince initially the query count was linear07:00
wallyworldjust like it appears to be now for branches07:00
wgrantExactly. The question is how that happens, and why it stops working.07:01
wgrantI suspect there isn't actually any prepopulation of the access cache. We're just hitting another short-circuit somewhere.07:02
wgrantSo the test is buggy.07:02
wallyworldwhy is the test buggy?07:03
wallyworldit verifies that the query count is independent of nr of bugs07:03
wgrantIt's asserting query count linearity, but it looks like it's only linear in a special case that the test hits, rather than the general case.07:03
wallyworldit used to fail though before changes were made07:04
wallyworldto fix it07:04
wallyworldfix the code i mean07:04
wallyworldi can't recall what was done though07:04
wallyworldit's not asserting linearity, it's ensuring there is no linearity07:05
wgrantEr, yeah, that.07:05
wgrantSub-linearity :)07:05
wallyworldwell, the intent is that the query count doesn't increase as the number of artifacts increases07:08
wallyworldwho is to say it can't decrease by 1 or 207:08
wallyworlddepending on what the exact data is07:08
wgrantwallyworld: That's not the issue07:08
wgrantThat issue is that somehow the old code is not issuing extra queries07:08
wgrantThe new code is07:08
wgrantThe new code needs to not07:08
wgrantBut we can't work out how the old code manages to not07:09
wallyworldso fix the new code :-)07:09
wgrantSo we can't make the new code not.07:09
wgrantStevenK: Breaking on visibleByUser in the old code didn't reveal anything useful?07:09
wallyworldwgrant: i'm not sure how did old code did its thing, too long ag07:09
wallyworldago07:09
wgrantIndeed, I didn't really expect you to remember :)07:10
wallyworldwgrant: bugtasks = list(getUtility(IBugTaskSet).search(param))07:10
wallyworldthat's what the old code does to load the bugs07:10
wallyworldwhere param has the bug ids07:11
wallyworldparam = BugTaskSearchParams(user=user, bug=any(*bug_ids))07:11
wallyworldiso it's whatever IBugTaskSet does07:11
wgrantYes, bugtaskset precaches authorization07:11
wgrantBut branchcollection appears not to07:11
wallyworldyes07:12
wallyworldso isn't that the answer?07:12
wallyworldthe old code for branches07:12
wallyworld            all_branches = getUtility(IAllBranches)07:12
wallyworld            wanted_branches = all_branches.visibleByUser(user).withIds(07:12
wallyworld                *branch_ids)07:12
wallyworld            branches = list(wanted_branches.getBranches())07:12
wgrantHmmm?07:13
wgrantThe answer to how it avoids queries is not "it's not precached"07:13
wgrantThat's the anti-answer :)07:13
wallyworldno, i meran bugtaskset precahces, so eliminates queries07:13
wallyworldbranch collection does not07:13
wallyworldso queries increase07:13
StevenKSo, I think the 10th query in the devel test is IBranchCollection.visibleByUser()07:14
wgrantBut *something* manages to avoid an access query for the 15 branches in the old code!07:14
wgrantThe key thing is to identify what that is.07:14
StevenKI'm not certain why it is called 15 times, but only generates one query07:14
StevenKWell, I'm certain why it's called07:14
wallyworldso it must be in branchcollection07:14
StevenKbranchcollection gives me a headache07:14
StevenKIt's horrible07:14
wallyworldyep07:14
wgrantStevenK: So how many times is the visibleByUser called in the problematic context, in devel?07:19
StevenKwgrant: 1507:19
wgrantStevenK: And what does stepping through it show it doing?07:20
StevenKwgrant: Hold on a moment, visibleByUser returns a collection07:21
StevenKSo it probably returns all fifteen in one query07:21
wgrantStevenK: I mean Branch.visibleByUser, not *BranchCollection.visibleByUser07:21
StevenKBranch.visibleByUser is not called07:21
StevenKwgrant: http://pastebin.ubuntu.com/1077708/07:26
wgrantStevenK: Hm07:28
wgrantStevenK: Of course, the alternate explanation is that the user can't actually see any of the branches in the devel test.07:28
wgrantStevenK: So there's nothing returned to check access on.07:28
wgrantStevenK: Can you check that hypothesis?07:28
wgrantThe project owner will be able to see them in your branch, due to the APG07:29
StevenKwgrant: self.branches in PPSV is []07:32
StevenK(for devel)07:32
wgrantStevenK: Ha ha hahhah07:33
wgrantThat explains it.07:33
StevenK[<Branch u'~person-name-100003/product-name-100004/branch-100010' (77)>, ...] for my branch07:33
StevenKSo it caches nothing and was a useless test07:34
wgrantIt's good for bugs.07:34
wgrantJust not branches.07:34
wallyworldit was designed primarily for bugs07:34
wallyworldbranches weren't done yet07:34
StevenKSo it's awesome that we've wasted a few hours bashing our head against it07:34
wgrantWhich is unsurprising, given that branches didn't know about the access schema when it was written07:34
StevenKwgrant: So, 12 -> 26 and move on? Please?07:35
wgrantStevenK: Do file a critical bug about it, but yes.07:35
adeuringgood morning07:35
StevenKwgrant: https://bugs.launchpad.net/launchpad/+bug/102162207:38
_mup_Bug #1021622: PillarPersonSharingView uses O(n) queries for branch access <disclosure> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1021622 >07:38
wgrantStevenK: Thanks.07:38
czajkowskimorning08:08
=== almaisan-away is now known as al-maisan
cjwatsonErr, I just got http://paste.ubuntu.com/1077762/ from an ec2 land run - should I be concerned?08:42
=== jamestunnicliff_ is now known as jamestunnicliffe
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring | Firefighting: - | Critical bugs: 4.0*10^2
cjwatsonOh, well, it didn't do it again on a retry ...09:49
daniloscjwatson, then it does mean you should be worried :)10:29
=== al-maisan is now known as almaisan-away
=== matsubara is now known as matsubara-afk
* cjwatson starts to understand the layout of .../browser/ and .../templates/ and feels something else leaking out of his ears as counterbalance11:34
deryckadeuring, https://plus.google.com/hangouts/_/977b4ffbaf4a8c42a0f41a913e0632048bf13e25?authuser=0&hl=en13:32
jambenji: you landed some stuff in the lazr code (and launchpadlib) that seem to be dealing with httplib2 0.7+ (which enables ssl validation by default).13:49
jamI'm trying to land some of that in launchpad itself (because I want a patch to launchpadlib's test suite to pass on py2.7)13:49
jamhowever, httplib 0.7 breaks launchpad's test suite because of the ssl validation.13:50
jamis it sane to just set the env var for the test suite/13:50
jam?13:50
benjijam: I'm trying to remember that branch... oh, I think that is the one by jml; yeah, setting the env. variable for the test suite would work.13:51
jambenji: where/when would that get set in the lp test suite?13:58
benjijam: hmm, let me look13:59
jammaybe in a layer?13:59
jamLPFunctionalLayer is the one the specific test I'm looking at right now.13:59
benjijam: that might work; if you wanted to set it globally, doing it in buildout-templates/bin/test.in would make sense14:01
cjwatsonWhat's a sensible way to write a test that attempts to open a URL on the appserver that traverses to one on the librarian?14:07
cjwatsonI can use setupBrowserForUser to get something that knows how to open URLs on the appserver, and urlopen to open librarian files, but I can't seem to find something that works for both14:07
cjwatson(I'm in LaunchpadFunctionalLayer)14:07
jambenji, bac, jcsackett: I just committed and uploaded launchpadlib-0.10.2 (as approved). Can you upload it to pypi? I can do everything but that step.14:16
jmljam, benji: let me know if I can help.14:16
benjijam: if you're going to be making releases, then you should have pypi access; give me your pypi user name and I'll give you access14:17
benjijam: to clarify, we don't upload releases to pypi, we just register them (although, we should upload them in my opinion, but that's a seperate issue)14:19
jambenji: I did mean register, and my pypi name is jameinel, let me double check, though.14:20
jambenji: yeah, jameinel14:20
benjijam: you're all set14:21
jamjml: so the patch you requested ends up *requiring* httplib2 0.7+ because it is passing a parameter that doesn't exist in 0.614:21
jamhowever, using 0.7 means that the test suite aborts all over the place because by default the ssl certificate is checked and fails14:21
jamI'm guessing we want to push forward, and fix that, rather than changing the patch to be backward compatible?14:22
jmljam: I think so. 0.6 isn't even the version in lucid.14:22
jamjml: it is the version in versions.cfg :)14:23
jamjml: the problem right now is that I set the env var in bin/test, and if I drop into pdb I see it set, but the test still fails14:24
jmljam: interesting. I had to make changes both to launchpadlib and to lazr.restfulclient. Perhaps only one is up-to-date?14:25
mptjml, what's "LoC neutrality"? Is it removing as many LoC as you add?14:26
jmlmpt: yes.14:26
jamjml: something is stripping the env variable in "launchpad_for()14:27
jmljam: remind me which code-base that function is in?14:27
jamas in, it is set, I break on _request and then it is no longer set14:27
jamlazr.restfulclient._browser.Browser._request is the chain that ends up failing14:27
jamwhich you updated to support the flag14:27
jamthe test I'm running is: lp.bugs.browser.tests.test_bugattachment_file_access.TestWebserviceAccessToBugAttachmentFiles.test_user_access_to_private_bug_attachment14:28
jamI'm sure I'm running updated code, as I'm getting the error: SSLHandshakeError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed: perhaps set LP_DISABLE_SSL_CERTIFICATE_VALIDATION if certificate validation failed and you genuinely trust the remote server.14:32
jamwhich means it asks me to set the variable I have set.14:32
jmljam: pulling latest stable14:33
jmljam: what's launchpad_for() ?14:34
jmloh launchpadlib_for14:35
jamjml: so... I can see that the value is being seen inside _browser14:36
jamself.disable_ssl_certificate_validation is True14:37
jamand I'm still getting an SSL handshake failure...14:37
jmljam: perhaps I missed a place in my patch? can you paste the full stack?14:37
jmljam: also, I thought you were reporting that the env var is unset at the time of error?14:38
jamjml: lp:///~jameinel/launchpad/py27-introduction-102066714:39
jamjml: I thought that was the problem, as I was still getting the error.14:39
jmljam: ah right.14:39
jamBut no, it is set, and tracking down I see RestfulHttp.__init__14:40
jamsees the disabled flag correctly14:40
jamand after super()14:40
jamsuper().__init__()14:40
jamself.disable_ssl_certificate_validation is True14:40
jmlthen my bet is that there's a request I missed14:41
jmlin the absence of more information, like a stack trace. (which I'll get soon, once I up download-cache, make schema and run the test)14:41
jamjml: http://pastebin.ubuntu.com/1078135/14:41
jamjml: you'll need to update download-cache as well14:42
jamonce I actually commit the new packages14:42
jamdone14:42
jamrev 498 of download-cache14:42
jamanyway, I'm at my EOD here, so if you want to poke at it, that would be great.14:43
jambut it can wait until monday as well.14:43
jamjml: (this is all just fallout of trying to get a small 2-line patch to make introduction.txt not fail when run under python-2.7, so I'm trying to avoid fixing-the-world just to get that changed. But I want to do the 'right' thing as well)14:44
jmljam: I can see how this is annoying.14:44
jamanyway, enjoy your weekend14:45
jmljam: you too14:45
cjwatsonMaybe the correct answer (to my question above) is to manually follow the first redirect to the librarian.14:45
jmlforgot to switch to lxc14:48
jmlmpt: what prompted that?15:36
mptjml, just saw you mention it in a mailing list message, and I hadn't seen it mentioned before, that's all15:36
jmlmpt: oh right. it's a short-hand for Launchpad's broader "no increased maintenance burden" policy15:37
mptI see15:37
mptIf you want a list of features to remove to make up the numbers... ;-)15:38
czajkowskimpt: only if we can submit the same amount for you to remove elsewhere on design :)15:38
sinzuiSpeaking of LoC, I think I need to get the knives out and cut code to help my self-esteem.15:47
jmlmpt: heh, there's actually plenty of code that can be removed without affecting functionality one whit.15:51
mptczajkowski, there are almost certainly ways to make Launchpad prettier by reducing the amount of CSS. Would that count?15:52
jmlyeah.15:52
czajkowskimpt: huw is working on that atm when he's not working on other areas, he's been fixing the layout of side bars and this week fixed links on the blog15:53
mptgrand15:53
sinzuimpt, huwshimi is landing such a branch now. I also pointed out out bug about the obsolete portletBody classes15:57
=== matsubara-afk is now known as matsubara
=== salgado is now known as salgado-lunch
jmlw t f.16:26
jmlbzr just started thinking that my lp:divmod.org branch was a Launchpad branchh16:26
jelmerjml: how do you mean, aren't all lp:... branches Launchpad branches?16:27
jmljelmer: as in a branch of lp:launchpad16:27
jmljelmer: the .bzr/branch/location was a URL to the branch of jam's I just checked out.16:27
jmljelmer: I'm guess pebkac, but ... wow.16:27
jelmerjml: that is a bit scary..16:28
=== salgado-lunch is now known as salgado
cjwatsonI'd love a review of https://code.launchpad.net/~cjwatson/launchpad/queue-api-fix-urls/+merge/113776, if anyone's still around; nearing the end of this arc, and if I can land it today then I can QA it over the weekend and hopefully delete lots of code on Monday17:11

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