/srv/irclogs.ubuntu.com/2011/11/02/#launchpad-dev.txt

pooliehm00:00
poolieif i change buildrecipe into an importable module so that i can test it...00:00
pooliethat seems to have a fair risk of breaking something during deployment00:00
lifelessyes00:18
lifelessits also an entirely separate project00:18
pooliewell00:18
pooliei would like to add automatic tests for my changes00:19
lifelessjust something to be aware of00:19
pooliei guess i could add a separate landing to just make it testable00:19
poolieit seems like a high risk change so perhaps i'll just do without00:19
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: StevenK | Critical bugtasks: 266
wgrantlifeless: Thanks.00:25
wgrantStill extremely slow, but it works.00:25
wgrantlifeless: What's the production rabbit status?00:25
wgrantlifeless: And are we going to persist with rsync-based fallback, or have a disk2amqp daemon?00:25
wgrants/daemon/cronjob/, if you like.00:26
lifelesswgrant: cron job00:33
lifelesswgrant: plumbing written, just need a glue project to pull it all together (datedir repo on one hand, amqp on the other)00:33
lifelesswgrant: see oops-datedir-repo 0.0.1000:33
wgrantWe should also ensure that the config name and tree base and script name are in the OOPSes, and then nuke all our OOPS configs :)00:33
wgrantAh, excellent!00:34
lifelessprod rabbit is pending firewalls and tuolumne and nagios etc00:34
lifelessI've an rt up for migration to this including moving to a shared local-oops dir for all servers00:34
wgrantGreat.00:34
lifelessbeuno is champing at the bit to get this for u1 ;)00:35
spmi think the firewall's been done. was some chatter around that recently.00:35
beunoYES00:36
lifelesslooks like it00:36
wgrantWe also need a better way to handle rabbit passwords.00:36
wgrantCurrently they're in the LP configs, which won't really do.00:36
lifelessso yes, we're ready to receive prod oopses over rabbit when the rest of the bits come together00:36
wgrantWe probably need to read them from some other file.00:36
lifelesswhats the issue ?00:36
wgrantConfigs are widely accessible, and the rabbitmq instance is accessible from more than just production LP servers.00:37
lifelessyou mean 'someone could connect and either consume or inject inappropriate messages' ?00:37
wgrantyes.00:37
lifelessso, moving oops-tools to its own box will help there00:38
wgrantIndeed.00:38
lifelessalso we need to make sure the lp rabbit user has narrow perms00:38
wgrantBut we should be treating our message queue like we treat our DB, I think.00:38
lifelessI haven't checked on that00:38
wgrantGood luck with that...00:38
wgrantHow do you propose to do that?00:38
wgrantIt basically needs to be able to write to everything.00:39
lifelessnot at all00:39
wgrantAnd eventually read lots of things too, probably.00:39
lifelesswrite to oopses, create and write to longpoll.*, read from nothing, admin nothing.00:39
lifeless(today)00:39
lifelessthats pretty narrow00:39
wgrantToday.00:39
lifelessand as it changes, we can change it.00:39
lifelessbbs00:39
poolielifeless, i commented on https://code.launchpad.net/~mbp/launchpad/bug-width/+merge/8016100:42
pooliewgrant: do you have any idea how buildrecipe gets installed, or where it gets renamed to buildrecipe.py?00:45
StevenKIt's probably contained in lp-buildd00:45
StevenKSo the build machinery of lp-buildd likely renames it00:45
poolieand that's not in the lp tree?00:46
poolieapparently not public ?00:46
StevenKIt is, lib/canonical/buildd00:46
wgrantpoolie: I don't think it actually does get renamed.00:46
wgrant[sourcepackagerecipemanager]00:47
wgrantbuildrecipepath = /usr/share/launchpad-buildd/slavebin/buildrecipe00:47
poolieStevenK: i don't see anything in there that renames it00:47
wgrantargv[0] might be buildrecipe.py, but I think it's a lie.00:47
poolieyes!00:48
pooliejust realized the same thing00:48
poolie:/00:48
poolieStevenK: hi01:11
poolieyou don't need to write a lep for my sake01:12
pooliejust a 'i'm planning to do X' on the bug would be ince in general though01:12
poolieshort review on https://code.launchpad.net/~mbp/launchpad/884997-rusage/+merge/80971please anyone?01:27
wgrantlifeless: Did you change the uppercasing rule part-way through yesterday?01:57
wgrantSome of the hashes are allcaps, some are not.01:57
lifelessin the db ?01:58
lifelessor as reported to users? the latter is hashlib variations01:58
wgrantDB, I assume.01:58
wgrantIt's in the reports.01:58
lifelesshmm, odd. Possibly dboopsloader needs a fix too.01:58
lifelessI shall check.01:58
wgrantAh01:59
wgrantCould be.01:59
lifelessyeah, from_pathname needs a fix02:01
lifelesscowboyed02:02
lifeless=== modified file 'src/oopstools/oops/models.py'02:02
lifeless--- src/oopstools/oops/models.py        2011-10-31 02:07:24 +000002:02
lifeless+++ src/oopstools/oops/models.py        2011-11-02 02:02:03 +000002:02
lifeless@@ -476,6 +476,7 @@02:02
lifeless         oopsid = parsed_oops.get('id')02:02
lifeless         if oopsid is None:02:02
lifeless             raise OopsReadError('Not a valid OOPS report')02:02
lifeless+        parsed_oops['id'] = parsed_oops['id'].upper()02:02
wgrantThanks.02:05
wgrantlifeless:        1 https%3A//launchpad.net/ubuntu/%2Bsource/oops/1.5.23.cvs-5.1/%2Bbuild/390896/%2Bindex (BinaryPackageBuild:+index)02:08
wgrant        OOPS-48d0191b7ac2d3136e4bd47d385fceb702:08
wgrant       1 https://launchpad.net/ubuntu/+source/oops/1.5.23.cvs-5.1/+build/390896/+index (BinaryPackageBuild:+index)02:08
wgrant        OOPS-2131AU2302:08
wgrantNew URLs are excessively URL-encoded.02:08
lifelessI was afrait of that02:17
lifelessI think I mentioned it02:17
lifelessprobably need an LP change - I suspect its emitting them as unicode02:18
poolieis this pqm rejection lp's way of telling me you're only taking rc fixes?02:52
poolieno02:52
wgrantpoolie: It's because we're in testfix.03:01
poolieand is that advertised anywhere?03:01
StevenKNo, because PQM sucks.03:01
pooliei thought people used to put it in the topic here or something03:02
poolieanyhow, np, just glad it's not my branch03:02
wgrantlifeless: Around?03:27
lifelessyas03:29
wgrantlifeless:   File "/srv/lp-oops.canonical.com/cgi-bin/lpoops/src/oopstools/oops/models.py", line 309, in _get_oops_tuple03:30
wgrant    for key, value in req_vars:03:30
wgrantValueError: need more than 1 value to unpack03:30
wgrantBroken by a ['field.blob']03:30
wgrantWithout a value.03:30
wgrantAssume ''?03:30
lifelessugh03:31
lifelessalso win03:31
lifelessso that needs two bugs03:31
lifelessa) yes we should handle that03:32
StevenKI thought that was already done03:32
lifelessand b) we shouldn't be generating that03:32
lifelessalso c) req_vars should be a dict03:32
StevenKI remember reviewing something that did that03:32
lifelessbut there is a bug on that lready03:32
lifelessStevenK: urls03:32
lifelessStevenK: / encodings03:32
StevenKNot everything has a URL03:32
StevenKWhat do you do for script OOPS03:33
wgrantlifeless: Are you fixing the immediate issue, or should I?03:36
lifelessStevenK: I know03:45
lifelesswgrant: please do03:46
wgrantIt even works.03:47
StevenKOOPS summaries twice in one day?04:14
wgrantYes, the old ones were wrong.04:14
wgrantAnd today's are of particular interest.04:14
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: StevenK, jtv | Critical bugtasks: 266
wgrantlifeless: Is there a branch for your cowboy?04:17
lifelessnot yet04:17
lifelessif you're doing one, roll this in04:18
wgrantWas about to ask you to do the same :)04:18
lifelessI can later04:18
wgrantAlso tempting to upper() the oopsids that were imported badly.04:19
lifelessit would make them accessible04:19
lifelessthe oops table is a bit big to do it without date constraints04:19
wgrantI planned to restrict to the last few days.04:19
wgrantAll seems happy now.04:26
poolieis lp out of testfix?04:43
* StevenK becks04:43
* StevenK grumbles at his keyboard04:43
wgrantspm: Can you check if pigeonpea and pilinut need cleaning?04:44
spmyup04:44
wgrantlifeless: https://lpbuildbot.canonical.com/builders/lucid_lp/builds/1517/steps/shell_6/logs/summary looks possibly relevant to you04:45
spmthere's a bunch of oldish rabbits still running04:46
spmonly on pilinut tho04:46
spmpigeonpea looks clean04:46
wgrantDoes pigeonpea have any old pid files in /var/tmp?04:46
lifelessno old appserver processes ?04:47
spmbuildbot@pigeonpea:~$ ls /var/tmp/*.pid | wc -l04:47
spm11104:47
spmmaybe....04:47
spmnothing running as BB, just the slave itself. no old processes running.04:48
spm^^ pigeonpea; all that applies to.04:48
spmshould I assume those pids should be rm'd?04:50
lifelesspleas04:50
lifelesse04:50
wgrantYup.04:50
spmugh. pilinut is just as dirty04:50
spmany objections if I shutdown BB on pilinut and clear out the running rabbits04:51
StevenKDo eet04:51
wgrantNo need to shut it down, but sure.04:51
wgrantNo build, so shutting it down is fine.04:51
spmjust to make it easy to clear out everything04:52
wgrantWhat, kill all processes owned by the user?04:52
spmyup04:52
spmwell. more making sure I don't clobber the BB process itself hard.04:52
StevenKIt deserves it, kill it anyway04:53
spmhuh. there's 3 pgbouncers in there as well04:53
spmwas04:53
spmpilinut cleaned; pigeonpea cleaned04:53
* StevenK forces a devel builkd04:54
StevenKs/k//04:54
wgrantThanks spm.04:55
spmnp04:55
StevenKpoolie: Your branch should be fine to land now05:02
pooliethanks05:02
* StevenK sets lp-oops on fire.05:07
StevenKPerhaps SSO is to blame.05:07
wgrantStevenK: What's up?05:07
StevenKForgetting the query string when logging in.05:09
wgrantThat's apache-openid05:09
wgrantWe should work around it by not using the query string.05:09
wgrantThis isn't 1990 :)05:09
jtvwgrant: kindly refrain from ridiculing as ancient history a year that I used to look forward to as the wondrous future.05:15
wgrantBah05:16
wgrantIt predates me by a year, therefore it is ancient history :)05:16
StevenKBwaha05:16
jtvInsolent whippersnapper.05:16
jtvThis does illustrate why my quiz team lost that crucial point a few weeks back.05:16
jtvThe question: name the four horsemen of the Apocalypse.05:16
jtvI shouted “Ronnie, Paul” etc. but whispered the real names to the teammate who was doing the writing.05:17
jtvHe dutifully, but not altogether correctly, noted down:05:17
jtvHunger05:17
jtvWar05:17
jtvDath05:17
jtv*Death05:17
jtvInsolence05:18
jtvI took him to task about it afterwards, after we'd lost by 1 point.  His defense: “I'm British.  To us, Insolence *is* a horseman of the apocalypse!”05:18
* StevenK is trying to remember the four horsemen as according to Good Omens05:19
jtvHunger, War, Pestilence, Death, and Ronnie who left before they became famous.05:19
jtv(Let's not give away the rest; there may be people here who haven't read it yet :)05:21
StevenKNo, it's Pollution, since Pestilence retired in 1963 following the discovery of pencillin.05:22
jtvDamn you, Sir Alexander Fleming!05:24
jtv(Why do I remember the name?  Because the anniversary of his death was a few weeks ago, on quiz night.  It pays to look these things up.)05:25
jtvThis just in: IPCC announces the floods in Thailand were caused by Global Warming, _not_ as a naïve reader would deduct from looking at the actual numbers, from the reservoirs failing to run off excess water throughout the rain season.05:28
jtvTo understand these announcements better, replace “Science” with “God” and variants of “Climate Change” with “Satan.”05:29
nigelbI'm apparently expiring from 3 teams almost at the same time :/05:30
nigelbYay launchpad spam05:30
jtvShouldn't have joined them all in the same week.  :)05:30
nigelbYeah, regrets.05:31
jtvFunny really: apparently team memberships expire, but when we wonder if untended membership _requests_ should expire, everyone's up in arms!05:32
nigelbheh.05:33
nigelbI want to change the lies in the expiry warning email.05:36
nigelbOr a way to say "Hey, I dont care, let me expire05:36
nigelb"05:36
nigelbIf anyone else does it, I'll buy them a drink :)05:37
jtvnigelb: I must warn you about one subtlety in Launchpad, and one in the real world.05:40
wgrantjtv: Well, team memberships expire when the team admins want them too.05:40
wgrants/too/to/05:41
jtvIn Launchpad, where we say “person,” that person can also be a team.05:41
jtvAnd in the real world, champagne qualifies as a drink.05:41
jtvwgrant: that explains, thanks.05:41
wgrantWe don't just expire them by default, so you can't use that as an argument for expiring requests :)05:42
wgrantby default05:42
pooliejtv, you're feisty today05:45
jtvhi poolie!05:45
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: jtv | Critical bugtasks: 266
jtvnight StevenK05:52
nigelbjtv: hah.05:56
jtvnigelb: soooo… you just committed yourself to something that can be stretched to buying the entire team champagne.  On the bright side, that might make the search for a volunteer a little easier.  :)05:59
* nigelb whistles05:59
wgrantOur tests are crap :(06:30
spmwgrant: so. write a test to test the crapness of our tests. problem solved. /me cross arms. nods.06:36
wgrantAlso, bugtasks are the bane of my existence.06:38
=== stub1 is now known as stub
=== stub1 is now known as stub
=== stub1 is now known as stub
=== stub1 is now known as stub
nigelbwgrant: I'd argue its not bugtasks, but launchpad itself :P06:54
wgrantNah, most Launchpad stuff is fixable without incredible migration costs.06:55
wgrantThe existence of bugtasks is not.06:56
poolieok, good night all07:09
wgrantNight poolie.07:09
jtvReviewer needed for small & simple change!  https://code.launchpad.net/~jtv/launchpad/orderingcheck-unicode/+merge/8098708:17
rvbajtv: I can do it ;)08:18
jtvSo you can!  Thanks.  :)08:18
* rvba likes Unicode stuff; yummy.08:19
stubSpoken like a man with an umlaut08:20
wgrantEvening stub.08:30
stubYo08:31
jtvHi there stub — did you go back home?08:32
jtvAlso, AFAIK Raphaël does not have an Umlaut; it's a different diacritical mark that happens to look the same (unless you're Hungarian I believe, in which case you use both for their respective purposes).08:34
jtvAh: diaeresis, that's the word.08:34
jtvI think.08:34
rvbaTrue, Umlaut != Diaeresis.08:35
nigelbAll you pedantics :P08:36
jtvAn Umlaut transforms one vowel into another (a bit like the vowel changes in English, actually); this one separates two consecutive vowels, to show that they are in separate syllables.08:36
jtvNobody bothers with them now, but a few decades ago you'd still find the same mark in English: “coöperate”08:37
jtv(To show that it's co-op-er-ate, not coop-er-ate)08:37
wgrantstub: We ran into some slightly disturbing query speed issues yesterday. On qastaging, https://pastebin.canonical.com/55125/ takes <10ms to EXPLAIN ANALYZE, but 300-700ms to actually execute. On DF, it executes in <10ms too. It evaluates to [(1,)], so it's presumably not just terrible output formatting speed...08:38
jtvwgrant: too late.  I chased him off.08:38
wgrantCurses.08:38
jtv(This suggests he probably didn't go back home.  Smart choice.)08:38
wgrantAre you home?08:38
jtvNo.08:38
jtvI'm making a trip there in a few hours, but don't want to sit around consuming scarce resources I'm not helping deliver.08:39
jtvOh, done already eh?  Thanks rvba08:39
rvbanp08:40
nigelbjtv: scarce resources?08:44
jtvClean water, food, etc.08:44
jtvEven in areas that aren't affected, shops have found it difficult to keep stocks up.08:45
nigelboh.08:45
bigjoolsmorning08:50
nigelbMorning bigjools!08:51
adeuringgood morning08:52
jelmerg'morning08:54
lifeless'lo08:56
lifeless 4 / 1081  RootObject:+login09:11
=== jtv changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugtasks: 266
jelmerhmm, this is odd. one of my pending builds has an estimated start and finish time in the past. is that possible?10:28
jtvAny reviewers out there?  I need to leave soon but I have a largish branch up for review: https://code.launchpad.net/~jtv/launchpad/bug-884649-branch-1/+merge/8098810:33
bigjoolsjtv: I'll take it10:36
jtvThanks!10:36
bigjoolsjtv: why all the new tests?10:40
jtvbigjools: so we won't need to iterate through all the possibilities in the integration tests.10:41
jtvThis is stuff that couldn't be tested in isolation before.10:41
bigjoolsok10:41
bigjoolsjtv: approved10:43
jtvThanks.  That was fast!10:45
bigjoolscan I bug someone for a review please? https://code.launchpad.net/~julian-edwards/launchpad/cancel-build-bug-173018-ui-part4/+merge/8099711:34
jtvbigjools: least I can do.11:47
jtvbigjools: I guess the “Cancel build” link takes you to a confirmation form (at +cancel)?11:49
bigjoolsjtv: correct11:52
jtvI swear I don't remember a thing about menu links.  I thought a link wouldn't show up in menu.links if its "enabled" condition said it was disabled.11:53
bigjoolsjtv: menu.links is just the list defined at the top of the class11:57
jtvAh11:57
jtvbigjools: done12:00
bigjoolsthanks12:00
jtvI don't suppose python has a built-in equivalent to “lambda x: not x”?12:01
jtvActually, no, that's not what I need.  What I need is partial application of operator.not_12:01
jtvOr something.12:02
stub__builtins__.not_ = lambda x: not x12:02
jtvI was hoping to combine it with an attrgetter: filter(negate(attrgetter('my_bool_attr')), my_list)12:03
jtvFor some value of negater.12:03
benjijtv: operator.not_12:04
jtvThe problem is combining it with the attrgetter.  :)12:05
benjiah; lambda is your friend12:05
jtvOr reduce maybe12:05
jtvNo12:06
jtvSo back to partial12:06
gary_posterhey stub.  We are getting a lot of activity on pgkillactive.py.  This may be old news; I was out last week and am consumed by interviewing.  But the logs are telling us stuff like this:12:47
gary_posterKilling lpnet127 (15802), 2011-11-01 11:20:17.341629+00:00, 2011-11-02 06:57:42.661591+00:0012:47
gary_posterLocks found:12:47
gary_posterrelname, transactionid, mode, granted, current_query, query_start, age, procpid12:47
gary_posterIt's on lpnet 127, 129 and 130.12:47
gary_posterDoes that suggest an action item?  If so, has it already been taken?12:47
stubgary_poster: I spent last week in a small village 100km from the Laos border and am now encircled by flood waters. I know less than you :-)12:49
gary_posterstub, heh, ok12:49
gary_posterare things getting better or worse, stub?12:49
gary_posterfor your physical environment I mean :-P12:49
stubgary_poster: I'm still dry, and if it floods in my area I'll be fine upstairs. Official news is crap though so hard to follow.12:50
gary_postergotcha stub.  good luck.12:50
wgrantgary_poster: That was several hours ago?12:51
wgrantYes.12:51
gary_posterwgrant, yes12:51
wgrantThat was soybean wandering off into lala land.12:51
wgrantIt was powerstabbed and recovered.12:51
wgrantWe still don't really know what happened, but it wasn't an LP thing.12:51
gary_posterok thanks wgrant12:52
mrevellGuten morgen alles.13:01
nigelbBonjour mrevell13:02
timrcis the Launchpad web service going to get a 2.0 release for Precise?13:02
deryckMorning, all.13:05
abentleyderyck: morning.13:05
abentleytimrc: I'm not aware of any plans to do another stable API.  However, the devel API is improving over time.13:11
timrcabentley, okay... I wasn't sure what LTS would mean (if anything) to the web service13:18
abentleytimrc: you might want to ask lifeless for his thoughts.  He's usually around in 6-7 hours.  I have the impression that the devel service is much more popular than the 1.0 service, so stable versions may not be worth the extra effort they require.13:20
Ursinhabug 87958913:27
Ursinhawhere's the bot13:27
* nigelb pokes _mup_ 13:28
cjohnstonOne of the blueprints for a session during UDS was deleted.. do any of the devs have the ability to figure out when it was deleted13:33
jtvcjohnston: I'm not too familiar with blueprints (that'd be sinzui) but I'm not sure we normally delete blueprints at all.13:42
jtvWe have various statuses along the line of "obsolete" and "declined," and if that's what happened we may be able to learn more.13:43
cjohnstonits 404'ed13:43
cjohnstonwe figured out the issue.. so its all good13:43
mwhudsoncjohnston: it's probably been renamed13:43
jtvAh.13:43
cjohnstonthat could be too13:44
mwhudsonor retargeted13:44
cjohnstonwould it be possible to create some sort of forward for a while when they are retargeted?13:44
mwhudsonif you don't mind changing launchpad, sure!13:45
cjohnstonlol13:45
nigelbHe already has patches13:45
nigelb;)13:45
cjohnstonive already made changes13:45
nigelb6 landings I think?13:45
cjohnstonsomething like that13:45
jtvAnd yet none of them fixed your problem?  Patch harder!13:46
jtvMeanwhile, any reviewers for tiny tiny leetle branch?  https://code.launchpad.net/~jtv/launchpad/getBinariesForDomination-bulk/+merge/8102013:46
cjohnstonyup.. its a branch13:47
cjohnstonjtv / mwhudson.. for sprints (ie the current UDS) when a track lead is set as an approver.. do they get a notification and or a reminder about a  blueprint that needs to be approved13:53
mwhudsoncjohnston: don't know, sorry13:54
jtvSame here.13:54
cjohnstonanyone else know by chance?13:55
nigelbcjohnston: *cough* "Use the source, Like" *cough*13:56
cjohnstontoo much work13:56
nigelbBlueprints is probably the easiest to understand.13:57
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: abentley | Critical bugtasks: 266
allenapDoes anyone know why I'd get a NotABranch error from merge-proposal-jobs.py in qastaging? https://lp-oops.canonical.com/?oopsid=OOPS-d39c8d786a4c80ed1f17e9943d2f51ae14:01
allenaps/NotABranch/NotBranchError/14:01
rvbajtv: I've reviewed your tiny tiny branch ;)14:01
jtvThanks!14:01
jtvallenap: not scanned yet?14:02
allenapjtv: I pushed it yesterday, and revisions are appearing in the UI <https://code.qastaging.launchpad.net/~allenap/scriptify/test1>14:04
jtvOh, wait.  This is qastaging.14:04
jtvDoes it have its own codehosting server?14:04
allenapjtv: It's running on gandwana as bzrsyncd.14:04
allenapWhich is the same host as used for staging.14:05
jtvSo much for that then.14:05
allenapjtv: The error mentioned lp-internal:///~allenap/scriptify/test1... there's no mention of qastaging there, or is it, as it implied, a purely internal identifier.14:06
nigelbdanhg: Do you know if the launchpad session will have audio?14:07
allenap$ bzr push lp://qastaging/~allenap/scriptify/test1 --use-existing-dir14:08
allenapbzr: ERROR: Server sent an unexpected error: ('error', 'NotBranchError', 'Not a branch: "lp-83227408:///+branch-id/360039".')14:08
allenap$ bzr push lp://qastaging/~allenap/scriptify/test114:11
allenapThis transport does not update the working tree of: bzr+ssh://bazaar.qastaging.launchpad.net/~allenap/scriptify/test1/. See 'bzr help working-trees' for more information.14:11
allenapCreated new branch.14:11
allenap$ bzr push lp://qastaging/~allenap/scriptify/test114:11
allenapNo new revisions to push.14:11
allenapNow I can see a .bzr directory in the right place (with hitchhiker).14:11
deryckabentley, hey, shall we mumble a bit now?14:13
abentleyderyck: sure14:13
deryckhi coffeedude14:13
rvbajtv: I was thinking about BPPH.binarypackagename but I'm not sure that's helpful for you.14:13
jtvrvba: not really — it's still one-by-one.14:14
jtvBut I'm not too worried about it; I think it'll be a secondary issue at worst.14:14
rvbaOkay.14:14
jtvOh wait, _now_ I get what you mean!14:14
coffeedudehey deryck14:15
jtvThe column that's been recently added to the table.  Has that been fully initialized yet?14:15
rvbajtv: exactly14:15
jtvHas initialization completed yet?14:15
rvbajtv: I think it has.14:15
jtvIf so then yes, it would be useful!14:15
jtvThanks for pointing that out.14:15
rvbaGlad to help ;)14:15
jtvIt means we can avoid loading the BPN anywhere.14:16
jtvMaybe even the BPR… worth thinking about.14:16
cjohnstonjtv: fwiw, the answer is yes, they do get emails, but sometimes get lost in rules and what not14:24
* jtv wishes software could go back to being stupid and predictable, and leave the interesting stuff to us meatbags14:25
cjohnstonheh14:25
mrevellnigelb, What's your Skype id?14:26
nigelbmrevell: heh, I was kidding originally :)14:26
nigelbmrevell: nigelbabu14:26
abentleyderyck: you changed the listing to be a wide listing, but to me it looks too wide now.  Too much space between bug title and bug heat, especially if maximized.  Can we revisit that?14:34
deryckabentley, I'm just following the mockups.  I think we need to raise it with huw and mrevell if we want to change it.  FWIW, I like it wide. :)14:36
deryckbut then I don't have a huge monitor.14:36
deryckalso, it seems quite bare now, but when there are a lot of fields, it will fill up.  So there will always be some tension here.14:37
abentleyderyck: On my monitor, the space between the title and the heat is often as wide as the title itself.  That makes the listings hard to read, because there's not a strong visual connection.14:37
deryckabentley, yeah, I can understand that.14:38
deryckabentley, I wonder if heat should drop down to the second row and fall directly inline with everything else.14:38
deryckor else directly to the right of the title.14:39
abentleyderyck: the mockups actually show the title's column being ~ the same width as the longest title, which was how I had it.14:39
deryckabentley, all the mockups I see have it flush with the sidebar too.  so it's not clear which was meant -- i.e. follow with the title, or follow to the sidebar.14:41
deryckmrevell, care to weigh in on the intent here ^^ ?14:41
deryckabentley, what does the side bar do on a large display if the listings are narrow?14:42
deryckif you recall.14:42
abentleyderyck: I don't recall.14:42
deryckok, np.14:42
deryckabentley, are you wanting to fix it yourself in a branch your working on, or just raising the issue?14:43
abentleyderyck: just raising the issue.14:43
abentleyderyck: while it's still fresh.14:44
deryckabentley, ok.  let's chat with mrevell and huw when they have more availability, and I'll play with some options in css to see what possibilities we have.  fair enough?14:44
abentleyderyck: sounds good.14:44
deryckabentley, cool.  I added a Kanban misc card to remind me to follow up on it. :)14:45
allenapjtv, rvba: Fwiw, the problem was that the *trunk* branch of the scriptify project was not pushed. The NotBranchError I got when pushing the test1 branch referred to an attempt to find the default stacking branch.14:45
jtvouch14:46
jtvBug.14:46
allenapjtv: Indeed, but the good news is that long-polling for merge proposals works in staging and qastaging (restricted to ~launchpad for now).14:46
allenaprvba: ^14:46
jtvNice!14:47
nigelballenap: <314:47
nigelbWill it be rolled to production for launchpad only at least? :)14:47
nigelbOh wait. ~launchpad. Not ~launchpad-dev :(14:48
allenapnigelb: The LOSAs are going to figure out how to deploy the new service effectively (it's a bit of a cowboy right now) then, yes, it'll get rolled out :)14:48
nigelb\o/14:48
allenapnigelb: I think it'll be safe to make it available to ~launchpad-dev.14:48
nigelbYay!14:49
nigelbmrevell: Thanks for skyping me in!14:49
mrevellnigelb, Pleasure!14:49
abentleyderyck: css class "bugtitile" appears mispeled.14:56
deryckheh14:56
deryckI had to look a couple times to spot the typo.14:57
deryckthat's how I pronounce it in my accent. ;)14:57
derycktie-tile :)14:57
deryckabentley, I'll fix in my branch.  Thanks!14:57
abentleyderyck: lol.  Cool.14:58
allenapnigelb: Merge proposal long-poll stuff is enabled for ~launchpad-dev in staging and qastaging.15:12
nigelballenap: Thanks!15:12
allenapnigelb: No worries. Please break it :)15:14
allenapabentley: Up for a review? https://code.launchpad.net/~allenap/launchpad/participation-keyerror-bug-810114/+merge/8101215:15
abentleyallenap: sure.15:15
bigjoolsallenap: It still says "reload to see changes", right?15:15
allenapbigjools: Yes, it does.15:15
allenapabentley: Thanks.15:15
bigjoolsmrevell: is there an LP session on?15:16
abentleyallenap: module docstring is a placeholder.15:16
mrevellbigjools, Not right now.15:16
mrevellbigjools, We're doing a check-point, though.15:16
bigjoolscool15:16
allenapabentley: Oops. I'll fix that, and all the functions too.15:16
abentleyallenap: yeah, the functions have comments rather than docstrings.15:17
deryckabentley, so you think bugnumber CSS class should become bugid (or some such)?  Or do you think it doesn't matter for class names so much?15:17
abentleyderyck: I think we should standardize everything on bugnumber.15:17
deryckabentley, ah, ok.  The class I use for sorting is sort-id because each of them get a "sort-X" class where X is the actual orderby phrase.15:18
deryckabentley, so we can't actually change that to bugnumber.  but otherwise we can standardize.15:18
abentleyderyck: makes sense.15:19
deryckok, cool.15:19
bigjoolsallenap: it isn't working for me on staging15:19
allenapPEBKAC probably ;)15:20
allenapbigjools: Whassup?15:20
bigjoolsallenap: hoho!  yellow box still there, if I reload in a new tab, it's not there, but neither is the diff15:21
allenapbigjools: Can you point me to the branch?15:21
bigjoolsallenap: https://code.staging.launchpad.net/~julian-edwards/txlongpollfixture/FIRST/+merge/7667615:21
bigjoolsI merged one that was already on staging15:21
abentleyallenap: transaction.abort in check_teamparticipation_consistency worries me a bit, because it doesn't seem to guarantee that any pending DB writes got written.15:22
allenapabentley: There are no pending db writes, and there shouldn't be.15:23
gnuoyallenap, Not a branch15:23
gnuoyOOPS-21e6aba1bf48244072ebdc537396b72215:23
abentleyallenap: A function doesn't know who its caller is.15:23
abentleyallenap: I guess you can keep it if you document it.  Otherwise, I'd prefer a commit.15:24
allenapabentley: Fair. Okay, I can do a store.rollback(), or even a store.close().15:25
allenapabentley: Okay, commit is fine actually.15:25
abentleyallenap: cool.15:25
gnuoyallenap, I think bigjools is hitting the same problem you were15:26
allenapbigjools, gnuoy: It's because lp:txlongpollfixture is not a branch; branch content is not synced during a refresh. I've pushed it now, so try again.15:26
bigjoolsahhh15:26
allenapbigjools: gnuoy and I spent a long time figuring out that little gem earlier.15:26
abentleyallenap: check_teamparticipation_consistency has a lot of inner functions.  Have you considered structuring it as a class?15:27
abentleyallenap: well, maybe "a lot" is a bit strong.  Some.15:28
allenapabentley: Yes, but I think it would get longer and less readable, imo. I have considered splitting it into two - a slurping part and a checking part - but haven't done it yet. I am working on a follow-up so I might do it there.15:28
allenapabentley: Also, the slurped data will use about ~200MB of memory so it's quite useful that this will be reclaimed as soon as the function returns.15:29
abentleyallenap: "len(out) > 0" might be clearer and faster as out != ""15:30
allenapabentley: Okay.15:33
abentleyallenap: r=me with the docstring updates.15:35
allenapabentley: Thanks!15:35
rvbaabentley: could you please have a look at this (tiny) MP? https://code.launchpad.net/~rvb/launchpad/branches-timeout-bug-827935-always-display/+merge/8102215:37
gnuoynigelb, bigjools, I need to quickly restart txlongpoll in staging and qastaging15:37
abentleyrvba: sure.15:37
rvbata15:37
bigjoolsgnuoy: fine15:37
nigelbI'm not testing yet.15:38
nigelbUDS :)15:38
abentleyrvba: r=me15:38
rvbaabentley: Thank you!15:38
abentleyrvba: np15:39
gnuoynigelb, bigjools. thanks and done15:41
deryckabentley, for your change you had to revert, you landed display-cleanup, reverted in another branch, and then fixed inside display-cleanup and landed that same branch again....15:48
deryckabentley, is that right?15:48
abentleyderyck: that's right.15:49
deryckabentley, the "fake merge" commit you had is needed to get in sync with devel after the revert?15:49
abentleyderyck: right.15:50
deryckabentley, how exactly did you fake merge?15:50
abentleyderyck: bzr merge devel; bzr revert .; bzr commit15:51
deryckah ha.  right, that makes sense.15:51
deryckabentley, thanks!15:51
abentley"revert ." reverts all file changes, but keeps the merge marker.15:52
deryckabentley, hey.  sorry to keep pestering you....16:35
abentleyderyck: no worries.  What's up?16:35
deryckabentley, you have your object like this:  var navigator = Y.lp.bugs.buglisting.ListingNavigator.from_page();16:36
deryckabentley, and I work from that when I create my OrderByBar.  I'm going to feature flag all of that, I think.16:36
deryckabentley, there's no need for the navigator to be outside the flag, right?16:36
abentleyderyck: The only thing is testability.  It's easier to test how Navigator behaves when the flag is disabled than to test whether the page has no navigator when the flag is disabled.16:38
abentleyderyck: But I guess it's not that hard to test either way.16:39
deryckah16:39
deryckabentley, so if I change it, tests will break?16:39
abentleyderyck: No, but you should delete the code they're testing and the tests themselves.16:40
abentleyderyck: test_render_no_client_listing, test_from_page_no_client16:42
deryckabentley, I'm confused, sorry.  Why would I want to delete tests?  We don't want to lose that coverage, do we?16:43
abentleyderyck: We should have only one strategy for dealing with the feature flag.  So if you change the strategy, you should delete the old code.  And that would make the tests fail.16:44
deryckabentley, ah, now I see what you mean.  Thanks.16:44
abentleyderyck: np.16:45
deryckabentley, so this is the sort of thing, I'm thinking:  http://pastebin.ubuntu.com/726516/17:18
deryckabentley, just putting our scripts behind a flag.17:18
deryckabentley, and as far as I can tell has no impact on your current approach or testing, though I don't mind deleting the empty return and tests if you feel it's unneeded.17:21
deryckoh, lunch now, sorry.  chat more when I'm back.17:22
=== deryck is now known as deryck[lunch]
=== deryck[lunch] is now known as deryck
deryckabentley, did you see what I wrote in the scrollback?18:25
abentleyderyck: I did.  I do feel deleting the empty return and the check in render makes sense, because your change makes it dead code, and dead code should be deleted.18:26
deryckabentley, fair enough.  I'll kill it then.18:27
abentleyderyck: cool.18:27
deryckabentley, http://pastebin.ubuntu.com/726581/  cool?18:33
abentleyderyck: You've missed the check in render:     "if (! Y.Lang.isValue(this.target)){"18:34
deryckabentley, updated then: http://pastebin.ubuntu.com/726584/  cool now?18:36
abentleyderyck: yes, thanks.18:36
deryckabentley, np.18:36
abentleyOur linter has spelling errors: "To few newlines before selectors."18:46
jtvabentley: it could be a toast.18:48
jtvHere's to few newlines before selectors!  <ting> <slurp>18:48
abentleyjtv: Toasts are usually written as exclamations, so then it would be a grammar error :-)18:49
jtvabentley: toasts must be considered in the context of the number, size, and alcohol content of preceding drinks.18:50
jtvBut I admit your interpretation has merit.18:51
abentleyderyck: could you please merge r14231 or later into custom-bug-listings and push?  My branch has conflicts that it's inheriting from custom-bug-listings.19:08
deryckabentley, sure.  the css-polish branch?19:09
abentleyderyck: right.19:09
deryckok.19:09
deryckabentley, done.  push includes the recent fixes we discussed in the scrollback too.19:17
abentleyderyck: cool, thanks.19:17
derycknp19:17
abentleyderyck: test_update_from_model_caches is broken in custom-bug-listings-css-polish.  I belive this is because render no longer short-circuits when there's no target.19:26
deryckabentley, ah, that sucks.  I think I broke the build then.  I could have sworn this test passed locally.19:30
deryckabentley, so fix the test or put the short circuits back?19:31
abentleyderyck: Yep.  I'd fix the test, since there's only one, and we're already creating a custom object for it.19:32
deryckabentley, ok, I'll work on a fix now.19:32
abentleyderyck: no rush.19:33
deryckwell, not until the build breaks :)19:33
deryckabentley, this gets it working for me:  http://pastebin.ubuntu.com/726648/.   Look sane?20:01
abentleyderyck: yes.20:02
deryckabentley, excellent.  I'll put up an MP.20:02
lifelesswgrant: that field.blob - what OOPS id was it on20:19
lifelesswgrant: I want to track the emitter down20:19
deryckabentley, care to review that testfix?  https://code.launchpad.net/~deryck/launchpad/testfix-buglisting-js-test/+merge/8107320:27
abentleyderyck: r=me20:28
deryckabentley, thanks!20:28
lifelessabentley: could I please have a review of https://code.launchpad.net/~lifeless/python-oops-tools/amqp-polish/+merge/81075 ? diff coming in a minute20:29
abentleylifeless: sure.20:29
lifelessalso, its so nice working on a code base with <20sec test runs :P20:30
lifelessabentley: thanks!20:30
abentleylifeless: to me, ValueError is vague enough that I'd rather check the length.20:33
lifelessabentley: its pretty precise:20:34
lifeless>>> foo, bar = 120:34
lifelessTypeError: 'int' object is not iterable20:34
lifeless>>> foo, bar = [1]20:34
lifelessValueError: need more than 1 value to unpack20:34
lifeless>>> foo, bar = [1,2,3]20:34
lifelessValueError: too many values to unpack20:34
lifelessabentley: if its not iterable, you get TypeError20:34
lifelessabentley: if it is but the wrong length you get ValueError20:34
lifelessabentley: we haven't seen any corruption of the third form20:35
lifelessabentley: and I plan to make this be an actual dict soon, which will eliminate the corruption entirely once the producers are upgraded20:35
abentleylifeless: Yes, but that's not the only way ValueError is used.20:36
lifelessabentley: thats true, but its the only way its used for the short expression given20:36
lifelessabentley: we know that req_vars is a basic datatype because its just been deserialised20:36
lifelesse.g. no special objects implementing their own __iter__20:36
abentleylifeless: let's not go overboard about this.  I said I'd rather check the length, didn't mean that you had to.20:37
lifelessabentley: sorry, didn't mean to get contentious20:37
lifelessI was just about to say I'll change it if you want, was merely explaining why I did it the way I did20:38
abentleylifeless: Is line 46 tested?20:38
lifelessnope20:38
lifelessits probably testable, though its a bit awkward20:39
lifelessits in the factory-function that reads from disk files20:39
abentleylifeless: I think since it fixes a bug, that we should test it.20:40
lifelessif I change one of the sample oopses to have a lower case id20:40
lifelessthat will cause other test to fail if the line is not present20:41
lifelessI think this is the simplest way to ensure its presence is needed20:41
lifelesshow does that sound?20:41
abentleylifeless: that sounds fine to me.20:41
abentleylifeless: So with testing, r=me.20:41
lifelessthank you20:42
abentleylifeless: np20:42
lifelessok, I get failures with the line removed20:42
lifelessand not with it present20:43
lifelessheh, spoke to soon20:43
lifelesssomething else blew out :P20:43
lifelessabentley: \o/ other oopses already exercised that failure mode. So, I'll have a slightly longer diff for you, showing the impact.20:45
lifelesshah20:48
lifelessabentley: I misanalyzed the cause of our issues around that line.20:48
lifelessabentley: I'm going to drop it from the diff and do a different patch for that part of it20:49
abentleylifeless: Okay.20:49
lifelesssrc/oopstools/oops/views.py index() is the issue20:49
lifelessit treats oopses starting with OOPS specially, which is why the u1 lowercase oopses work and the LP lowercase ones didn't.20:49
lifelessabentley: I may end up including the line in the final fix, just want to decouple things to get more time to look at it.20:50
deryckLater on, everyone.21:03
=== micahg_ is now known as micahg
lifelessabentley: https://code.launchpad.net/~lifeless/python-oops-tools/amqp-polish/+merge/81083 if you have time21:36
lifelessbac: thanks!21:51
lifelessbac: I was just about to start a branch to fix up my booboo21:51
baclifeless: actually, i haven't gotten too far with it.  if you'd like to add some thoughts to the bug that might be helpful.21:52
lifelessbac: I just did21:52
baclifeless: i did see that the report created has no 'type', at least when created via the tests.21:52
lifelessbac: tests for this need to be asynchronous tests21:53
bacnot have a type entry causes the filters to explode21:53
lifelessbac: using the custom runner, and returning a deferred from the test to have that executed by twisted21:53
lifelessbac: that may be a separate defect (but worth addressing too) - changing from21:53
lifelessreport['type'] to report.get('type', 'No exception type')21:54
lifelessreport['value'] to report.get('value', 'No exception value')21:54
lifelessshould do that21:54
baclifeless: yep, i'd done something similar21:54
lifelessI think python-oops-twisted made that change; this is kindof code duplication, because its twisted code logging to to non-twisted logging module.21:54
lifeless(also made that change)21:55
mrevellhey huwshimi, got time to talk in the next 20 minutes? We need to try something new for the manage-disclosure mock-ups22:02
mrevellhuwshimi, Good morning, btw :)22:03
huwshimimrevell: Morning22:03
huwshimimrevell: 2 mins22:03
mrevellhuwshimi, I'll be popping offline but back shortly. No need to talk immediately.22:03
mrevellhuwshimi, But I'd love to hijack your day... :)22:03
huwshimimrevell: Now's fine with me22:03
mrevellhuwshimi, Oh, I'm going onto another call just now. I'll ping you in an hour or so.22:04
huwshimimrevell: Ah ok, no problems22:04
lifelessflacoste: anytime..22:05
lifelessabentley: actually, nevermind, there is a code hcange neeed; next reviewer up can cop it :)22:11
pooliehi huwshimi, lifeless22:24
huwshimipoolie: Morning22:24
=== abentley changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugtasks: 266
pooliehuwshimi: i replied about wrapping; we can talk about that later if you like23:15
huwshimipoolie: Sure23:15
poolieotp now23:15
huwshimiwallyworld_: Do you know anything about adding a security view to the +manage-disclosure page?23:27
huwshimiwallyworld_: Also, hello23:28
wallyworld_huwshimi: hi. i'm not exactly sure what any security view needs23:28
wallyworld_is this a user request?23:28
lifelesscan I have a review of https://code.launchpad.net/~lifeless/python-oops-tools/amqp-polish/+merge/81083 please? its simple.23:29
huwshimiwallyworld_: No, from Matthew23:29
wallyworld_huwshimi: the accessibility of project artifacts is basedon policies23:29
lifelesshuwshimi: what do you mean by security view?23:29
lifeless:)23:29
wallyworld_huwshimi:  security is orthogonal to that23:30
wgrantI assume it's the policy stuff that I discussed on the call this morning.23:30
lifelesshuwshimi: as in, do you mean the red banner ?23:30
huwshimilifeless: I have no clue, that's what I'd trying to find out :)23:30
lifelesswgrant: wallyworld_: I'm OCR today, so I need someone else :P23:30
wgrantlifeless: Looking.l23:31
wallyworld_huwshimi: i think we need to talk to matthew to clarify23:31
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: lifeless | Critical bugtasks: 266
lifelesswgrant: thanks23:31
wallyworld_lifeless: sorry, was going to look after conversation finished23:31
lifelesswallyworld_: no worries23:31
huwshimiwallyworld_: Yeah that's fine, he's just away for a bit and I think he was hoping for some mockups today23:31
lifelesswgrant: my commit message and description are now stale.23:31
lifeless Fixing23:31
lifelessFixed.23:32
wallyworld_huwshimi: i think there's confusion/disconnect about policy based access and security etc23:32
wallyworld_huwshimi: so at some point i think we all need to get on a call to clarify23:32
huwshimiwallyworld_: Ah ok23:32
wgrantMight have to be late in our evening.23:33
wgrantUnless we catch Matt while he's at UDS.23:33
wallyworld_huwshimi: matthew is at uds? perhaps we can get together later today our time23:33
huwshimiwallyworld_, wgrant: He's gone out for dinner and I think he will try and call when he gets back23:34
wgrantHopefully we can obtain a Curtis as well.23:34
wallyworld_huwshimi: ok. let's try and have a call then23:34
wgrantOtherwise I know mostly what's going on here.23:34
huwshimiwallyworld_: Great23:34
wallyworld_it would be good for curtis to be there so he can take what's discussed to folks at uds etc23:35
lifelesswgrant: got a thumbnail sketch for me ?23:37
wgrantlifeless: Of?23:37
lifeless12:30 < wgrant> I assume it's the policy stuff that I discussed on the call this morning.23:37
wgrantlifeless: Pretty much what Curtis, you and I discussed a few weeks back.23:38
wgrantThat others seem to be largely unaware of.23:38
lifelesswgrant: a little more context please23:38
=== spm` is now known as spm
wgrantlifeless: The policy-based disclosure approach, to avoid all the hideous security/apport special casing. Private artifacts have an associated policy, with observers for that policy, optionally specific to an artifact.23:40
lifelessrighto23:40
lifelessdo you mean db backed policies ?23:40
wgrantYes.23:40
lifelessk, thanks23:41
wgrantRather than the "security is magical lalalala" that was initially proposed.23:41
lifelessgreat, so distraction over you can go back to my review ;)23:43
wgrantIndeed.23:43
lifelessalso I may have made oops lookup a brazillion times faster in some cases23:43
wgrantlifeless: + oopsids.add(with_oops.lower())23:45
wgrantlifeless: Isn't that going to lower the OOPS- too?23:45
wgrantWhich is probably wrong.23:45
lifelesswell, depends on where you consider the abstraction barrier23:46
lifelessbut yes, I can see that being an issue.23:46
lifelesswill make it a .update(map(lambda x:'OOPS-' + x, oopsids)) instead23:47
wgrantThanks.23:47
pooliejelmer: http://twitter.com/#!/mumak/status/13187580263047168023:53

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