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

* cjwatson looks at the whole of r1373400:00
cjwatsonIn that revision, it had one caller, which was always copying from series.previous_series to series00:01
cjwatsonI'm right in my presumption that series.previous_series is always in the same distribution, aren't I?00:01
wgrantRight00:01
wgrantYes00:01
lifelesswell00:01
lifelesswe hope so00:01
cjwatsonI did check it was true for Ubuntu00:02
wgrantThe code ensures it's always true00:02
wgrantThe DB does not00:02
cjwatsonSo I think this was essentially an attempt at generalising to derived distributions00:02
cjwatsonBut that actually what we have now in PackageCopier does a better job00:02
cjwatsonAnd the publisher code doesn't care00:02
wgrantYep00:03
wgrantr=me00:03
wgrantWe really need to merge the uploader and copier eventually...00:03
cjwatsonYeah, it's a pretty ugly separation00:03
cjwatsonThey're kind of converging by iterative generalisation00:04
wgrantAnd it's only getting uglier00:04
wgrantYeah00:04
cjwatsonBut stuff like that duplicated policy code is really hard to fix in the current layout00:04
wgrantAnd there are subtle differences.00:04
wgrantLargely unavoidable in the current layout, as you say00:05
cjwatsonDifferent ancestry calculation between them00:05
cjwatsonAnd within the uploader, come to that, but that's a different matter00:05
wgrantYes...00:05
cjwatsoncf. my comment in check_copy_permissions :-)00:06
wgrantreally we want to rework PackageUpload+PackageCopyJob to work with just a "bunch of packages"00:06
wgrantThen copies and uploads can use the same infrastructure, just from different sources00:06
wgrantThat would also probably necessitate making custom uploads not horrible00:06
wgrantOr at least less horrible00:06
cjwatsonThey could do with having something that resembles a database representation00:07
wgrantMyes.00:07
cjwatsonRather than just being bolted onto the side of PackageUpload and forgotten about00:07
lifelesscjwatson: long tradition of that :)00:07
lifelesscjwatson: when schema changes were impracticle00:08
cjwatsonMm00:08
cjwatsonAt least we don't have sourceless custom uploads any more :)00:08
wgrantIndeed00:08
cjwatsonRight, thanks, I've sent that off to EC2.  I'll QA in the morning if it's got that far00:11
wgrant" 1 → 75 of 296 results "00:11
wgrant!00:11
wgrantcjwatson: Great00:11
StevenKwgrant: Criticals?00:37
wgrantStevenK: Yeah00:38
wgrantIn launchpad, though, not launchpad-project.00:38
StevenKYeah00:38
StevenKwgrant: Right, I can see the 35 BMPs00:39
StevenKWell, my query doesn't return the BMP ids, it returns the duplicated merge_diffs, but the 35 is the important bit.00:40
wgrantIs it actually 35?00:40
wgrantRight00:40
StevenKSELECT merge_diff FROM branchmergeproposal WHERE merge_diff IS NOT NULL GROUP BY merge_diff HAVING COUNT(*) > 1;00:40
wgrantRight, exactly.00:40
StevenKIncredibly simple00:40
StevenKwgrant: So I'm not sure what we should do, though00:41
wgrantStevenK: Delete 35 MP diffs :)00:41
StevenKwgrant: How will that help? There are two BMPs with the same merge_diff00:42
wgrantUm, yeah, maybe I'm misremembering00:42
wgrantDo we have a bug about this?00:42
StevenKI do not think so00:42
StevenKBut I haven't gone diffing00:42
StevenKEr, nice slip. digging00:43
wgrantAh00:44
wgrantSo I guess we want to duplicate the previewdiffs00:44
StevenKHow do we do that in 2.5 seconds? :-)00:45
wgrantThere's only 35 records...00:47
StevenKwgrant: Sure, but I'm not sure how to pull out only one BMP, duplicate its previewdiff and then set it back.00:48
wgrantStevenK: We'd probably want to duplicate the LibraryFileAlias, Diff, and PreviewDiff, then set BranchMergeProposal.merge_diff00:50
StevenKLFA is involved?00:51
StevenKwgrant: I can't see how LFA is involved00:52
wgrantStevenK: diff.diff_text is an LFA00:52
StevenKAh00:52
wgrantNo two previewdiffs reference one diff, and no two diffs reference one LFA00:52
StevenKwgrant: I'm just not sure how to duplicate rows, making sure that FKs are sane and then setting BMP.merge_diff00:55
cjwatsonIsn't bug 497772 released now?  That was apparently in launchpad-buildd 112, and top-of-changelog is 11400:56
_mup_Bug #497772: exceptions.AttributeError: 'DebianBuildManager' object has no attribute '_subprocess' <oops> <launchpad-buildd:Fix Committed by jelmer> < https://launchpad.net/bugs/497772 >00:56
wgrantStevenK: I'd probably write a query to find a temp table of the newer BMP of each of the 35 pairs, then execute a PL/pgSQL function to duplicate the three rows and switch the FK00:56
StevenKcjwatson: Ah, but what launchpad-buildd is deployed on the builders ...00:57
wgrant11400:57
wgrantSo yeah, that can be closed00:57
cjwatsonlaunchpad-buildd | 113~0.IS.08.04 | hardy-cat-buildd | source, all00:57
cjwatsonlaunchpad-buildd | 113~0.IS.08.04 | lucid-cat-buildd | source, all00:57
cjwatsonBut either way ...00:57
wgrantBuildd toolchain package versions: launchpad-buildd_114-0~53~0.IS.08.04 python-lpbuildd_114-0~53~0.IS.08.04 bzr_2.5.1-0ubuntu2.00:57
cjwatsonAh, good00:57
wgrantMysterious00:57
cjwatsonlaunchpad-buildd | 114-0~53~0.IS.08.04 | hardy-cat-proposed | source, all00:58
wgrantAh00:58
wgrantWhere did you get a cat madison?00:58
cjwatsonchinstrap:~cjwatson/madison-lite-cat/00:58
cjwatsonmadison-lite --config=config there00:58
wgrantAhh, thanks00:58
cjwatsonAnd I run ./make-local-mirror occasionally to refresh the local Packages/Sources00:59
cjwatsonActually in fact that's cronned houry00:59
cjwatson*hourly00:59
cjwatsonIt is a foul hack but it works01:00
cjwatsonIs there any way to get the OOPSen in bug 809937?  Neither lp-oops.c.c nor oops.c.c seems to have them any more01:03
_mup_Bug #809937: Timeout accepting packages  <queue-page> <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/809937 >01:03
cjwatsonI suspect that's a dup of bug 745799, but it would be nice to be able to check01:04
_mup_Bug #745799: DistroSeries:+queue Timeout accepting packages (bug structural subscriptions) <qa-ok> <timeout> <Launchpad itself:In Progress by cjwatson> < https://launchpad.net/bugs/745799 >01:04
wgrantIt's probably a dupe01:04
wgrantWe'll know for sure when the +queue POST oopses never appear again :)01:05
StevenKwgrant: So my plan based on your plan is a function that we call once per previewdiff, I'm clear on how to duplicate the data using INSERT INTO, but how do get back the id so I can keep FKs sane?01:05
wgrantBut it may be worth duping that01:05
wgrantStevenK: INSERT INTO foo (bar, baz) VALUES (what, ever) RETURNING id INTO some_var;01:07
wgrantRETURNING is normal PostgreSQL; it's how we get the IDs back in Storm01:07
wgrantINTO is PL/pgSQL01:07
StevenKwgrant: UPDATE branchmergeproposal SET ... WHERE merge_diff = pd_id LIMIT 1;  doesn't make sense, right?01:20
=== Ursinha is now known as Ursinha-afk
wgrantStevenK: Indeed not01:33
wgrantStevenK: The function will presumably be called with a BMP ID01:33
StevenKwgrant: I've written it for a previewdiff id01:35
StevenKIt even works01:35
StevenKLet me pastebin it up so you can insult me.01:35
StevenK:-P01:35
StevenKwgrant: http://pastebin.ubuntu.com/1225731/01:35
wgrantStevenK: Right, easy solution is to use the MP ID instead01:36
wgrantThen grab the merge_diff from that01:36
=== Ursinha-afk is now known as Ursinha
StevenKwgrant: It works this way? :-)01:37
wgrantOh, I see you do the SELECT first, right01:37
wgrantIs that quick enough on DF?01:38
wgrantIf not, just move the SELECT merge_diff bit to before the statement timeout01:38
StevenKSo I've tested one run, I'm just about to try it with -f and a ROLLBACK01:38
wgrantRight01:38
StevenKHah, my end SELECT line is wrong01:39
StevenKwgrant: It times out. :-(01:41
wgrantRight, so swap lines 6 and 801:41
StevenKwgrant: It times out at INSERT INTO libraryfilealias01:42
StevenKIt already printed SELECT 3501:42
wgrantHave you explained the INSERT INTO?01:43
StevenKwgrant: Just about to.01:43
StevenKwgrant: 3ms01:45
wgrantPerhaps just a cold cache? Run again?01:45
StevenKOooh01:46
StevenKIt prints duplicate_preview_diff, 35 blank rows and then (35 rows), can make it uh, not do that?01:47
StevenKInto a pager, which results having to hit q01:47
StevenKwgrant: ^01:49
wgrantNot sure01:50
wgrantBut it's because the function is returning null01:50
StevenKwgrant: Actually, I think the SELECT duplicate_preview_diff(merge_diff) ... is doing it01:50
wgrantExactly.01:51
wgrantYou asked it to return the result of that function01:52
wgrantWhich is NULL01:52
wgrantfor each row01:52
StevenKAh01:52
wgrantso 35 times01:52
StevenKBut it's declared as RETURNS void ?01:52
wgrantWhich means it returns null01:52
lifelessout for a short while01:52
wgrantIt just can't return anything itself; it always evaluates to null01:52
StevenKwgrant: So what do I instead?01:53
wgrantStevenK: Ignore it, probably01:53
wgrantI'm sure ops can press q01:54
StevenKlifeless: I'd like to chat about some SQL I'd like to run on prod when you're back.01:55
* bigjools owes wallyworld_ alcohol for adding the commit msg to MP emails02:01
bigjoolsor caffeine, pick your drug of choice02:01
* wallyworld_ likes Southern Comfort02:01
wallyworld_i assume it worked to your satisfaction then02:02
StevenKIs that a euphemism for wgrant?02:02
wallyworld_oooooh02:02
bigjoolshaha02:02
wgrantStevenK: https://oops.canonical.com/oops.py/?oopsid=OOPS-4845cff98595cfa456992a710aaff661 is a bit odd02:21
wgrantI suspect it's a regression from your stuff02:21
StevenKBlink02:22
StevenKOh, we switched to SRF02:22
wgrantAh02:22
wgrantYeah02:22
wgrantAnd when given a name, I bet it uses BPBSet instead of BFJSet02:23
wgrantAnd the former is probably SQLObject02:23
wgrantYeah02:23
lifelessStevenK: hi03:03
StevenKlifeless: O HAI. The SQL in question is https://pastebin.canonical.com/75216/03:12
lifelesssudo execute me some sql ?03:13
StevenKlifeless: The background is that when wgrant and I were migrating staticdiff to previewdiff we didn't check for and discard duplicates, so now we have 35 previewdiffs that are referenced by more than one branchmergeproposal03:13
lifelessStevenK: I see03:14
lifelessStevenK: you have  afunction in there; how have you validated it ?03:14
StevenKlifeless: I ran it on DF03:14
lifelessStevenK: so if it did the wrong thing, we have no idea ? :)03:15
lifelesslet me give it some eyeballing03:15
lifelessok, I **think** it will be ok03:17
StevenKRight, it is just duplicating the data and then picking one of the BMPs as a victim03:18
StevenKAnd we have 2 previewdiffs that are lucky and linked from 3 BMPs03:19
StevenKSo we'll have to run it twice03:19
StevenKlifeless: If you'd prefer, I'm happy to perform some validation on DF after lunch?03:23
lifelessthat would give me some comfort yes03:24
lifelessits just a little too large to visually confirm03:24
bigjoolswe need a "pebkac" bug status03:25
lifelessStevenK: like, check it really only updates one of them, not both sides03:25
stublifeless: it does, because the final update will fail because the id column is unique and it matches with the = operator.03:52
StevenKlifeless: http://pastebin.ubuntu.com/1225881/03:57
stubStevenK: Want me to run it?04:04
StevenKstub: I was happy enough to go through webops, but please do.04:05
StevenKstub: You'll need to run it twice -- two lucky previewdiffs are linked to 3 BMPs04:05
stubStevenK: Done. 35 rows fixed, then 2 in the second run04:07
StevenKstub: Fantastic, thanks.04:08
wgrantStevenK, stub: Thanks04:24
wgrantThe broken MPs are no longer broken.04:24
StevenKIt should makes the OOPS report a bit happier too04:24
wgrantStevenK: Were you going to look at the Builder:+history regression, or should I fix it?04:25
StevenKwgrant: Can you remind me of that Builder:+history regression and your thoughts on it?04:25
wgrantStevenK: The OOPS I pointed out this morning. If you look at Builder.getBuildRecords, you'll see it uses a different method if a name filter is specified.04:26
wgrantBinaryPackageBuildSet.getBuildsForBuilder returns an SQLObjectResultSet, which SRF chokes on04:26
wgrantSo we just need to Stormify BinaryPackageBuildSet.getBuildsForBuilder04:27
wgrantProbably about 5 minutes of work :)04:27
wgrantPlus DEATH TO SQLOBJCT04:27
wgrant+E04:27
StevenKwgrant: No point for a test, just make it Stormier?04:28
wgrantI think so.04:28
StevenKwgrant: Did you see buildbot is still full of hate and not love?04:28
wgrantAlthough a test could be done in about 4 lines.04:28
wgrantStevenK: A second spurious rabbitmq failure? Yeah04:28
wgrantA bit odd04:28
wgrantBut we'll see if it happens again04:28
StevenKwgrant: It's a bit more than 5 minutes.04:33
StevenKBinaryPackageBuildSet.handleOptionalParamsForBuildQueries() is disgusting04:33
wgrantOh, I missed that call04:34
wgrantBut it's not that bad04:35
wgrantThe only issue is that you probably have to port the rest as well04:35
StevenKYes04:35
wgrantThat's only two other methods, luckily04:35
StevenKDidn't we write a Storm archive privacy method?04:40
* StevenK tries to remember04:40
lifelesswgrant: a little more context when downgrading importance would be lovely04:43
lifelesswgrant: it would avoid questions like 'why isn't it critical', which I might otherwise ask04:44
wgrantlifeless: The only questionable things I've downgraded are the crashes in ec2 demo04:45
wgrantAFAICR04:45
lifelessyah04:45
lifelessjust a -little- context, is all I'm asking for04:45
wgrantI decided that nobody cares about ec2 demo apart from jml, and it's never been reliable, so it's probably not worth a critical04:46
wgrantOr two04:47
lifelesssure04:47
lifelessbut all folk like me see04:47
lifelessis 'critical->high'04:47
lifelesswith no more info at all04:47
wgrantTrue04:47
lifelessnot even the fact its ec2 demo vs ec2 land04:47
lifelessso just saying 'ec2 demo is a best effort subproject - not treating as critical' would be more than enough04:48
wgrant[Bug 993300] Re: Error in apache config during ec2 demo04:48
_mup_Bug #993300: Error in apache config during ec2 demo <ec2> <Launchpad Developer Utilities:Triaged> < https://launchpad.net/bugs/993300 >04:48
wgrantIt says "demo"04:48
wgrantbut k04:48
StevenKwgrant: Holy crap, I think I win05:34
wgrantStevenK: What have you broken?05:38
StevenKwgrant: 3 files changed, 74 insertions(+), 91 deletions(-)05:38
StevenKIt almost works05:38
wgrant:( +7405:39
lifeless-9105:39
wgrantSure05:40
wgrantBut normally if I frown at him he gets it even more negative05:40
StevenKIt only works sometimes.05:41
* StevenK tries to work out where builder fits in05:41
=== jtv1 is now known as jtv
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/stormier-getbuildsforbuilder/+merge/12615906:10
wgrantStevenK: Looking06:12
=== danilo_ is now known as danilos
=== almaisan-away is now known as al-maisan
StevenKwgrant: So, I was happy to move that into get_archive_privacy_filter, but BFJ's usage of it wants Or(PackageBuild.id == None, <archive privacy stuff>)06:46
wgrantStevenK: Does it want it?06:47
wgrantor is it a bug?06:47
StevenKI don't think it is06:48
wgrantWhy does BFJ's usage of it want that?06:49
wgrantOh, I misread06:49
wgrantSurely BFJ also wants the admin/anon special cases?06:49
StevenKIt has it!06:49
wgrantStevenK: And how does it differ?06:51
StevenKclauses.append(Or(PackageBuild.id == None, Not(Archive._private)))06:51
StevenKThat's the user is None case for BFJ06:51
StevenKclauses.append(Not(Archive._private))06:51
StevenKAnd the one I added in the branch06:52
wgrantOK, I'm confused06:52
wgrant"I was happy to move that into get_archive_privacy_filter"06:52
wgrantWhat is "that"?06:52
StevenKI could hack around it by doing if clause: return Or(clause, filter) else return filter06:52
wgrantStevenK: BuildFarmJobSet.getBuildsForBuilder does the same thing, except in the admin case07:03
wgrantAnd get_archive_privacy_filter should return True for an admin07:03
wgrantSo the admin case will be Or(PackageBuild.id == None, True)07:04
wgrantWhich should perform fine07:04
StevenKwgrant: http://pastebin.ubuntu.com/1226047/07:09
StevenKIt doesn't fix the LIKE bit yet07:09
StevenKOr my indentation sins07:09
StevenKwgrant: origin = [PackageBuild] is because it's always used whereas the old code pulled it in later07:11
wgrantk07:11
StevenKHmm, why is where wrapped in brackets with no comma or line wrap07:12
wgrantStevenK: I'm not sure it's worth having that clause arg07:12
StevenKwgrant: You'd rather toss Or(PackageBuild.id == None, ...) into BinaryPackageBuild's callsite too?07:13
StevenKEven though it wasn't there before07:13
wgrantStevenK: SOmetimes people (eg. me, sometimes) wrap 'where=Foo.bar == baz' in parens07:13
wgrantTo make it less ambiguous07:13
StevenKFair enough07:13
wgrant'cause it really looks like the = should bind tighter there07:13
wgrantBut it doesn't07:13
StevenKTrying to work how you'd prefer the filter = [ block to be indented07:13
wgrantWhich?07:14
wgrantIn get_archive_privacy_filter?07:14
StevenKYeah07:14
wgrantThe second element of the list is indented further than the first07:14
StevenKOh, duh07:15
wgrantWhich doesn't make much sense07:15
wgrantYeah07:15
wgrantStevenK: So, back to PackageBuild.id == None: no, I would include PackageBuild.id == None in BFJS as we do today07:15
StevenKwgrant: So, PackageBuild.id == None into BinaryPackageBuild's callsite?07:15
wgrantSo it becomes Or(PackageBuild.id == None, get_archive_privacy_filter(user))07:16
StevenK*get_archive_pri ...07:16
StevenK:-)07:16
wgrantNot if it returns an Or, no07:16
StevenKIt wasn't07:16
wgrantIt wasn't, no07:16
wgrantBut it should07:16
StevenKOr() doesn't make sense for the BPB case07:16
wgrantIt should return Not(Archive._private), or True, or Or(Not(Archive._private), Archive.ownerID.blah)07:17
wgrantI think07:17
wgrantWhy not?07:17
StevenKOh, hmm07:17
StevenKwgrant: Wait, what about Or(PackageBuild.id == None, Or(...)) ?07:18
wgrantWhat about that?07:18
wgrantIt's arguably slightly ugly, but meh?07:18
StevenKSorry, is having the or's nested a bad thing?07:18
wgrantOnly if you consider nested ORs to be a bad thing.07:19
wgrantAnd I don't see why you would07:19
StevenKwgrant: http://pastebin.ubuntu.com/1226063/07:21
wgrantStevenK: Looks reasonable. There's no other admin/anon specialcases in the callsites that you can eliminate?07:26
StevenKNot that I can see.07:27
wgrant:(07:27
StevenKHowever, I'm going to actually stop work and do the LIKE stuff tomorrow07:27
wgrant:)07:27
StevenKSo I'll have a dig to see if that function can be grafted into other sections of the code.07:27
StevenKAnd it will be glorious, etc, etc07:28
adeuringgood morning07:33
lifelessright now, what was I doing this morning? Thats right, I was doing a plugin for bzr07:45
* lifeless writes some code07:45
StevenKlifeless: The morning may have gotten away from you.07:47
lifelessrather07:47
czajkowskiwallyworld: I see you're working on the text for the commercial email, I have an action item to add some text to that could you point me in the right direction please?08:10
wallyworldczajkowski: sure. the change has landed already and is awaiting deployment. the file i edited is product-commercial-subscription-expired-open-source.txt in email templates08:11
wallyworldis this the one you want?08:12
wallyworldczajkowski: there's a few other templates in the same directory as well08:12
czajkowskiwallyworld: not done this before, basically looking for the mail that is sent to a person after they purchase a subscription so I can add the launchpadstatus feed links on identi.ca/twitter and our blog url08:12
wallyworldfor other commercial emails of various sorts08:13
czajkowskinods08:13
wallyworldczajkowski: ok, let me find the template08:13
wallyworldczajkowski: product-license-other-proprietary.txt is sent when a project is first created with a proprietary licence and gets an initial 30 day subscription, but just right now, i can't find what is sent when a subscription voucher is redeemed08:17
=== allenap` is now known as allenap
wallyworldczajkowski: if you overlap with sinzui, he will likely be able to tell you immediately where to look. if if you have a bit of text from an email, i can search for it08:18
czajkowskiwallyworld: I dont but will do in a bit thanks for the help, also see pm for other bit08:21
=== jam1 is now known as jam
lifelesswow09:11
lifelessI can't get used to this fast buildbot ;)09:11
czajkowskiheh09:12
mgzI'd say you've been working on launchpad for too long, BUT THAT'S NOT TRUE ;_;09:12
mgzmoving back to a bzr-pqm style landing would be nice, rather than the current complications09:13
StevenKmgz: Purple has been talking about it09:16
mgzI trust purple.09:16
StevenKMeans ec2 can just go and die too09:16
lifelessJ09:16
lifelessE09:16
lifelessN09:16
lifelessJ09:16
lifelessI09:16
lifelessN09:16
lifelessS09:16
lifeless*FFFAAARRRXXXXX* at the typo.09:16
mgzehehehe09:16
czajkowskiLOL09:16
StevenKlifeless: Sounds good. Get me hardware and I'll break my back to set it up?09:16
lifelessStevenK: we have the hardware now; prae as master and commander, huey and dewie as slaves09:17
StevenKlifeless: I have a plan in the next few days to look at configuring and ec2 instance with LXC as an ssh slave and make sure Jenkins can drive it09:18
wgrantyeah09:21
wgrantWe discussed on the call this morning about setting up Jenkins to do pre-merge testing using the existing slave setup09:21
nigelbthe server names are getting quite hilarious :P09:28
StevenKnigelb: huey and dewie are not the real names09:28
StevenKAnd prae is praseodymium09:29
nigelbOh boy09:29
nigelbI hope the names don't match up to some sort of internal DNS. That's a hard to type name ;)09:29
mgzwe have codenames for codenames around here,09:29
lifelessnigelb: they do.09:30
nigelblifeless: oh dear09:30
StevenKAwww, leningradskaya no longer resolves09:31
StevenK(yes, real server name)09:31
lifelessnigelb: we just call it praë09:31
nigelbStevenK: *snicker*09:31
StevenKnigelb: So there's this thing, called tab complete?09:32
nigelbHah.09:32
StevenKssh running under zsh will tab complete from known_hosts and .ssh/config09:33
lifelessthere is a helper09:33
nigelbtrue true. I use it all the time.09:33
lifelessthat knows about all hosts09:33
lifelessfor Canonical09:33
nigelbOooh.09:33
lifeless(internal only)09:33
lifelessI don't know if the engine code for it is open - haven't checked. I don't think its super deep though, you can probably invent the same for whereever you are quite easily.09:34
lifelessbzr tree, metadata populated by sysadmins, pull and run make.09:34
nigelbah interesting.09:35
nigelbI've not yet worked with organizations that's gotten into > 30 servers.09:35
StevenKAhh, well ....09:35
StevenK:-)09:35
nigelbYEah, small time :P09:36
cjwatsonFWIW, in grumpy mode: I find the business of slang names for servers makes things very difficult to follow; there are times when it's taken me months to realise that what I thought were two different servers people were talking about was actually just one.  Much as I object to the pervasive coining of new initialisms in Ubuntu-land which also confuse newcomers, so it's probably a lost cause ...09:38
wgranthuey and dewie are sluagh and radande :)09:44
wgrantAnd prasé is praseodymium09:44
=== frankban changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: frankban | Firefighting: - | Critical bugs: ∞
=== al-maisan is now known as almaisan-away
rick_h_morning10:56
wgrant311:07
rick_h_211:08
rick_h_111:08
* rick_h_ wonders what happens now11:08
czajkowskibreakage11:08
lifelesswgrant: lp:~lifeless/+junk/bzr-mkghosts11:25
lifelesswgrant: You should be able to figure it out from that11:25
=== almaisan-away is now known as al-maisan
=== rick_h_ changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: frankban, rick_h | Firefighting: - | Critical bugs: ∞
sinzuiczajkowski, Lp does not send out email to people who purchase subscriptions. Lp is not the store or salesforce. Lp send emails when the user selects a special licence, or the commercial subscription expires12:21
czajkowskisinzui: right but I'm looking to add launchpadstatus and blog.launchpad.net urls to *some* mail12:54
czajkowskiwhich would you suggest12:54
sinzuiczajkowski, I am not sure. Lp doesn't send out emails to people who register projects or teams or join Lp, which happens to be the only cases I think users would want to be reminded up status information12:56
czajkowskisinzui: the logic behind this was I talked to mrevell about how our commercial owners may not know about lpstatus such as build issues or downtime, and we should possibly link them in one of the mails12:57
czajkowskiso they can reference them12:57
sinzuiwell12:58
sinzuiwe do not have such an email for customers12:58
czajkowskihmm ok12:58
sinzuiI suggest the warning email we send to users who select the three odd licenses. The email explains Lp's policies about open source projects12:59
czajkowskiok thanks12:59
sinzuiczajkowski, lib/lp/registry/emailtemplates/product-license-other-proprietary.txt is sent to the user who chooses Other/Proprietary from the licenses13:01
sinzuiczajkowski, this is the text: http://pastebin.ubuntu.com/1226560/13:02
deryckabentley, adeuring, rick_h_ -- don't forget to tag any cards review that we should look at today.13:28
czajkowskideryck: just the person, on the last call we had I said i could do some testing re bp, can you point me in the right direction if it;s ready13:43
=== mpt_ is now known as mpt
deryckczajkowski, hey, sorry, was on call.....14:14
deryckczajkowski, so I think the idea would be that you play with privacy on blueprints and see if it works like you expect or if you have questions about it....14:14
deryckczajkowski, I assume matsubara will do more exploratory testing, actually trying to get it to break.14:15
czajkowskinods ok14:15
deryckczajkowski, thanks!14:15
adeuringfrankban_, rick_h_: could one of you please review this MP: https://code.launchpad.net/~adeuring/launchpad/revokeAccessGrants_specs/+merge/126261 ?14:46
rick_h_adeuring: will do14:46
adeuringrick_h_ thanks!14:46
rick_h_adeuring: r=me with one typo in comment14:53
adeuringrick_h_thanks!14:53
=== al-maisan is now known as almaisan-away
sinzuijcsackett, do you have time to lp-land https://code.launchpad.net/~jcsackett/launchpad/rip-out-portlet15:01
rick_h_czajkowski: how about http://ubuntuone.com/4TlJf9tXAV2NDiJvi2i91v as an image or too technical and I should see if we can use the YUI logo or something15:02
czajkowskicool15:02
czajkowskirick_h_: thanks15:02
rick_h_czajkowski: so will get feedback from deryck and I'll get with you to put something together to the world.15:03
rick_h_thanks for the help/advice!15:03
czajkowskiperfect15:03
czajkowskijust an image helps when we share it on places15:03
czajkowskidefault will pull in the lp image15:03
rick_h_k15:04
deryckrick_h_, so generally, I like the post very much.  I'm not crazy about the double use of the word modern or modernize....15:06
deryckrick_h_, I would describe what we had before as ancient. :)  I think it's more like "bleeding edge" now or "easier to keep pace with YUI updates" or something like that.15:06
deryckwouldn't describe, I meant15:06
rick_h_deryck: sure15:07
rick_h_deryck: how about just 'update'15:07
deryckrick_h_, yeah, that works.15:08
deryckit was just crusty technically what we had before, but it wasn't not-modern, IMO.15:08
rick_h_yea, I was just thinking of things like the Y.App more 'modern front end' kind of stuff.15:09
rick_h_but that's why I get you all to sanity check me :)15:09
rick_h_http://paste.mitechie.com/show/La3GvwYPeAqqtNralwCs/ tweaked and 'updated' and 'new'15:09
deryckyeah, I followed what you meant.15:09
derycklooking now....15:09
deryckrick_h_, much better.  a final language nit-pick... combo'd could be expanded to comboed, or else rewritten as "combo-loaded"15:11
rick_h_deryck: yea, thanks much better as combo loaded15:12
rick_h_czajkowski: ok, so updated text, added some links, and make the paragraphs one line to be more WP friendly http://paste.mitechie.com/show/1nO5FCkCr2lT0viQfJx4/15:21
rick_h_czajkowski: let me know if there's anything else you need on your end and thanks!15:21
czajkowskirick_h_: do you want me to add it t the blog ?15:22
rick_h_czajkowski: yes please15:22
rick_h_czajkowski: or do I have access? I guess I didn't look if I had access to the blog15:22
czajkowskistabs 2FA!!!15:24
rick_h_czajkowski: yea sorry I can log in but don't seem to have any access. If you could post it would appreciate it15:25
czajkowskiI want to find the person who's bright idea was t have it on all the time and make sure they dont ever get beer!15:25
czajkowskirick_h_: so if you sign in and create a user I can then make you and admin15:25
czajkowskiall LP devs should be able to write posts15:25
rick_h_czajkowski: ok, I did create a user account15:25
rick_h_if you can add me I'll post it and not bug you :)15:25
czajkowski2 ticks15:26
czajkowskiI need to find you first15:26
rick_h_rharding? Richard Harding, something like that I'd imagine15:26
czajkowskiahh I was looking under rick_h_15:26
czajkowskiyou're admin now15:27
rick_h_ty15:27
czajkowskinp :)15:27
jcsackettsinzui: i was fixing an issue with my colo-repo; looks like you landed it for me?15:54
sinzuiyes15:55
jcsackettsinzui: ok.15:56
sinzuijcsackett, I suck. There are two failures that look real, but ec2 test did not see them.16:00
sinzuijcsackett, I will fix them since I landed it16:01
jcsackettsinzui: you got caught by something i had been working on -- i had noticed just a handful of references to the db_column and was cleaning them up, but apparently failed to mark the MP back to WIP.16:02
sinzuioh bugger, we exported that attr.16:03
sinzuiI may need to put it back16:03
czajkowskisinzui: any idea why this person is rnning into this issue reporting a bug....https://answers.launchpad.net/launchpad/+question/20953716:03
sinzuiczajkowski, no idea since the oops is not there. I suggest runing `ubuntu-bug  initramfs-tools-bin`16:07
sinzuioh, maybe it is because you need registered gpp-keys to use bug mail16:07
sinzuiczajkowski, we silently drop mail from unknown/unverified senders because it is a huge spam vector16:08
czajkowskisinzui: he's submitted bugs before so was confused16:08
czajkowskisually if you get a n oops when reporting the bug, it still gets reported16:09
sinzuijcsackett, date_next_suggest_packaging is a very obscure attr. I really doubt anyone knows it exists.16:13
jcsackettsinzui: it wasn't exported for a particular version of the API; does that default to beta or devel?16:14
sinzuijcsackett,  https://launchpad.net/+apidoc/1.0.html16:14
sinzuiit is listed as 1.016:15
jcsackettsinzui: which means we can't just remove it.16:15
jcsacketti have a branch that adds it back in.16:15
sinzuioh16:16
sinzuiso I could just land the two test fixes, then you can add an empty attr to support the dead api16:16
jcsackettsinzui: empty attr?16:16
sinzuijcsackett, the attr can return None. We are going to remove the column from the db because Lp does not use it16:17
jcsackettsinzui: ah, so on the model make it an @property that just returns None.16:17
deryckabentley, adeuring, rick_h_ -- just a heads up, I'm going offline for lunch here shortly, to switch back to the house for the rest of the day.16:18
rick_h_deryck: rgr16:19
sinzuijcsackett, we may need a setter to that is silently ignored16:19
jcsackettsinzui: branch updated.16:21
sinzuioh, you have a fix? which branch?16:21
jcsackettsinzui: https://code.launchpad.net/~jcsackett/launchpad/fix-rip-out-portlet/+merge/12628816:22
sinzuiwell we want to ripput the tests that want dates too16:23
* sinzui may have the patch for that.16:23
jcsackettsinzui: but this doesn't address test failures, just the atter.16:23
jcsackettright.16:23
* sinzui running the tests16:25
sinzuijcsackett, I can land my branch now to fix the suite, or you can merge my patch and gamble lp-landing it.16:27
jcsackettsinzui: link?16:27
jcsackettlet me merge it and run the two tests on my machine.16:27
=== Ursinha is now known as Ursinha-afk
sinzuijcsackett,  the description for the attr shoulr state it is obsolete16:28
* deryck goes offline for lunch now16:28
sinzuijcsackett, http://pastebin.ubuntu.com/1226941/16:28
sinzuijcsackett, your addition though restores the webservice test I changed16:28
jcsackettsinzui: bloody hell. ok, land yours to unbreak buildbot. i'll resolve the API attr issue separately.16:29
jcsackettthis is getting too tangled.16:29
sinzuiokay16:29
sinzuijcsackett, so I think think happened because you reused your branch for changes after I did the review16:33
jcsackettsinzui: you are correct; i meant to put the MP back into WIP when i noticed (what i thought) were just two more lines that needed removal.16:34
sinzuijcsackett, if you want to reuse a branch, you need to delete the review or change the status back to WIP16:34
sinzuiyes, we agree16:34
sinzuijcsackett, I think the revised description should be "Obsolete. The date to resume Ubuntu package suggestions."16:36
jcsackettsinzui: sounds good.16:36
sinzuijcsackett, merge trunk and put back the webservice test change in http://pastebin.ubuntu.com/1226941/16:38
sinzuiI think everything will pass16:39
czajkowskirick_h_: nice your blog post is being reshared lots16:40
rick_h_czajkowski: yay!16:41
rick_h_now back to my coding hole for the rest of the year16:41
czajkowskirick_h_: tis ok 2013 is close by you can do another post then16:41
jcsackettsinzui: https://code.launchpad.net/~jcsackett/launchpad/restore-date_next_suggest_packaging/+merge/12629316:56
sinzuijcsackett, r=me17:00
jcsackettsinzui: given the fun we just had, i'm ec2ing just to be sure. it is out now.17:01
=== matsubara is now known as matsubara-lunch
daniloswallyworld, you've got mail (if it goes through, maybe you don't)17:26
=== Ursinha-afk is now known as Ursinha
=== matsubara-lunch is now known as matsubara
rick_h_jcsackett: got a sec?18:55
jcsackettrick_h_: probably. what's up?18:55
rick_h_https://code.launchpad.net/~rharding/launchpad/info_type_events/+merge/12631718:55
rick_h_want to get eyeballs on my thoughts for the information type banner event setup18:55
rick_h_see #324 in that diff18:55
rick_h_and then #295 for using it in the privacy banner and let me know if that makes sense?18:56
jcsackettrick_h_: looks like we're showing on public and hiding on private...should be the reverse, right?18:57
jcsackettotherwise this looks sensible, though there is a missing step to make sure the banner updates with the correct text.18:57
jcsacketti suppose that could just be another thing listening for the change event.18:58
rick_h_jcsackett: the privacy banner doesn't have the text does it?18:58
rick_h_that's the beta one?18:58
jcsackettrick_h_: they both have text.18:58
jcsackettprivacy banner says stuff like "this bug is proprietary" or "this bug is private security."18:59
rick_h_jcsackett: ah ok so the updateText is manually called18:59
rick_h_right so I need to find the locations of that and get that into this loop18:59
jcsackettrick_h_: and privacy banner is also used on +filebug and when a bug is first filed with messages that say the type is blah b/c blah.18:59
rick_h_no, right, I was only looking at the PrivacyBanner implementation and missed that. Cool thanks18:59
jcsackettrick_h_: you're welcome.19:00
jcsackettrick_h_: i really like the update to use events. wanted something like that done when we started with the information type transitions but the todo got lost in the shuffle.19:00
rick_h_jcsackett: right, so then the choicewidget will be setup to fire an information_type:change event with the new value19:01
jcsackettrick_h_: right, that's very cool.19:01
rick_h_and everyone else can listen for is_public/is_private to show/hide unless they need the value19:01
jcsackettmuch better than the callback madness.19:01
rick_h_then they can watch change itself I think19:01
=== rick_h_ changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: | Firefighting: - | Critical bugs: ∞
=== rick_h_ changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: ∞
=== mordred is now known as mtaylor
=== mtaylor is now known as mordred
rick_h_jcsackett: sinzui was "    ForbiddenAttribute: ('date_next_suggest_packaging', <Product at 0x1bb7ac50>)" related error stuff the things you guys fixed today?20:52
rick_h_my ec2 landing failed with some strange doctests and wondered if it's just a matter of pull trunk and resubmit again20:52
=== gary_poster is now known as gary_poster|away
sinzuirick_h_, that was bad timing.21:07
sinzuirick_h_ I landed a test fix for it, jcsackett is landing a branch that puts it back for API 1.021:07
rick_h_sinzui: ok, thanks. I'll keep an eye out for jcsackett's branch then and retry.21:22
sinzuirick_h_: you can land now. I landed the test fix and just qaed work from both our squads21:23
rick_h_sinzui: gotcha, landing away then. Thanks21:24
sinzuirick_h_, jcsackett's branch is in builbot now actually21:26
rick_h_sinzui: ok cool. Since it seems the only failures were there I sent it to buildbot and I'll see where it goes.21:27
rick_h_I'm getting good at lp-land hah21:27
lifelessflacoste: catchup tomorrow I guess ?22:38
wgrantyay, masterless webapp22:45
wgrantit mostly works!22:45
lifelesswgrant: oh, for downtimes?22:46
wgrantYeah22:46
lifelesswgrant: did you see my link to the plugin ?22:46
wgrantlifeless: I did, yeah, thanks22:46
wgrantLooks pretty sensible22:46
wgrantpush doesn't populate ghosts, does it?22:46
wgrantSo we'll need to run it on the remote22:46
lifelessfetch-ghosts22:47
lifelessor use bzrlib's repository primitives directlry and do lprepo.fetch(localrepo)22:47
lifelessthat will fetch the lot22:47
wgrantRight.22:47
lifelessI'd run it on the repo on praseodymium22:48
lifelessthen use the bzrlib primitives22:48
wgrantAh, fetch-ghosts doesn't have a -d22:48
wgrantHm22:48
lifelessl = repository.Repository.open_containing('.')22:49
lifelessr = repoistory.Repository.open('bzr+ssh://...')22:50
lifelessr.fetch(l)22:50
lifeless^D22:50
wgrantYeah22:50
StevenKwgrant: I just read backscroll again and you don't mention the file to peer at for LIKE gubbins23:18
wgrantStevenK: Hm, indeed.23:22
wgrantStevenK: Distribution.searchSourcePackageCaches23:22
wgrantSearch for LIKE23:22
lifelesswgrant: btw in case it wasn't obvious, the ghosts thing is now maintenance squad prob23:27
wgrantlifeless: Yep23:34
mwhudsonwgrant: only if you don't have to think about an answer, but why is it that oauthnonce didn't get moved to memcache or something -- was it behaviour in the face of rolled back transactions?23:37
lifelessnever been a need23:38
mwhudsonmm23:38
mwhudsoni'm sure i remember some goal along those lines23:38
mwhudsonprobably confused though23:38
lifelessand retried transactions perhaps23:38
lifelessit was very high writes at one point23:39
lifelessbut not actually a problem compared to say the builddmaster23:39
wgrantRetried transactions are the big issue23:39
wgrantBut there's also the issue that nonces are pointless for our oauth implementation...23:40
mwhudsonbecause ssl?  or something else?23:40
wgrantRight, SSL23:40
wgrantI believe OAuth 2.0 actually drops nonces.23:40
wgrantBecause it's intended to be run over SSL23:41
lifelessOAuth 2 does a lot of things23:41
wgrantLots of things do a lot of things :)23:41
mwhudsoni find the security aspects of oauth 1 to be a bit .. odd23:41
mwhudsonlike not signing the body23:41
wgrantRight23:41
wgrantOAuth 1 is pretty stupid23:41
wgrantIt's from back in the days when people didn't believe that SSL everywhere would work23:41
wgrantBut Launchpad always has, so OAuth 1 was a Bad Idea™ for us23:42
wgrantWe use plaintext signatures, so if you sniff the request you can just replace the nonce and it'll still work...23:43
mwhudsoncould launchpad just ignore the nonces then?23:43
wgrantRight, that's what it's tempting to do after thinking a bit more.23:43
mwhudsoni know nonces in general allow the client to make some decisions about whether to retry a failed request23:43
mwhudsonbut well, http also does that i guess23:43
lifelesser23:44
lifelessthey are solely for replay attack prevention23:44
lifelessimagine you have an API 'delete 6 months of audit history'23:44
wgrantYeah, they're nothing to do with client retries23:44
wgrantIt's just replays23:44
lifelessyou don't want that played at an attackers convenience23:44
wgrantWhich SSL does already23:44
mwhudsonlifeless: i understand that that's the main point yes23:44
lifelessmwhudson: s/main/entire/ :)23:45
lifelesswgrant: SSL isn't that robust, sorry.23:45
mwhudsonsomeone once claimed to me that in a protocol that uses nonces, you can always retry a request if transmission failed23:45
lifelesswgrant: MITM in corporates is all over the place, and on some country levels too.23:45
mwhudsonbecause it will get NACKed by the server if it did in fact get through23:45
wgrantlifeless: We use plaintext sigs23:45
mwhudsoni wasn't entirely convinced by this :)23:45
lifelessmwhudson: they give you a mechanism that HTTP doesn't intrinsically provide, for once and only once.23:46
mwhudsonlifeless: right23:46
lifelessmwhudson: but then so do any of a range of other layer-on-http tools, and I wouldn't want to conflate the two things.23:46
wgrantlifeless: SSL/TLS prevent replay attacks unless someone is MITMing your crypto23:46
lifelesswgrant: right, which is widespread.23:46
wgrantAnd if someone's MITMing it that badly, then they can just get the secret23:47
wgrantAnd re"sign" a new request with a new nonce23:47
lifelessif you generate the secret on the server, yes.23:47
wgrantHuh?23:47
lifelesswgrant: DH is all about avoiding that attack.23:47
wgrantYes23:47
lifelesswgrant: on the MITM side, see e.g. 'sslbump' in squi.23:47
wgrantSure23:47
wgrantBut if your SSL is MITMed then you're screwed anyway23:48
wgrantA nonce doesn't help you if you're sending the secret plaintext over the SSL stream23:48
wgrantBecause the attacker just grabs the secret and uses it to sign the new request23:48
wgrantWe can't pretend to defend against successful SSL MITMs.23:48
lifelessthats why you don't send the secret over the SSL stream, see above under DH23:48
lifelessI'm not saying what we do is good.23:49
wgrantBut OAuth doesn't use DH...23:49
lifelessI'm saying that MITM'd SSL isn't the end of the world.23:49
lifelesswgrant: I know.23:49
wgrantFor our current implementation, MITM'd SSL is the end of the world23:49
lifelesswgrant: Have you heard me say 'Oauth is wonderful' recently?23:49
wgrantOAuth 1's nonces are attempting to defend against MITM'd SSL23:49
wgrantSo they're useless23:49
lifelessof course, it got more fun with the oauth dude spitting the dummy23:50
wgrant09:44:40 < wgrant> It's just replays23:50
wgrant09:44:43 < wgrant> Which SSL does already23:50
wgrant09:45:15 < lifeless> wgrant: SSL isn't that robust, sorry.23:50
mwhudsonif you can mitm ssl you can probably get your hands on the session cookie, which is way easier to abuse :)23:50
wgrantOr do you mean in general for OAuth, not for us?23:50
wgrantmwhudson: Exactly23:50
wgrantIn our implementation, if SSL's replay protection is bypassed then we're entirely screwed anyway23:51
wgrantI think it's pointless for OAuth to try to defend against SSL MITMs, because if you're trying to do that then you'r probably better off using a hardcoded cert anyway23:52
StevenKwgrant: http://pastebin.ubuntu.com/1227650/23:53
wgrantStevenK: %%%%%%%% Right.%%%%%%%%23:53
StevenKHaha23:54
lifelessmwhudson: one word, CRIME.23:57
wgrantWell, yeah23:58
wgrantBut it doesn't impact replays23:58
wgrantJust... everything else23:58
StevenKwgrant: Tossing that branch at ec2.23:59
StevenKJenkins after breakfast23:59
bigjoolscan someone help me work out why one of my LP users is getting MP email please?  I have an account "maas-lander" which is a member of "maas-maintainers" and all new MPs are emailed to it because "maas-maintainers is requested to review", despite maas-maintainers having no subscription settings.23:59

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