StevenKwgrant: I've finally found the method that generates the query for bug 100183800:01
_mup_Bug #1001838: Builder:+history timeouts due to terrible main query <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1001838 >00:01
StevenKWould be nice if I could actually find a relevant OOPS that hasn't been pruned.00:02
bigjoolsawesome,  after upgrading to quantal I now have two X servers running00:09
wgrantbigjools: What's the other one doing?00:11
wgrantStevenK: Should be pretty easily reproducible on prod00:11
wgrantStevenK: eg. try palmer's +history00:11
wgrantAny of the busier builders should work00:11
bigjoolswgrant: one is gdm one is kdm ...00:12
wgrantgdm or lightdm?00:13
wgrantThe former would be pretty strange :)00:13
bigjools$ dpkg -l00:13
bigjoolsdpkg-query: error: parsing file '/var/lib/dpkg/status' near line 56897 package 'libao4:i386':00:13
bigjools mixed non-coinstallable and coinstallable package instances present00:13
wgrantFound the bugsummary bug00:35
StevenKwgrant: Heh, except is palmer is gone00:39
StevenKroseapple works00:40
wgrantpalmer's still accessible00:40
wgrantJust probably not linked00:40
StevenKhooker works too00:41
StevenKRight, palmer is cursed00:41
StevenKwgrant: Ah, so there are two real cases in the code -- your explain and index is for the case where user is None.00:42
StevenKwgrant: And what's the bugsummary bug?00:42
wgrantA typo in bug_summary_dec00:43
wgrant-        AND access_policy IS NOT DISTINCT FROM access_policy;00:43
wgrant+        AND access_policy IS NOT DISTINCT FROM $1.access_policy;00:43
wgrantis the fix00:43
wgrantSee, this is why we should move to 9.200:43
wgrantSQL functions can now use named args00:43
wgrantWhich would have made that more obvious :)00:43
wgrantlifeless: So I expect us to be on 9.2 by this evening00:44
wgrantlifeless: https://code.launchpad.net/~wgrant/launchpad/bug-1046713/+merge/12366801:02
wgrantOr leave it for stub if you so desire01:02
lifelesswgrant: what you expect and what you get may differ01:13
lifelessbigjools: around ?01:14
bigjoolslifeless: otp01:14
lifelessbigjools: need info about where in BNE to stay01:14
lifelessbigjools: so that I don't end up with an hour commute or something01:14
StevenKwallyworld can probably help too01:14
bigjoolsyeah he's better for that01:14
wallyworldlifeless: where are you meeting?01:15
bigjoolswe dunno yet01:15
wallyworldthere's a few good irish pubs inthe city01:15
lifelessI need to book accom via btstravel01:15
lifelessso this is going to be tight if I don't put the request in today.01:15
wallyworldif you can tell me where the meetings are, i can help with somewhere close by01:16
bigjoolsI have a spare room if all else fails :)01:16
wallyworld(bring earplugs then)01:16
wallyworldand i don't mean for the babies01:16
wallyworldi'm here till friday01:17
lifelessboom tish01:21
lifelessI thought it was Ng that was.01:21
wgrantlifeless: :(01:26
lifelessimplicit type promotion sucks.01:59
lifelessthat is all01:59
lifelesscan has review plox : https://code.launchpad.net/~lifeless/python-oops-tools/bug-1048470/+merge/12367202:10
lifelesswill unbreak neem02:10
lifelesswgrant: StevenK: ^02:15
wgrantlifeless: python3 :)02:36
lifelesswgrant: that would be nice02:36
wgrantAnyway, r=me02:37
lifelesswgrant: but I'm missing 3 unicorns and a couple of fairy godmothers to make that happen02:37
wgrantDjango's mostly ported now02:37
wallyworldwgrant: StevenK: should a distribution source package have an +expirable-bugs view?02:40
lifelessbigjools: travel booked, but now we need to sort out accom :)02:40
lifelessbigjools: <nag>02:40
wgrantwallyworld: Doesn't really matter.02:42
wgrantwallyworld: If it's easy then fix it, otherwise remove it02:42
wallyworldwgrant: well, _getTargetJoinAndClause only wants distro, product, distroseries, productseries. if i can convert a dsp to any of those, then it will work?02:43
wgrantSo it's only used by findExpirableBugTasks02:44
wgrantI'd just add support for IDistributionSourcePackage and ISourcePackage in there02:45
wgrantshouldn't be too difficult02:45
wallyworldok, thanks. just wanted to check that it made sense to do that02:46
wgrantIt doesn't not make sense02:46
wgrantBut it might not be too useful02:46
wgrantSo if it looks difficult, don't bother02:46
wallyworldok. i have no idea how often that view might be used, or if you need to url hack to see it02:47
wgrantNot very, and probably02:47
wallyworldhmm. in that case i might leave it. no point fixing something not useful02:49
lifelessbigjools: did we need to speak arch ?03:48
wgrantStevenK: Have you tested COUNT(*) with that new query?04:42
wgrantIt will probably be dreadfully slow04:42
StevenK... You say after I close the gedit that had my notes in it04:42
StevenKOh, and after I cleaned up the index on DF04:43
StevenKwgrant: Yeah, 8.5 seconds04:46
wgrantStevenK: Right, this is why StormRangeFactory is important05:00
wgrantI'm not sure how difficult the port will be05:03
wgrantProbably not very05:03
lifelessthis is also something we could denorm05:06
lifelessavoid the count(*) at all05:06
StevenKwgrant: Based on my reading, it looks like BuilderHistoryView uses it already?05:06
wgrantStevenK: Where?05:08
StevenK        self.batchnav = BatchNavigator(05:09
StevenK            builds, self.request, range_factory=self.range_factory(builds))05:09
wgrantIt uses a range factory05:09
wgrantProbably not StormRangeFactory05:09
wgrant    range_factory = ListRangeFactory05:09
wgrantIt's likely that a subclass or two override it05:09
StevenKCan we just tell BuilderHistoryView to override to SRF and move on?05:10
wgrantRight, probably05:10
wgrantTry :)05:10
StevenKwgrant: TestBuilderHistoryView doesn't explode05:17
wgrantSee if it works in the UI :)05:17
StevenKCowboy my changes onto DF, or 'make run' see if it works?05:18
wgrantTry it locally05:19
wgrantConfirm that no COUNT(*) is executed05:19
StevenKsteven@undermined:~/launchpad/lp-branches/buildfarmjob-index% grep BuildFarmJob /var/log/postgresql/postgresql-9.1-main.log | grep -c COUNT05:20
StevenKAnd yes, I have query logging on05:20
StevenKOh drat, I didn't use cat.05:21
* StevenK peers at spm.05:21
StevenKwgrant: ^ Does that look good to you, or shall I pastebin the first grep?05:23
wgrantStevenK: I'd confirm in ++oops++05:24
wgrantOr the query log at the bottom of the page05:25
* StevenK tries to rememeber where OOPSes go05:29
wgrantNowhere, if rabbitmq is running05:30
wgrantSo I'd use the thing at the bottom of the page05:30
* StevenK turns on the FF for it05:31
StevenKwgrant: No match for 'count('05:32
StevenKLots of matches for count, but that's things like 'Account' and 'failure_count'05:32
wgrantStevenK: And it shows up if you revert the range_factory change?05:34
StevenK1.099ms 05:35
StevenKSQL-main-slave: SELECT COUNT(*) FROM BuildFarmJob LEFT JOIN PackageBuild ON PackageBuild.build_farm_job = BuildFarmJob.id WHERE BuildFarmJob.builder = 105:35
wgrantNow I'd cowboy this onto DF and watch the fireworks05:35
wgrantBut it's hopefully fine05:36
* StevenK recreates the index again.05:36
StevenKwgrant: DF cowboyed05:45
StevenKwgrant: "31 queries/external actions issues in 0.93 seconds"05:47
StevenKMeans we can probably kill the Builder:+history FF too05:48
wgrantThat's the plan05:48
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/builder-history-better-query/+merge/12367605:49
wgrantStevenK: Does anything else use the modified method?05:50
wgranteg. the API?05:50
StevenKwgrant: There's one other callsite, and it isn't exported05:52
StevenKAnd the method itself isn't either05:52
wgrantWhat is the callsite?05:52
wgrantIsn't that the method that we're looking for callsites for?05:53
StevenKNo, the method I've been beating into submission is IBuildFormJobSet.getBuildsForBuilder05:53
StevenKIBuildFarmJobSet, even05:53
wgrantRight, but isn't that only used by getBuildRecords?05:54
wgrantThe view should call getBuildRecords05:54
wgrantNothing else should call getBuildsForBuilder directly, AFAIK05:54
StevenKRight, doesn't look like anything else wants IBuilder.getBuildRecords()05:56
StevenKPretty much everything is interested in IDistroSeries.getBuildRecords()05:56
StevenKwgrant: So, are you happy with everything, and I can get stuff rolling?05:59
wgrantStevenK: Indeed, r=me with one comment06:03
StevenKwgrant: I was going to rename extra_clauses to clauses to save a bit too06:04
StevenKwgrant: http://pastebin.ubuntu.com/1198057/06:04
StevenKstub: https://code.launchpad.net/~stevenk/launchpad/buildfarmjob-index/+merge/123675 would love a review.06:05
stubStevenK: Do we really need id in there?06:06
StevenKwgrant wrote that index, I've just been using it.06:07
wgrantI think I just won my battle against the planner06:07
wgrantThat was months ago06:07
stubIt looks like a sacrifice to the test suite06:07
wgrantIt probably has id as a tiebreaker06:07
wgrantI don't remember06:07
stubCan a builder run multiple jobs in one build?06:08
stubSo we need the tie breaker in the real world?06:08
wgrantprobably not, but it won't really hurt06:08
StevenKTBH, I'm inclined to leave it, I've been testing against this index all afternoon06:08
stubStevenK: Do the queries have id in the order by at the moment?06:09
StevenKAnd it makes Builder:+history performant for the first time in $A_LONG_TIME06:09
stubit is an extra integer column in an index on 4million odd items, makes the index slower06:10
StevenKThey do and they will.06:10
StevenKwgrant: Happy with the pastebin'd diff I posted?06:11
stubBoth builder and date_finished are nullable.06:11
stubShould this index be partial?06:11
StevenKstub: builder will be NULL when a job is waiting in the queue, and date_finished will be NULL until the job completes.06:12
StevenKThe grand majority of rows will have them both set.06:13
stubRight. Just looking at prod, 300k rows have a NULL builder06:13
stubSo thinking a WHERE builder IS NOT NULL clause might be appropriate06:13
wgrantProbably mostly the imported binaries06:13
wgrantI would indeed go with WHERE builder IS NOT NULL06:13
wgrantBut I think date_finished IS NOT NULL would break things06:13
wgrantSince we don't have that constraint in the query today06:14
wgrantAnd it's conceivable that a builder has something without a date_finished, though that should only happen if something is terribly broken06:14
StevenKIf it's currently building06:14
stubThe reverse is the weird one06:14
stubdate_finished but no builder, but that would be if we removed builders from the db and wanted to keep historical records.06:15
wgrantDoes it exist on prod today?06:16
StevenK-CREATE INDEX buildfarmjob__builder__date_finished__id__idx ON BuildFarmJob(builder, date_finished DESC, id);06:16
StevenK+CREATE INDEX buildfarmjob__builder__date_finished__id__idx ON BuildFarmJob(builder, date_finished DESC, id) WHERE builder IS NOT NULL;06:16
StevenKstub: ^06:16
stubStevenK: yer06:16
stubwgrant: 508106:17
StevenKstub: The diff on the MP has updated if you want to rubber stamp06:20
wgrantstub: I've also got a DB review for you. A nice complex DB function change: https://code.launchpad.net/~wgrant/launchpad/bug-1046713/+merge/12366806:49
StevenKstub: No +1 for me? :-(06:49
stubeh? oh06:54
stubStevenK: +106:55
StevenKstub: Thanks, that's landed as r15931. You can apply it to qas/prod when you're able.06:58
stubwgrant: Dare I ask where the typo was?07:00
wgrantstub: Check the diff I linked in the description07:01
stuboh, ta07:01
wgrantIt's been through ec2 already07:03
stubwgrant: Happy for me to apply that with StevenK's index?07:08
wgrantstub: That would be lovely07:08
wgrantThen I'll rebuild bugsummary once revisionkarma has been killed off and the backup is done.07:08
stubwgrant, StevenK: Both applied to qastaging07:11
StevenKstub: Prod is blocked due to backups?07:13
stubI'm just checking07:13
stubYeah, another 4 hours or so until it can be applied07:13
StevenKThat's a little worrying, given the FDT window is in 3 hours.07:14
StevenKWell, one of them. :-)07:14
stubwgrant: Your patch is applied to prod07:14
StevenKAh, functions aren't blocked by the backups, but indicies are?07:15
wgrantstub: Thanks07:15
stubStevenK: Correct07:15
StevenKWell, that's just terrible.07:15
StevenKI shall have to deal.07:15
wgrantBut it makes sense :)07:15
wgrant(the backup and revisionkarma should both finish in 2h±10min07:16
stubWe are going to keep having 10.5 hour logical dumps until we get the diskspace to store binary backups, so consider this next window pointless.07:16
wgrantNah, they finish in time07:16
wgrantIt's the midday AEST window that is unusable unless the backup fails07:16
* StevenK goes to kill Geth07:17
StevenKWell, some Geth07:17
stubI've got a 6.5 hour backup transaction in process, and I could have sworn the last successful backup took 10.5 hours07:17
wgrantstub: The backups run from 00:41 to somewhere between 09:15 and 09:20, usually07:18
wgrant(then takes 20-30 minutes to copy to sourcherry, but by then it's out of the DB)07:18
=== almaisan-away is now known as al-maisan
adeuringgood morning07:56
=== frankban changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: frankban | Firefighting: - | Critical bugs: ∞
lifelesswe need to do some releases08:30
czajkowski*morning even08:30
lifelesshi czajkowski08:31
=== rick_h_ changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: frankban, rick_h | Firefighting: - | Critical bugs: ∞
=== al-maisan is now known as almaisan-away
rick_h_sinzui: beat you on this one today :P12:10
rick_h_last week you beat me through one for jcsackett so need to get my revenge in12:11
nigelbrick_h_: Caffeine overload there? :P12:15
rick_h_nigelb: working on it12:16
dakerhey jtv12:17
tumbleweedI tried my hand at scratching an LP itch last night. bug 891862. any one care to have a quick look at it and discuss it with me?12:22
_mup_Bug #891862: Changing the owner of a packageset requires SQL <api> <canonical-losa-lp> <packagesets> <soyuz-core> <Launchpad itself:Triaged by stefanor> < https://launchpad.net/bugs/891862 >12:22
cjwatsontumbleweed: You don't seem to have any tests12:34
tumbleweedI am aware of that12:35
tumbleweedthere aren't any tests for any of that code, as it stands12:35
tumbleweedand writing some is going to put me into a big positive LoC problem :/12:35
cjwatsonYeah, I've tried that excuse in the past, it never works :)12:36
tumbleweedoh, does that cover the API?12:37
cjwatsonOh and lib/lp/soyuz/stories/webservice/xx-packageset.txt12:37
cjwatsonFor the API12:37
tumbleweedaah, doctests12:37
cjwatsondoctest unfortunately, but it's workable if you hold your nose12:37
tumbleweedthat's why I couldn't find them12:37
cjwatsonAlso destroySelf needs a model test12:38
cjwatson(not totally sure I like that name but I'll leave it to a reviewer ...)12:38
cjwatsonand I would say you should be exporting the new method on API version devel, not beta12:38
tumbleweeddestroySelf seems to be the name everywhere else12:40
tumbleweedduh, re devel12:40
tumbleweeddo you know of anything that can some me some LoC points?12:41
rick_h_tumbleweed: https://dev.launchpad.net/PolicyAndProcess/MaintenanceCosts/HitList is the running list, I've not checked it out lately12:46
* tumbleweed supposes converting those doctests to unittests may be a starting point12:49
cjwatsonthat's usually a worthwhile place to start although it can take a while12:57
=== almaisan-away is now known as al-maisan
deryckadeuring, ping for standup.13:32
adeuringderyck: oopps, coming...13:32
deryckadeuring, np.13:32
=== skaet_ is now known as skaet
rick_h_deryck: abentley think I found it. It had a new information type that wasn't there before so that failed the verbose prettyprint match13:54
rick_h_thanks for peeking13:54
abentleyrick_h_: np.13:54
=== al-maisan is now known as almaisan-away
deryckrick_h_, cool, glad to hear.13:56
=== almaisan-away is now known as al-maisan
abentleyrick_h_: See, that's the thing.  Doctests should show you where the match failed, not what the differences are.14:02
rick_h_abentley: right, blind by too much info14:04
rick_h_just glad it wasn't anything huge. Hate it when you change something and then things seemingly unrelated go boom14:04
sinzuijam I appear to have enough network now to have a proper talk about maintenance14:24
sinzuijam: I am free today, Thursday, and Friday14:25
czajkowskisinzui: love the new chart!!14:28
sinzuithank you14:28
abentleyderyck: I've added a card for "Add Add Product.getAllowedSpecificationInformationTypes and Product.getDefaultBugInformationType"14:29
deryckabentley, thanks!14:29
=== al-maisan is now known as almaisan-away
adeuringrick_h_: could you pelase review this MP: https://code.launchpad.net/~adeuring/launchpad/use-access-grants-for-specifications-auth-check/+merge/123774 ?15:33
rick_h_sure thing adeuring15:33
rick_h_adeuring: should an XXX or something be setup for the follow up branch work?15:44
rick_h_adeuring: I guess how are we tracking that there's follow up for the owner not getting a grant atm15:44
tumbleweedcjwatson: added a few tests and started finding bugs... Do you think we should try and re-link packageset heirarchies across removal? or just abort the deletion if there are relationships?15:45
adeuringrick_h_: I think I should add a card about the fact that several people with "special roles" do not have automatic access15:45
rick_h_adeuring: ok, cool15:45
rick_h_adeuring: r=me15:45
adeuringrick_h_ thanks!15:45
cjwatsontumbleweed: err not sure :-)15:46
tumbleweedor even cascade the deletion...15:47
tumbleweedand a more general question: if I expose an API method for deletion. How do I not return a 404 on success?15:50
=== deryck is now known as deryck[lunch]
=== frankban changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: rick_h | Firefighting: - | Critical bugs: ∞
=== deryck[lunch] is now known as deryck
=== matsubara is now known as matsubara-lunch
rick_h_jcsackett: have time for a JS review? https://code.launchpad.net/~rharding/launchpad/productjs/+merge/12380318:18
jcsackettrick_h_: sure.18:19
rick_h_jcsackett: thanks, more a start than a finish, but want to do it in stages18:19
benjijam: I'm afraid I have to punt the lpsetup tarmac issue back to you guys.  I wasn't able to figure much out yesterday.  When rebooting the canonistac instance it did not come back up.18:22
jambenji: technically it is up to purple, since they are now on maintenance, but since I'm the one with the delayed patch, I'll give it a look tomorrow.18:23
jamI was able to log into the machine18:23
jamso that worked18:23
benjijam: oh, sorry, I thought you were on maint.18:24
jamwe just switched on Monday18:24
jamso not too surprising you would think so18:24
jcsackettsinzui: free to chat?18:52
jcsackettsinzui: ignore that, posted from irssi history.18:52
=== rick_h_ changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: ∞
jcsackettrick_h_: some comments on MP.19:10
rick_h_jcsackett: ty much looking19:10
jcsackettrick_h_: also, given the branch of mine just landed that you reviewed, lazr.* > lp.ui.*19:12
rick_h_jcsackett: yea, expected that to come along, just waiting on the merge19:12
rick_h_jcsackett: comments added19:16
* jcsackett looks19:21
jcsackettrick_h_: thanks for answers, that all makes sense. r=me.19:23
nigelbI've always wondered, how'd LP have a lazr namespace?19:23
nigelbi.e. where'd it come from?19:23
rick_h_nigelb: so I believe the history was that lazr was supposed to be a set of reusable UI components19:27
rick_h_but it's really only used in LP19:27
nigelbthe idea was that it could be used in other places in canonical?19:28
abentleynigelb: Actually, I think the hope was that it would be useful outside Canonical, too.19:28
rick_h_which is again my pipe dream, but we're just subsuming/taking over lazr into LP19:28
=== Ursinha_ is now known as Ursinha
lifelessrick_h_: I think its a good dream. I think we tried to run before we could walk. Lots of effort in planning for things that haven't eventuated, too little on solving the friction around consuming widgets from the store etc.19:40
rick_h_lifeless: yea, definitely. Not saying it's more than a dream to keep in mind as we do things19:41
rick_h_in my head at least :)19:41
rick_h_and it'll be easier with later YUI with Views19:41
tumbleweedhow do I make this API delete() function not return a 404 on success? http://bazaar.launchpad.net/~stefanor/launchpad/edit-packagesets/view/head:/lib/lp/soyuz/interfaces/packageset.py#L35119:44
=== matsubara-lunch is now known as matsubara
cody-somervilleIs there a way to get what the link url would be for a resource without actually fetching it20:21
cody-somervilleI want to get the resource URL for a person20:21
cody-somervilleI want to pass this to another API call manually instead of the person object20:22
cody-somervilleas I might not be able to fetch the person object myself20:22
cody-somervilleI could easily do a hack but am wondering if there is a clean way to do this20:22
cody-somervillesinzui, ^^20:27
cody-somervilleAlso, it doens't appear that the objects returned by getSharedArtifacts get transformed into the right launchpadlib objects20:28
sinzuiI manually construct them sometimes because I know the API is stable and cannot change20:28
sinzuiIf you know the type, you can trust the URL will be the same given that you know the unique names that construct it20:29
sinzuioh dear20:29
sinzuicody-somerville, you are not getting IBranch and IBug?20:29
cody-somervilleDoens't appear so. In fact, for one example I have a person that has one artifact shared with them. What the API returns is a list that contains two lists. The first sub-list contain a dictionary for the single bug shared. The second sub-list is empty.20:33
cody-somervillesinzui, The dictionary does contain a resource_type_link key. The value is https://api.launchpad.net/devel/#bug_task as expected.20:33
sinzuiThis probably relates to what stopped me from exporting getAffiliatedPillar()20:34
cody-somervillepython-lazr.restfulclient: 0.11.1-1build1; python-launchpadlib: 1.9.7-0ubuntu2.120:34
cody-somervillesinzui, ^^ if that matters20:35
sinzuiIt is not easy to return a heterogeneous set of objects20:35
sinzuiversions do not matter. The issue is Lp trying to adapt two types into one return type20:36
sinzuireport a bug.20:36
sinzuiI will discuss the issue the the squad. I think we have two cases that demonstrate that we need a solution that can be reused.20:37
cody-somervilleWill do.20:37
cody-somervillesinzui, so the two lists within the lists. Is the second list intended to have branches?20:38
sinzuiah, I wonder if the rule is real method returns a tuple and Lp restful knows how to expand the tuple to the real types. That would allow me to send back distros, project groups, and projects from a singe method, and informs me of how to rewrite the query20:40
=== gary_poster is now known as gary_poster|away
cody-somervillesinzui, FYI, I imagine one of the primary use cases will be to display same information that the web UI does on command line. Since the current implementation returns a bug_task instead of a bug, you have to fetch each individual bug object to get the information_type.20:47
sinzuicody-somerville, agreed20:53
sinzuiThe bug-bugtask division does not help anyone20:54
sinzuiEven Lp has to use both every time20:54
sinzuiPillar and PillarName are examples of intermediary object that no callsite ever want tot get back20:54
cody-somervillesinzui, I filed LP #104937421:32
_mup_Bug #1049374: Resources returned by getSharedArtifacts not adapted to resource object type <Launchpad itself:New> < https://launchpad.net/bugs/1049374 >21:32
lifelesswhats involved in doing a launchpad-buildd release ?21:48
StevenKwgrant: OOPS-995da926c1f98feed6844957a3a9455922:25
StevenKsinzui, wgrant, wallyworld: http://www.somethingofthatilk.com/index.php?id=13523:00
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/illegaltarget-if-pillar-is-new/+merge/12386223:50
wgrantStevenK: Can you rework the test to not use rSP?23:52
wgrantStevenK: eg. set the bug to USERDATA, then transition the sharing policy afterwards23:52
StevenKwgrant: I think it will still be needed for the validate_target call23:54
wgrantNot if you log in23:54
wgrantWait a minute, that test is invalid23:55
wgrantThe sharing policy is PROPRIETARY_OR_PUBLIC23:55
wgrantSo it permits USERDATA23:55
StevenKThis diff should fix that too23:56

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