wgrantwallyworld: It looks like you can use PyCharm's buildout support now, instead of specifying the eggs manually.00:37
wallyworldwgrant: yes, i hadn't gotten around to looking at that yet :-(00:38
wallyworldmaybe i should make the time00:38
pooliei'm getting a timeout setting bug status, https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-2043DR600:38
wgrantwallyworld: I had to use bin/i18nextract. Only bin/i18n* seem to have the necessary paths.00:39
wgrantwallyworld: But I added that and removed all the eggs from the sources config, and it seems to work.00:39
wgrantAnd, indeed, under "External Libraries" there is now "Buildout Eggs"00:39
pooliewallyworld: which jvm do you use for pycharm?00:40
wallyworldwgrant: one extra thing - if you want pycharm to know about what's inside bin/run, bin/test etc, open those once initally and tel pycharm they are python files. pycharm relie son file extensions and thouse don't have any :-(00:40
wallyworldpoolie: i use sun's jdk00:40
poolieis that packaged in ubuntu?00:40
wallyworldyes, can't recall whether main or ....00:41
wgrantIt's in partner.00:42
wallyworldmakes sense00:42
poolieok, got it00:42
StevenKwgrant: Do you think it's safe to remove bazaar-experts now?01:04
poolieurh jb seems to have a lot of trouble with unity on my machine01:08
lifelessjim bean ?01:09
=== Ursinha is now known as Ursinha-zzz
lifelesswgrant: -haaaaaaaaaaaaa- pids within lxcs are not unique across lxcs.01:24
wgrantlifeless: Nope.01:52
wgrantStevenK: Probably, yes.01:52
StevenKlifeless: Can haz bazaar-experts killed?01:53
lifelesswgrant: how does our test config isolation work .. :P01:53
wgrantI wasn't sharing a working directory.01:58
wgrantBut I guess if you do then that's a problem :/01:58
lifelesswgrant: you made one per parallel thread ?01:58
wgrantlifeless: The LP tree lived in the base container.01:59
wgrantIt was not bind-mounted it.01:59
lifelessanyhow, memcached sorted.02:02
lifelessthe rabbit layer took a -long- time to dies02:03
lifelessbut no longer hanging02:03
lifelessstill seeing the odd02:14
lifelesscould not get IP address - aborting.02:14
lifelesswith containers taking too long to startup :(02:14
lifelessNo handlers could be found for logger "lazr.smtptest"02:15
StevenKThat one you see on buildbot and ed2 too02:15
lifelessat least now the layers are all starting, seem to be getting clean subunit02:16
lifelessFAIL: canonical.testing.ftests.test_layers.ZopelessTestCase.testMemcachedWorking02:17
lifelessDifference: True != False: memcached is live but should not be.02:17
lifelessTransportError: Transport error: [Errno 1] Operation not permitted: '/var/tmp/bazaar.launchpad.dev/mirrors' [Errno 1] Operation not permitted: '/var/tmp/bazaar.launchpad.dev/mirrors'02:17
sixstringAnyone know where the source for login.launchpad.net is located? I'm looking for the Django project. (And that's not what launchpad itself is...Zope!)02:21
wgrantsixstring: lp:canonical-identity-provider02:21
* sixstring tosses some donuts toward wgrant and lifeless.02:21
lifelessok, that seems good now02:24
lifelessid=3, tests=2089, failures=5, skips=8002:24
wgrantlifeless: Nothing hung?02:24
lifelesswgrant: indeed02:24
wgrantFull test suite run now.02:24
lifelesswgrant: patience kemosabe02:25
StevenKlifeless: Do you need changes to hit devel before we turn parallel-test back on?02:25
lifelessI'm comparing single threaded on laptop with 8 threads on desktop02:25
lifelessStevenK: no, but I need you to upgrade jenkins to oneiric and setup lxc.02:25
StevenK... I can see that happening with buildbot :-P02:26
lifelesshmmm, I wonder if I have the timing fixed branch of testtools here, I seem to be load balancing the tests poorly.02:31
lifelessor maybe there is some gargantuan test matching the regex 'canonical'02:32
lifeless7/8 workers completed a while back02:32
lifelessor maybe they are running too many tests, but the load-list stuff was fairly robust I thought02:32
wgrantThere is a test that hangs on 2.7 matching 'canonical', but I guess your containers are lucid and 2.6?02:33
lifelessits busy in CPU02:33
LPCIBotProject db-devel build #784: FAILURE in 5 hr 45 min: https://lpci.wedontsleep.org/job/db-devel/784/02:44
wgrantwallyworld: Did you have to configure a custom cwd somewhere to get bin/run debuggable>03:04
wallyworldwgrant: you set the wd in the debug config03:05
wallyworldplus you need a custom PYTHONPATH variable: parts/scripts:lib:$PYTHONPATH03:05
wallyworldset this in the same config dialog03:06
wgrantWhere's the debug config?03:06
wgrantThe last IDE I used seriously was VS2003, so I'm a little rusty on how things work these days.03:06
wallyworldthere's a drop down next to the run/debug icons in the top toolbar03:06
wallyworldyou need to initially set up a debug profile03:07
wallyworldfor lp. i alsi have one for runnign tests03:07
wgrantAhh, thanks.03:07
wallyworldthe script is bin/test03:07
wallyworldthe params are -vvct foo03:07
wallyworldfor running, the script is bin/run03:07
wallyworldthe params are -r librarian,google-webservice,memcached -i development03:08
wgrantlifeless: You has qa.03:11
lifelessparallel - 15 minutes03:12
lifelesssingle threaded 13 minutes03:12
lifelessTotal: 1338 tests, 0 failures, 0 errors in 12 minutes 38.127 seconds.03:13
lifelessid=4, tests=1686, failures=2, skips=2903:13
lifelessthe extra tests are layers - different reporting03:13
spmparallel is slower? that sounds like doing it wrong. :-)03:13
lifelessthis is why 'in dev' not 'done'.03:14
spmpfft. details. and facts. they have no place here.03:14
lifelessaka 'dont bother me with facts'03:38
wgrantlifeless: Last staging fastdowntime was offline for 91s.03:43
wgrantLooks like my optimisations last night were effective.03:43
lifelessgetting there03:43
lifelesswgrant: thanks for digging in!03:43
lifelessthats still running trusted.sql ?03:43
wgrantWill hopefully dig harder to reduce sync overhead tonight.03:43
lifelessbe good once we eliminate that03:43
wgrantOverhead for running that too is now like 2s.03:44
wgrantSo not that bad.03:44
lifelessI have to pop out and buy a baby capsulte03:44
lifelesswgrant: thats still 2.5% :P03:44
lifelesswgrant: I will poke at qa upon my return03:44
wgrantHmm, we reset permissions serially :(03:44
lifelesswgrant: but it all should be super shallow03:44
wgrantThat will save 30s on production, but only 5s on staging.03:44
wgrantlifeless: Thanks. We're OK to deploy otherwise.03:44
StevenKlifeless: Attempting to create an Oneiric EMI03:52
lifelessStevenK: cool04:55
* wgrant curses postgres a bit.04:57
wgrantTried to parallelise security.py04:58
wgrantBut postgres does *not* like concurrent group modifications.04:59
lifelesswill block04:59
wgrantGet lovely "tuple concurrently updated" exceptions.04:59
lifelessWIN WIN WIN WIN WIN04:59
wgrantSo I try to guess the hosts from the connstrings, and run a separate set of threads first to reset the roles once per host.05:00
wgrantSeems to work.05:00
wgrantBut ew.05:00
wgrantI wonder if it gets faster if I share the PermissionGatherers.05:02
wgrantOverhead is down from 6s per slave to 0.5s, but that's still pretty bad...05:02
lifelesswhat is per slave?05:09
wgrantPermissions aren't replicable, so must be set separately on each slave.05:10
lifelesscan't we do them concurrently on each slave?05:10
wgrantThis presently takes 6s per slave, serially.05:10
wgrantBut you can't just run multiple instances of the script.05:11
wgrant1) slow startup05:11
wgrant2) if there are multiple DBs on one machine (eg. prod standalone + slave, or staging, or dev), ALTER ROLE boom.05:11
lifelessdo you mean multiple DBs on one pgsql instance ?05:11
lifelesswe could move them to separate clusters, same machine.05:12
jtvwgrant: since you're working with the PermissionGatherers, a note of caution that I may or may not have preserved as a comment: I tried more aggressive bundling and found that performance got worse, not better.05:19
jtvAlso, I really wonder whether all the restrictions we put in security.cfg pull their weight.  Say we isolated a few tables that need special SELECT permission, and went back to granting blanket SELECT permissions to the rest.  Less need for detailed testing, fewer pointless privilege errors, but more relevantly for this: fewer security.cfg changes.05:25
wgrantJulian has argued similarly.05:26
wgrantIt's unfortunate that there's no way to really batch permission changes, without poking pg_class.relacl directly.05:27
wgrantWhich may not be entirely unreasonable...05:27
StevenKJust disgusting05:27
wgrantApparently very disgusting.05:27
StevenKSo disgusting, jtv left in disgust.05:28
* StevenK *might* have a working Oneiric EMI05:28
StevenKWell, I'll be able to actually check if the instance state ever moves from pending05:32
StevenKBah, my branch failed with test_feature_info failing05:33
nigelboh oh05:41
nigelbsomeone broke something?05:41
nigelbReported by Matthew Paul Thomas (mpt: 5235) [ubuntu-bugcontrol] on 2005-11-18 and last updated on ": {"date_05:41
nigelbthe last updated doesn't seem to be working :)05:42
wgrantnigelb: That looks like a Greasemonkey script.05:43
wgrantWe don't show team memberships, karma, last updated.05:44
wgrantAnd we only show usernames to a few people.05:44
nigelbwgrant: Oh, that. It started working recently. I'll check with Brian :)05:45
* wgrant fixes the db-devel breakage.05:45
wgrantjtv: So, I wonder if we might be better off querying pg_class.relacl, working out what permissions are currently there, and then applying only the diff.05:46
wgrantjtv: Rather than revoking and granting *everything*.05:47
jtvI thought someone had already implemented incremental changes.05:47
=== vila_ is now known as vila
wgrantjtv: There's --no-revoke05:47
wgrantWhich, as the name suggests, doesn't revoke. Or change owners.05:48
jtvIt doesn't revoke?  Or it doesn't do the blanket revoke at the beginning?05:54
jtvISTM if you skip the blanket revoke at the beginning, that breaks privilege revocation.05:54
wgrantjtv: Right, it breaks revocation.05:56
wgrantWe run --no-revoke for nodowntime deploys.05:56
wgrantAnd do the revoke only during (fast)downtime.05:56
jtvAnd that's the problem you're trying to solve right now?05:56
wgrantjtv: Currently a full security.py run takes 6 seconds per DB.05:57
wgrantjtv: And these are run serially.05:57
wgrantProduction has 7 DBs.05:58
wgrantWhich means we are going to spending 42 seconds of downtime just resetting permissions.05:58
wgrantWhich is less than ideal.05:58
jtvThat reminds me of something else.05:58
wgrantautovacuum causes fastdowntime to abort, it seems...05:59
jtvISTR the performance increase I got from bundling the grants (not related, I'm sure) shifted the performance bottleneck to somewhere else, even within security.py.  That was just for one database though.05:59
wgrantlifeless: :(07:25
=== jtv is now known as jtv-eat
lifelesswgrant: ?07:26
lifelesswgrant: My mind reading is pretty good, but not enough to get much from that :)07:26
wgrantProfiling slony.07:27
wgrantIt is slow.07:27
wgrantddlScript_complete_int, in particular.07:27
wgrantWhich turns replication back on.07:27
wgrantLooks like LOCK TABLE blah IN ACCESS EXCLUSIVE MODE takes about 50ms.07:27
wgrantSo not really slony.07:28
wgrantMore postgres.07:28
lifelessstub is aiming to get u1 onto slony 207:28
wgrant(it does that for every table)07:28
lifelessthen upgrade us07:28
wgrantI wonder if it's any better.07:28
lifelessslony 2 does not do that07:28
wgrantNice package name.07:30
wgrantHuh, it renames the relations?07:32
wgrantupdateRelname confuses me.07:32
wgrantLocking takes 45ms, checking for trigger conflicts 5ms... 50ms*250 = 12.5s :/07:34
=== wallyworld changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs: 247 - 0:[#######=]:256
wallyworldlifeless: in lib/canonical/configure.zcml, there's an include package="lazr.uri" but there's no configure.zcml in /usr/lib/python2.6/dist-packages/lazr/uri and so it complains. is it mandatory to have a configure.zcml file for such includes?07:39
lifelessI suspect skew over time07:40
wallyworldyou mean delete the include?07:41
lifelessthe package is faulty07:41
lifelesswe use the egg07:41
lifelessls -l eggs/lazr.uri-1.0.2-py2.6.egg/lazr/uri/configure.zcml07:41
wallyworldah right. thanks. will remove the package07:41
wgrantwallyworld: I struck that today in pycharm, then it magically started working again.07:41
wallyworldwgrant: yes, it only started happening once i used buildout07:42
wallyworldwgrant: you like pycharm?07:42
wgrantUgly and slow.07:42
wgrantBut maybe.07:42
wallyworldslow? really? ugly is a matter of opinion. there's several different themes to choose from07:43
wgrantI can't get it to render fonts nicely.07:43
wallyworldi use Alloy Bedoin07:43
wallyworldand override default fonts by Verdana07:44
wallyworldin the Appearance settings07:44
lifelesswallyworld: if its competing with vim for perceived performance, it is really quite challenging :)07:44
wallyworldthere's more to performance than startup time or whatever. things like code navigation, change markers erc rock and save sooo much time07:45
wgrantThey do.07:45
wgrantBut I'm used to my editor not having visible latency.07:46
wgrantEven PyCharm's menus lag.07:46
wallyworldit doesn't for me07:46
wallyworldthere must be something else happening07:46
wallyworldon your system07:46
wallyworldi think it's fast for bigjools too07:46
wallyworldi'd say there's definately an issue somewhere07:47
wallyworldmaybe with java?07:47
wallyworldyou using sun's jdk?07:47
wgrantI am.07:47
wallyworldhmmm. there goes that theory07:47
wallyworldwgrant: one thing to do - make sure your pycharm/bin/pycharm.vmproperties has more max memory specified07:50
wallyworldlp project likes to use a lot07:50
* wallyworld has to start getting ready for soccer07:51
wgrantlifeless: Ahh.07:57
=== vila_ is now known as vila
lifelesswgrant: and again07:58
lifelesswgrant: CONTEXT07:58
wgrantlifeless: Slony2 doesn't really disable the triggers... it sets a value which turns them into no-ops.07:58
wgrantSo it should be really quick.07:58
wgrantThat makes a bit more sense.07:58
wgrantJust to make upgrades fun, slony1 and slony1-2 packages conflict!08:00
lifelesstwo fastdowntimes08:00
lifelessor something08:00
=== almaisan-away is now known as al-maisan
wgrantOne to uninstall slony and move everything to the master, then upgrade slony everywhere, then another fastdowntime to install slony2, then rebuild slaves, then get things talking to the slaves again?08:01
wgrant2011-08-05 08:23:57 INFO    Outage complete. 0:00:26.22099608:24
wgrant15s of that was security.py, which can hopefully be optimised down to less than a second.08:25
wgrantMorning stub.08:25
wgrantThat bad?08:26
stubMy sleep schedule is utterly broken08:26
lifeless2:30pm ?08:26
nigelbFixing that is going to be painful.08:29
jtvstub: I missed dinner last night… ended up staying at home and, from what it looks like, drinking myself into a hangover from Tesco fruit juice.08:30
jtvI would recommend it, except it doesn't help us much as I'd hoped.08:30
jtvDid you get a chance to snuggle in at the trough?08:31
jtvAt John's, I mean.08:31
wgrantIf I add new slaves without restarting the existing slons, syncing is really slow.08:32
wgrantLike, slony1-slow.08:32
wgrantBut when I restart them all, it drops back to 2s.08:32
wgrantAnd we have 30s outages again.08:32
wgrantstub: Does that happen with slony 1 too? I've upgraded to 2 to see how less crap it is.08:33
wgrantstub: With slony 2, sync lag around the upgrade is now the slon interval, rather than >20s.08:34
stubjtv: If you have a hangover, it might have been past its use by date...08:37
stubjtv: Yup, and take away. Good stuff.08:38
jtvstub: possibly… I think I just drank too much.08:38
stubwgrant: Cool. We have other reasons to switch, and I want to install an Ubuntu One system with slony2 if I can get the packages sorted.08:39
stubwgrant: You found slony2 packages built somewhere?08:40
stubI think they are in Debian, but don't think they have leaked through to Ubuntu yet due to no upgrade path between slony1 & 2.08:40
LPCIBotProject db-devel build #785: STILL FAILING in 5 hr 57 min: https://lpci.wedontsleep.org/job/db-devel/785/08:41
stuboic - silly version numbers hiding it from me.08:43
stubNeed to get 2.0.7 still - Natty has 2.0.608:44
stubwgrant: so did the existing scripts all work unmodified?08:45
wgrantstub: Sorry, was eating.08:50
wgrantstub: Yep, everything works fine.08:50
wgrantJust installed the new package (which conflicts with the old one) and rebuilt the cluster from scratch.08:50
wgrantNo issues with that, new-slave, or full-update.08:50
wgrantoneiric still has 2.0.6 :(08:51
wgrantsid too.08:52
stub2.0.7 was only recently released.08:52
wgrantstub: With 4 slaves and a multithreaded security.py, 31s outage.08:56
wgrantsecurity.py is the main limiting factor now.08:56
wgrantIt's about 15s with 4 slaves, even multithreaded.08:56
stubwgrant: you still seeing a high variance though when slony is bounced/not bounced before the upgrade?08:57
wgrantstub: Yes, it adds a good 15-20s.08:57
wgrantI thought it was just really bad scaling, but then bounced the slons and all was good.08:58
stubsecurity.py could be optimized further separately. eg. run '--no-revoke' before the outage and add a '--revoke-only' argument for application during the outage.08:58
wgrantstub: I think it may be better to examine the permissions and owners and just apply a diff.08:58
wgrantSince presently it revokes everything then grants everything, so --revoke-only isn't really plausible.08:59
wgrantWe already inspect pg_class in a few places... not toooo terrible to also interpret its relacl.09:00
stubYer. Haven't poked at that part of the schema - just used GRANT and REVOKE09:00
wgrantI'd be reluctant to update relacl manually, but using it to work out a diff seems reasonable and quick.09:00
stubWe will still need to do revokations though, which is the potentially blocking operation. Grants can be done outside of the outage.09:01
wgrantSure, but if we're only applying a diff it should be really quick.09:01
wgrantSo we can probably do it all in one hit.09:01
stubWe already are really quick. We are just changing the definition of really quick :-)09:01
wgrant'SELECT relnamespace, relname, relacl FROM pg_catalog.pg_class;' can't be too slow :)09:02
wgrantThen it's just a matter of parsing them into something that we can compare to security.cfg and diffing.09:02
bigjoolswgrant: hey you used PyCharms buildout support then?09:02
wgrantNot a huge amount of code, and should be very quick.09:02
stubDepends on how many corresponding relacl rows there are, and if all the role membership stuff is exploded or not.09:03
wgrantbigjools: I did. Possibly slightly unreliable (had some odd import issues), but seems to work.09:03
bigjoolsgotta be better than setting all the egg directories09:03
wgrantI used bin/i18nextract for paths.09:03
wgrantSince only the i18n scripts have them.09:03
wgrantstub: It's not exploded.09:04
stubLove my weather indicator. Bangkok is expecting Bacon.09:06
stubwtf is 'light rain' horizontal wavy lines?09:07
wgrantI thought that was fog.09:07
stubThat would be 'light rain is a really, really strong wind'09:07
stubNot in Bangkok obviously09:07
bigjoolsI have my own weather station, it'd be nice if I could make HTC's weather app use it.  But no.09:08
allenapAnybody fancy doing a review?09:09
bigjoolsallenap: you are on holiday, bugger off09:09
allenapbigjools: Hehe. I'm catching up a big I missed from yesterday :)09:10
stubI'll have your holiday if you are not using it. Ta!09:10
jtvcjwatson: got a moment to talk about bug 659769?09:12
_mup_Bug #659769: should copy custom uploads to newly-initialised release <derivation> <lp-soyuz> <new-release-cycle-process> <soyuz-publish> <Launchpad itself:In Progress by jtv> < https://launchpad.net/bugs/659769 >09:12
nigelbstub: You're based out of Bangkok now?09:12
stubCome on over, the weather is bacon!09:13
nigelbI'm glad there's someone at timzone between me and .au09:13
stubI don't know what timezone I'm in. Not Bangkok's, certainly.09:13
stubProbably in the middle of the Atlantic at the moment.09:14
nigelbI've figured out that my brain thinks I live in Iceland.09:14
lifelessstub: nah, you're running on france time more or less09:17
=== Ursinha-zzz is now known as Ursinha
=== al-maisan is now known as almaisan-away
jmlI'm looking at a perl script11:06
jmlThe first line is a comment, '# Load everything in a big hash'11:06
jml*every* perl script does that at the beginning11:07
jelmerjml: I think the hash at the beginning of that line is probably not big enough to fit everything. :P11:11
jmljelmer: :D11:12
wgrantstub: Is the admin role still used?11:47
jelmersigh, I hate eggs.11:49
wgrantstub: (it's the only remaining hole in my diffing security.py, as it's difficult to map the ALL that is granted to admin to real permissions)11:50
stubwgrant: I don't think the admin role is used11:51
stubMaybe for testadmin?11:51
wgrantArgh, yes.11:51
wgrantI guess I might specialcase it for revocation too.11:51
stubWe could explode the ALL into real permissions by object type11:52
wgrantBut just using a grant/revoke diff takes it from 6s to 1.5s per slave... will look at roles next week.11:52
wgrantI considered that.11:52
wgrantBut they vary by type and version, so mrrrh.11:52
wgrantALL is only used for admin, so I'll just special case it for revokes as well.11:52
stubWe could also just do those grants outside of the outage11:52
stubWe revoke ALL?11:52
wgrantThe current security.py revokes ALL from everyone on everything.11:53
wgrantThen grants the security.cfg permissions, and gives ALL to admin on any object mentioned in security.cfg.11:53
=== jtv is now known as jtv-afk
wgrantNow I interpret relacl, turn the security.cfg + ALL to admin stuff into a dict, and work out differences. Perhaps I could just assume that admin never gets anything revoked.11:55
wgrantAh, but it will also never get anything granted.11:55
wgrantSo I probably do need to work out what's in ALL for each type.11:55
wgrantAny idea where I would find that?11:55
stubwgrant: I wonder if 'grant ALL to ADMIN ON foo, bar, baz...' would work fine - one statement.11:55
wgrantIt does.11:56
wgrantI guess I could just do that.11:56
wgrantOutside the loop of everything.11:56
wgrantJust always do that.11:56
wgrantThat single extra statement can't hurt too much.11:56
stubTwo statements, but big ones :-)11:56
stubOr not revoke - one statement11:56
wgrantWell, the thing is that we only revoke from tables and roles that we know about.11:57
wgrantAnd admin has ALL on everything that we know about.11:57
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: bac | Critical bugs: 247 - 0:[#######=]:256
stubSo REVOKE seems pointless11:57
wgrantSo there's nothing to revoke, unless tables have been dropped from security.cfg, in which case we don't know of their existence.11:57
wgrantSo I'll just do a mass grant.11:58
stubmthaddon: Any progress on firewall rules and pgbouncer on wildcherry?12:00
wgrantThat adds almost 200ms to each node :(12:01
wgrantAh, that's better.12:02
wgrantLooks like I can save a second by iterating over the objects as a set rather than a dict :S12:05
wgrantAhem, no, I just failed to add everything to the set.12:06
=== matsubara-afk is now known as matsubara
wgrant2011-08-05 12:42:28 INFO    Outage complete. 0:00:20.62984212:42
=== almaisan-away is now known as al-maisan
bigjoolshowdy bac13:07
bachi there bigjools13:07
bigjoolsbac: you reviewing?  I have a wee branch13:07
bacyou wee'd on a branch?13:08
bigjoolsfrequently.  It's a long trip to the house across the garden13:08
bacuh, that's what a garden is for13:08
baci'll have a look at your branch.13:09
nigelbeww :P13:09
bigjoolsbac: https://code.launchpad.net/~julian-edwards/launchpad/queue-links/+merge/7055413:09
bigjoolsthanking you13:09
bacbigjools: i looked at the link on dogfood but i don't see what you describe.  do i need to do something to trigger it or am i looking at the wrong place?13:14
bigjoolsbac: look down at the package called "adapt"13:14
bacah, gotcha13:15
bacbigjools: r=bac with one bikeshed13:25
bigjoolsbac: oooo :)13:26
bigjoolsbac: heh - in soyuz, we bikeshed you13:26
bigjoolsyou know about all the acronyms :)13:27
abentleyhenninge: bzr alias mpull="pull -v -d :submit"13:36
abentleyhenninge: bzr alias spump="pump --from-submit"13:37
sinzuijcsackett, I have looked at bugs, branches, teams, and P3As. I think bug 298152 is really fixed13:42
_mup_Bug #298152: privacy portlet is not visible enough for indicating private objects <disclosure> <lp-web> <oem-services> <privacy> <qa-needstesting> <ui> <Launchpad itself:Fix Committed by jcsackett> < https://launchpad.net/bugs/298152 >13:42
jcsackettsinzui: fantastic. :-P you beat me to all my qa this morning.13:45
sinzuiI found a bug that your work should have fixed, and in deed it did. I kept qaing to be certain13:46
abentleybac: Could you please review https://code.launchpad.net/~abentley/launchpad/induce-latency/+merge/70571 ?13:56
danilosbac, hi, I've got a 20 line diff on https://code.launchpad.net/~danilo/launchpad/bug-810116/+merge/70564 as well, if you can find the time to review it, that'd be great13:59
abentleybac: Actually, let me resubmit that as a new branch.14:01
abentleybac: Could you please review https://code.launchpad.net/~abentley/launchpad/induce-latency/+merge/70571 ?14:06
abentleybac: I mean https://code.launchpad.net/~abentley/launchpad/local-latency-port/+merge/70572 ?14:06
bacabentley, danilos: queued14:11
abentleybac: ty14:11
bacdanilos: due to the tininess of your branch and the lateness of your hour i jumped you to the top.  r=bac14:13
abentleyhenninge: This is the scripting framework I accidentally wrote: https://code.launchpad.net/~abentley/launchpad/local-latency-port/+merge/7057214:15
danilosbac, thanks14:15
bacsinzui: are you familiar with ian's person-picker expander work?14:20
sinzuiI am14:21
sinzuioh, I reviewed his branch about 30 minutes go14:22
sinzuibac Sorry. I think I stepped on you14:22
bacsinzui: so you did.  np.  i couldn't get it to work but i think it is b/c i didn't rebuild js14:23
baci would like to see it in action, though14:23
sinzuibac: you would need to do that14:23
bacand i am...14:23
henningeabentley: cool14:27
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
LPCIBotYippie, build fixed!14:35
LPCIBotProject db-devel build #786: FIXED in 5 hr 53 min: https://lpci.wedontsleep.org/job/db-devel/786/14:35
bacsinzui: i'm still not able to see the expander in action.  i14:37
baci've confirmed i have ian's changes loaded in the launchpad.js that is being used14:37
sinzuiDo you also have the feature flags enabled for the picker's new features14:37
sinzuibac: you want the disclosure rules on: https://qastaging.launchpad.net/+feature-rules14:38
bacno mention of FF in the mp and i didn't look at the entire branch14:38
sinzuibac: it depends on a lot of other branches. one I QAed just an hour ago14:39
sinzuiWe are moving a little too fast. I am taking a break from pickers today14:39
bacsinzui: now i see it.  thanks!14:41
bacsinzui: did ian consider using the gallery accordion widget?14:42
sinzuibac No.but now that you mention it, it might solve the dead left margin created by the expander14:43
bacabentley: your MP has henninge as a reviewer.  is he working on it?14:43
bacsinzui: it's already in the tree.  may be overkill, may be a nice solution14:44
abentleybac:  I just told henninge about it, but maybe he decided to review it.14:44
henningeabentley, bac: I am reviewing it but got distracted14:45
bacabentley: ok, it looks like he claimed it then.  i'll not do it unless asked14:45
bachenninge: ok.  let me know if you need to punt it back14:45
henningeabentley: wrong channel? ;-)15:14
abentleyhenninge: yeah.15:15
henningeabentley: I believe so, yes. Every text field will be obfuscated.15:15
henningewhich reminds me we still need special fields for revisions15:15
abentleyhenninge: I think we should call the type "identifier".15:15
henningeabentley: review done, needs fixing.15:16
cr3benji: if I have an interface exporting a List(value_type=TextLine()), how can I require that the list not be empty?15:40
benjicr3: "exporting" meaning over the web service API?15:41
cr3benji: yep, I meant as part of @operation_parameters15:41
benjicr3: ah; I am not aware of a way to do that declaratively, you'll need to raise an exception if that precondition is not met15:43
danilosstub, btw, does not ALTER INDEX RENAME TO not work with primary keys? (for table renames and slony)15:43
=== vila_ is now known as vila
cr3benji: might you happen to know offhand which exception I should raise that would be the same as not providing an argument for other types?15:45
benjicr3: Python raises a TypeError if not enough arguments are provided, I don't know offhand if lazr.restful does something different before Python gets a chance15:47
cr3benji: I'll try it out, thanks!15:48
abentleyhenninge: I've updated the docs and pushed.  I don't understand your implementation suggestion.  Could you explain it?15:48
henningeabentley: sure15:48
=== matsubara is now known as matsubara-lunch
henningeabentley: I was thinking along the lines of this: http://paste.ubuntu.com/659367/15:52
henningeabentley: or maybe I got that wrong?15:52
henningeabentley: I assumed defaults can be specified in this manner.15:53
abentleyhenninge: They can be.  Doing it as a separate step is a bit of a relic of a previous state of the code.15:54
henningeI find it a bit strange that getargspec returns None if no defaults are given.15:55
henningeIt should just return an array of Nones15:55
henningenuns?  ;-)15:55
henningeit's Friday15:55
abentleyhenninge: Yeah, me too.  Hate code that treats None and empty container as the same.16:00
abentleyhenninge: Anyhow, updated and pushed.  Is that what you meant?16:00
henningeoh, diffs are agregated16:03
henningeabentley: I just realized I had missed two revisions16:07
henningeabentley: I had not seen the type being inferred from the default (13598)16:08
henningefailed to reload16:08
abentleyhenninge: Ah.  I did it while brad was working on the other review.16:08
henningeabentley: I should have been clearer about reviewing it.16:09
henningebut since I was looking at it, I thought I might as well review it ...16:09
abentleyhenninge: It was a nice thing to do.  Oh well.16:09
henningeabentley: one more thing that I forgot16:11
henningeabentley: getattr(function, '_helps', {}) can be cached, too, I believe16:11
abentleyhenninge: sure.  will do.16:12
henningeabentley: but anyhow, this *is* what I had in mind.16:12
henningeabentley: what about a test? Or do you think this can do without?16:13
abentleyhenninge: We don't usually test our utilities, do we?16:13
henningeah, right.16:13
henningeabentley: yes, I had just arrived at that conclusion, too ... ;-)16:14
henningeabentley: r=me, thanks for the good work16:14
henningeactually, I'll wait until you pushed that last change16:14
abentleyhenninge: pushed.16:15
henningeabentley: approved. See you on Monday.16:24
abentleyhenninge: ta!16:24
=== beuno is now known as beuno-lunch
stubdanilos: No. Slony caches the name of the primary key in one of its internal tables and isn't smart enough to notice when it has changed.17:12
stubdanilos: I think they stopped doing that in the 2.0 series, or it could be fixed in 1.2 if anyone could be bothered.17:13
benjibac: if you would, please add https://code.launchpad.net/~benji/launchpad/bug-590014/+merge/70614 to your review queue; thanks18:45
bacbenji: ok18:45
=== beuno-lunch is now known as beuno
bacbenji: did you move the template files from being registered views to properties on the existing view necessary to take advantage of the cachedproperties?18:53
benjibac: partly, also so the view wouldn't be instantiated more than once (duplicating queries the second and third times it was instantiated)18:54
bacbenji: right.  smrt.18:54
bacbenji: do you have any demonstration that it actually worked?18:54
benjibac: heh, yep; I used the ++profile++ view on a dev instance to track the queries that were actually executed before and after18:56
bacbenji: ok.  it looked like it *should* be helpful18:57
jcsackettsinzui: did you see that bug 89476 was marked fixed release on lp? is there an associated bit you want to deal with or shall i just delete the card?18:58
_mup_Bug #89476: busted permissions: cannot unsubscribe ubuntu-security when private <disclosure> <lp-bugs> <Launchpad itself:Fix Released> < https://launchpad.net/bugs/89476 >18:58
sinzuijcsackett, I see lifeless marked it as fix released18:59
sinzuiHe saw my tag I think19:00
jcsackettdig. i have kanban open, i'll kill the card.19:00
sinzuijcsackett, mumble?19:06
jcsackettsinzui: sure, one moment.19:06
abentleybac: could you please review https://code.launchpad.net/~abentley/launchpad/resubmit-target-prerequisite-same/+merge/70615 ?19:28
bacabentley: ok19:29
dobeyhmm. i keep getting a 500 error when requesting build of one recipe through the API, at least for our bot user. wonder why :-/19:43
LPCIBotProject db-devel build #787: FAILURE in 5 hr 51 min: https://lpci.wedontsleep.org/job/db-devel/787/20:26
sinzuigary_poster, ping20:43
gary_postersinzui: pong20:45
sinzuigary_poster, help.launchpad.net does not know about +structural-subscriptions. I cannot see a link to that page. How do users find it to manage their subscriptions.20:45
gary_postersinzui, that page does not exist.  It is, if anything, an expert interface; something that we might have removed20:46
sinzuiIt certain does exist. I use ever several time a week to manage all mine and your subscriptions20:47
gary_postersinzui, it is intentionally not part of our advertised UI.  It may go away without warning.20:48
bacgary_poster: that is the page that gavin put together, right?  it was never completed and our new work make it obsolete.20:48
gary_posterbac, correct on the first part.  I agree with your second part, but perhaps that is more arguable (and I have no interest in arguing it).20:49
gary_posterwell, "never complete" is probably fairly factual as well20:50
bacgary_poster: yes, arguable.  but it was purposefully never linked to...a way to make it visible before feature flags20:50
gary_posterprecisely bac20:50
bacmy point being, it was never fleshed out and we didn't *remove* an existing link20:50
sinzuiI do not believe that page is obsolete because it partially addresses a very old issue. Users want a single place to see all their subscriptions20:51
sinzuiThe new work is not hooked into the the user/team bug listing. But I can use the new listing to control multiple subscriptions. I also delete a lot from ~registry20:52
gary_posterI hear you sinzui.  However, it was never worked to be considered release-worthy as is, and not deemed important enough by the mgmt to be completed.  We did not remove it in part because you have repeatedly mentioned that you use it.20:56
gary_posterHowever, in terms of "release features when they are done," this was not done.  If I had had more balls, I suppose I would have ripped it out despite everything, because that would have fit in with the decisions around me.20:56
gary_posterI did not, and it is no now longer part of my domain in particular--the feature is done.20:57
gary_posterour work on it, at least.20:57
sinzuiunderstood. I am just addressing user (bug supervisor) concerns that they receive unwanted email20:57
gary_posterI would have expected that they could manage that via the link in their emails, sinzui (to the equivalent of https://bugs.launchpad.net/launchpad/+bug/240067/+subscriptions).  Expanding "Other subscriptions" should show everything pertinent.20:59
_mup_Bug #240067: Launchpad projects need wikis <feature> <lp-foundations> <ubuntu-platform> <Launchpad itself:In Progress by xaav> < https://launchpad.net/bugs/240067 >20:59
gary_posterAnd let them manage it.20:59
gary_posterBut maybe there's something special about this case that makes that unusable for some reason21:00
sinzuigary_poster, when you get hundred of emails, you do not want a research project to end them. The angry user wants a summary of what went wrong and the power to fix it21:00
gary_postersinzui, yes.  The intent was that you click on a link in an email you are angry about, and fix it.21:01
=== matsubara is now known as matsubara-afk
LPCIBotProject devel build #952: FAILURE in 5 hr 59 min: https://lpci.wedontsleep.org/job/devel/952/22:46

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