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

StevenKwgrant: http://pastebin.ubuntu.com/1189950/00:47
wgrantStevenK: Right, I'd grep around for egistrant and upervisor and ecurity and delete lots of stuff :)00:48
StevenKwgrant: egistrant is hampered by branch and product registrant tests00:48
wgrantTrue00:49
wgrantBut still00:49
* StevenK greps for ecurity and drowns in rSP calls00:51
StevenKlib/lp/blueprints/browser/specification.py:        text = 'Change privacy/security'00:53
wgrantHuh00:53
StevenKwgrant: I'm quite tempted to just leave bug-private-by-default.txt alone and it can die when the rest does.00:59
wgrantStevenK: That's the plan01:00
wgrantThe thing it still tests is the only situation in which the bug supervisor should still be subscribed01:00
StevenKThen I can't find anything else, or it has been drowned out by the noise.01:00
StevenKwallyworld, wgrant: https://code.launchpad.net/~stevenk/launchpad/remove-registrant-tests/+merge/12320702:23
wallyworldStevenK: too late02:23
StevenKwallyworld: Indeed, thanks.02:26
wallyworldnp02:26
* StevenK peers at the end test in lib/lp/bugs/stories/bugtask-searches/xx-advanced-upstream-pending-bugwatch.txt02:50
StevenKDoes anyone *actually* do that?02:51
wgrantRight, that's why it is how it is now03:01
wgrantCurtis argues not03:01
wgrantIt used to be the case that +bugs-index avoided showing the list, but you could hack your way through to +bugs to get the listing regardless of configurtaion03:02
wgrantBut those pages are merged now03:03
lifeless * 19317 Time Outs03:07
lifelesstwitch03:08
lifelesswhen do you guys start on maintenance ?03:08
wgrantlifeless: Monday, allegedly03:09
wgrant    12938 /    0  Archive:EntryResource:getPublishedBinaries03:09
wgrantwat03:09
wgrantI blame ev03:09
wgrantI think03:09
lifelesscould be03:10
wgrantHTTP_USER_AGENT: lazr.restfulclient 0.12.0; oauth_consumer="pkgme-binary"03:11
wgrantjml03:11
wgrantTrigram index on BPN.name will probably fix that instantly03:12
wgrantBut I wonder if they're deliberately using exact_match=False03:12
wgrantAh, it's also still querying on BPR.bpn03:14
lifelesssee also ev's code03:15
lifelessforwarded you mail03:15
wgrantUm03:16
wgrantDo we really have a second service named 'poppy'?03:16
wgrantThere we go, got that query down to 10ms03:21
wgrantFrom 4900ms03:21
wgrantLaunchpad is optimised :)03:21
lifeless\o/03:22
wgrantOh good03:22
wgrantThe backup failed today03:22
wgrantSo we can create the indices now :)03:22
lifelessagain?03:27
wgrantYeah03:27
wgrantIt's almost like the slave feedback thing isn't working03:27
lifelessstub will be miffed :)03:27
wgrantBut I thought it was03:27
lifelessit has an upper bound IIRC03:28
wgrantYeah03:28
stubI suspect it happens when the replication connection drops. It reconnects, but the master has already moved on and started cleaning crap up03:29
stubI'll check the logs when I'm back upstairs03:29
lifelessstub: perhaps we should backup on the master again ?03:29
lifelessstub: identical bloatwise03:30
wgrantAnd we have the CPU03:30
wgrantThe indices won't immediately fix either consumer's performance issues, but they'll fix the fixed pkgme queries from 200ms to 10ms03:33
wgrantand the 5000->200 optimisation will land shortly :)03:33
lifelesslol03:34
wgrantHm?03:34
lifeless15:34 -!- stub [~stub@canonical/launchpad/stub] has quit [Ping timeout: 268 seconds]03:34
wgrantMaybe he's going back upstairs :)03:35
lifelessI suspect he walked of upstairs right after03:35
lifeless15:29 < stub> I'll check the logs when I'm back upstairs03:35
lifelessand didn't see anything we said after that03:35
wgrantYep03:35
wgrant13:29:20 < stub> I'll check the logs when I'm back upstairs03:49
wgrant13:29:57 < lifeless> stub: perhaps we should backup on the master again ?03:49
wgrant13:30:02 < lifeless> stub: identical bloatwise03:49
wgrant13:30:22 < wgrant> And we have the CPU03:49
stubYeah, that is the backup plan, so to speak :)03:55
stubChokecherry is preferred because it has more disk03:55
wgrantAh, indeed03:55
wgrantstub: https://code.launchpad.net/~wgrant/launchpad/bpn-spn-trgm-index/+merge/123208 is a nice difficult one for you03:56
stubCool. I think I suggested that to someone else recently03:56
wgrantI meant to do it months ago after the first trigram trial, but didn't get around to it until now03:56
stubAnd for bikeshedding, should we use a different suffix for trigram indexes?03:57
stubDown to one test fail on my db policy updates branch03:58
wgrantstub: Possibly. name tends to be (part of) a _key usually, so there hasn't been a conflict until now04:01
wgrantBut __trgm or something would work too, I suppose04:01
stubyeah, just thinking hypotheticals04:01
stubEvery naming convention I know for dbs breaks down somewhere, I'm not too fussed.04:02
* wgrant checks ALTER INDEX ... RENAME lock requirements04:03
StevenKwgrant: So should I drop that test completly?04:03
wgrantStevenK: Which?04:03
StevenKwgrant: "[13:01] < wgrant> Right, that's why it is how it is now" and so on04:04
=== spm is now known as stevemci
wgrantStevenK: Ah04:04
wgrantStevenK: Well04:04
=== stevemci is now known as spm
wgrantStevenK: Decide whether the use-case is worth it04:04
wgrantStevenK: If it's not, delete the test that says it is04:05
wgrantBah, renaming indices appears to require an exclusive lock04:05
* wgrant just creates the new ones with good names04:05
StevenKWell, there's a critical regression that says it isn't.04:05
StevenKSo I don't know.04:05
wgrantAh, now I think I remember04:05
wgrantThere's a link04:05
wgrantIn a portlet04:05
wgrantTo that list04:05
wgrant"XX bugs need forwarding upstream" or something like that04:06
StevenKSo I can close the critical by removing functionalility or by replying and saying it is used for this feature.04:06
wgrantBugsInfoMixin.pending_bugwatches_url04:07
wgrantRight04:07
wgrantThis changed when buglistings merged +bugs-index and +bugs04:07
StevenKAhh04:07
StevenKWhich might be where the confusion is coming from.04:07
StevenKI'm tempted to just close the bug saying it isn't a regression.04:08
lifelesshow many tests does LP have today ?04:09
StevenK17453 or thereabouts04:09
wgrantstub: I've renamed the indices. Can you throw them at prod?04:35
stubk04:37
stubwgrant: done04:45
wgrantstub: Thanks.04:45
wgrantstub: Can you also do it to qastaging?04:45
wgrantSince it won't happen automagically04:46
stubdone04:48
wgrantGreat04:48
* StevenK can't work out what is touching IBug.date_last_updated when someone subscribes or unsubscribes.05:22
StevenKOH. Via ZCML.05:23
* StevenK goes to review his lunch.05:23
wgrantYeah, Bugs uses a fair few subscribers05:23
* nigelb wonders what would happen if StevenK gave r- for lunch.05:25
StevenKHmmm, that still doesn't explain it.05:27
StevenKAnd I doubt I can get a useful calltrace out of the function itself :-(05:30
wgrantThe stacktrace should be fine05:32
StevenKHm, calling bug.subscribe() and bug.unsubscribe() don't trigger it.05:38
wgrantStevenK: Where are you calling them?05:41
StevenKDirectly05:42
StevenKwgrant: Based on the bug filed, I thought the model functions might do it. But they don't.05:44
wgrantStevenK: https://code.launchpad.net/~wgrant/launchpad/faster-binary-search/+merge/123213 ← +86/-228 query optimisation05:49
wgrantIf you have time today05:49
StevenKwgrant: Your indenting in lib/lp/archivepublisher/publishing.py looks wrong05:52
wgrantStevenK: It's arguable. PEP 8 suggests extra indentation like that when it would otherwise be visually ambiguous05:53
StevenKwgrant: r=me05:55
wgrantThanks05:55
StevenKAnd grepping for date_last_updated doesn't help either05:56
StevenKClearly, it's updated by magic.05:56
StevenKSubscribing and unsubscribing does *not* trigger an update of05:59
StevenKIBug.date_last_updated.05:59
wgrantlib/lp/bugs/configure.zcml:        handler="lp.bugs.subscribers.buglastupdated.update_bug_date_last_updated"/>06:01
wgrantis a bit suspicious06:01
StevenKOh, why?06:01
wgrantHm, but it's not on IBugSubscription creation06:01
StevenKYes06:01
wgrantSo possibly it's the ObjectModifiedEvent from updating the subscriber or affected count or something?06:01
StevenKI thought they just backed onto BugSubscription and didn't hit Bug?06:03
StevenKAnd I thought affects me didn't subscribe06:04
wgrantSome things are denormed06:04
wgrant+affectsmetoo doesn't subscribe, no06:04
wgrantBut the operations are performed together06:04
StevenKI suspect +affectsmetoo will trigger date_last_updated06:04
StevenKwgrant: But by what? If stuff was denormed, you'd think subscribe() would perform it?06:05
wgrantMaybe06:05
wgrantI don't think it's a trigger06:05
wgrantI hope it's not a trigger06:05
StevenKNot that I can see06:07
wgrantStevenK: I wonder if it's just lazr.restful firing an ObjectModifiedEvent after subscribe() is called06:07
StevenKwgrant: The existing test calls notify(ObjectCreatedEvent(subscription))06:09
wgrantI mean an ObjectModifiedEvent(bug)06:10
wgrantI don't know if it does it implicitly on named ops06:10
wgrantBut it might well do so06:10
StevenKHmm, API scripts really don't want to talk to dev06:18
wgrantThere's an environment variable for that06:18
StevenKLP_DISABLE_SSL_CERTIFICATE_VALIDATION?06:19
wgrantYeah06:19
StevenKwgrant: http://pastebin.ubuntu.com/1190284/06:20
wgrantStevenK: Make sure you're using a modern launchpadlib06:20
wgranteg. run with bin/py06:20
StevenKOooh06:21
StevenKRARGH06:22
StevenKIT DOES UPDATE06:22
StevenKLAZR.RESTFUL!06:22
StevenKwgrant: http://pastebin.ubuntu.com/1190287/06:23
wgrantRight06:23
wgrantThat makes sense06:23
wgrantSo you need to fix the subscriber06:23
wgrantTo not subscribe to subscribers06:24
wgrant(currently it sets date_last_updated unconditionally; it may want to verify some attributes of the event first)06:24
StevenKRight06:25
StevenKI should have guessed, since lazr.restful calls ObjectModifiedEvent on the object you called the method on06:26
StevenKRight, bug updated06:30
wgrantStevenK: Heh06:44
wgrantStevenK: Did you really run something that only deleted tests through ec2?06:44
StevenKHm, that was a bit silly06:45
StevenKOh well06:45
jmlwgrant, lifeless: if there's something you want changed about our code, do let us know. <https://bugs.launchpad.net/pkgme-devportal/+filebug> is a good place.07:55
wgrantjml: Do you know if you're deliberately using exact_match=False in the getPublishedBinaries call? That does substring matching on the name, which is a little slower and may return excessive results.07:57
jmlwgrant: good question. oddly enough, james_w sent an email about that to me yesterday...07:57
* jml pages in07:58
wgrantexact_match=False is currently very slow, but so is exact_match=True. Both will be fast on Monday, but exact_match=True will obviously still be a little faster and probably more correct.07:58
jmlah08:02
jml"I think this might have had something to do with using exact_match=False when looking for publications, so it was doing fuzzy package name matching. I don't know why it was doing that, so I removed it. It should now just iterate over all publications for configured architectures for the given binary package name."08:03
* jml rolls up sleeves and does code reviews.08:03
wgranthttps://bugs.launchpad.net/launchpad/+bug/1047176 is the slowness issue08:04
_mup_Bug #1047176: Archive.getPublishedBinaries is terribly slow <timeout> <Launchpad itself:In Progress by wgrant> < https://launchpad.net/bugs/1047176 >08:04
wgrantYou're currently getting somewhere around 10000 timeouts a day, so this will hopefully improve things08:07
jmlah right.08:07
jmlit's a lp:udd instance08:07
jmlso it's hard to tell08:07
wgrantAh08:08
=== almaisan-away is now known as al-maisan
=== lifeless_ is now known as lifeless
=== al-maisan is now known as almaisan-away
=== gary_poster|away is now known as gary_poster
wallyworldsinzui: hi, i have a question about the product licence widget12:46
sinzuiyes?12:50
wallyworldi have gobs of javascript from the tal into it's own module, and replaced all the custom expander code with standard collapsible elements. but it appears to me that the code which handles source_package_release and allow_pending_license is obsolete since i can't see how or where these attributes on LicenseWidget are ever set12:50
wallyworldi also have the hidden stuff working for bots and screen readers etc12:51
wallyworldit turns out yui convenientsly adds a yu3-javascript class to the html element if javascript is enabled12:52
sinzuiRegister the project from a (disto) source package12:52
sinzuiThere are 4 places to register a project:12:52
sinzuiprojects/+new12:53
sinzui<projectgroup>/+newproject12:53
sinzui<dsp>/+index and <sp>/index12:53
wallyworldok. i only knew about the first way12:53
sinzuiwallyworld, https://launchpad.net/ubuntu/quantal/+source/cryptkeeper12:54
sinzuihttps://launchpad.net/ubuntu/+source/cryptkeeper is really ^. It chooses the current SP12:55
wallyworldso you mean the "Register Upstream Project" link?12:55
sinzuiyes12:55
sinzuiIt prepoulates the form and adds the copyright file to help with choosing licenses12:56
wallyworldok. i'll have a play around on qas and see how it all behaves. thanks12:56
wallyworldi am pretty sure i have it all working fine, i just want to check these extra cases12:56
wallyworldi had hard coded stuff into the projects/+new to initially test12:56
sinzuiOh, I got one url wrong https://launchpad.net/launchpad-project/+newproduct is correct12:57
wallyworldok12:57
wallyworldwith all the standard collapsible / expander stuff uses, the licence javascript shrinks dramatically in size. it was all very old code12:58
sinzuiYes, it was barry's first js written just a few months after we started using YUI12:58
sinzuiI think keyboard users hate the form because you can tab into the a hidden license12:59
wallyworldyeah, it was all that was possible in the day but years later we have better infrastructure. i'll check the tabbing issue to see that it's gone13:00
sinzuiwell13:00
sinzuiI reviewed a lot of this code in 2009. I decided then and there that I will never write a windmill test or repeat the mistake of inline js13:01
sinzuiI used yui-test...then had to argue that my tests were better then the windmill site13:02
sinzuishite13:02
wallyworldi didn't know yuitest at first - my first tests of this nature were in windmill. i am glad it's gone for sure13:03
wallyworldsadly, people all over still tend to write inline js. especially in the world of jsp, php etc13:03
deryckMorning, all.13:05
rick_h_morning13:05
rick_h_wallyworld: not enough shooting taking place for violaters :P13:06
wallyworldrick_h_: too soon after all the recent happenings over there?13:06
rick_h_they keep hitting the wrong people. Missing the JS violaters13:07
wallyworldhah13:07
* wallyworld doesn't understand th US gun culture13:07
lifelesss/gun //13:14
wallyworldwell...13:14
wallyworldthat's a beer conversation13:15
lifeless:)13:15
lifelessso, week after next then13:15
wallyworldyes, you be in brisbane?13:15
lifelesslikely to be13:15
wallyworldcool. we'll have to organise dinner or somwthing13:15
lifelesswe're getting an ex-weta dude in to talk maas use cases.13:16
lifelessI'll be there to help extract maximum knowledge13:16
wallyworldok. is this a consultant?13:16
lifelessyes13:20
wallyworldwell, when you know dates let's get something organised13:22
lifelesswill do13:24
lifelessthats pending flacoste and the consultant making sweet sweet arrangements.13:24
wallyworldok13:25
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
abentleyrick_h_: Do you have time for a UI question?14:22
rick_h_abentley: sure thing14:22
abentleyrick_h_: So, only products are going to allow blueprints to have proprietary information types.  All other kinds of blueprints are necessarily PUBLIC.14:23
abentleyrick_h_: We have to display the information_type selector when creating a bluprint that might be associated with a product.14:23
abentleyrick_h_: should we also display the information_type selector if it won't be associated with a product?14:24
rick_h_I'd say no, I'd hide the field unless a product is selected and if the product is selected we'd show the field, default to the products information type and maybe do a flash green to show it's there14:25
rick_h_no sense adding UI that the user can't effect and the banner indicated public/private already so showing it is duplicate information14:25
abentleyrick_h_: Okay.  I'm inclined not to show information_type dynamically-- just keep it on the "https://blueprints.launchpad.net/specs/+new" page and the blueprint-for-product page.14:29
rick_h_abentley: ok, then I'd probably at least disable/enable the field based on the "For"?14:30
abentleyrick_h_: Yes, that's what I mean.14:30
rick_h_ah ok cool14:30
abentleyrick_h_: would you hide the picker if you knew the project policy supported only one value?14:31
rick_h_I think so since the large majority of use cases don't need to know about the data14:32
rick_h_it's like showing the current default information types for a project in a portlet, only show that portlet if one of the apps are non-public.14:33
abentleyrick_h_: Cool.14:34
abentleyderyck: I find it confusing that getAllowedInformationTypes does not consider getBranchSharingPolicies or getBugSharingPolicies.15:05
deryckabentley, I'm in all that space myself now…. let me look closely again now....15:06
deryckabentley, yeah, I find it weird, too.  Now that I get my head around it.  Sorry to be so slow.15:16
deryckabentley, seems like it would save a query, too, unless the method is doing more than it seems to me.15:16
abentleyderyck: So, silly me, I assumed that Branch.getAllowedInformationTypes used ISharingService.getAllowedInformationTypes.  Instead, it uses IBranchNamespacePolicy.policy.getAllowedInformationTypes()15:22
deryckah, I was just thinking of the SharingService method.15:24
abentleyderyck: For bugs, though, the BugSharingPolicy doesn't seem to be used, just Pillar.getAllowedInformationTypes().15:25
deryckI wonder why they're different?15:26
sinzuideryck, abentley Pillar.getAllowedInformationType() uses the policy and understand that the types can be in transition15:29
abentleysinzui: Oh, my bad, that's Pillar.getAllowedBUGInformationTypes.15:30
=== deryck is now known as deryck[lunch]
=== deryck[lunch] is now known as deryck
=== gary_poster is now known as gary_poster|away
=== timrc is now known as timrc-afk

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