/srv/irclogs.ubuntu.com/2010/06/14/#launchpad-dev.txt

=== flacoste is now known as flacoste_afk
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== mup is now known as _mup_
lifelessis it just me, or are pages like https://bugs.edge.launchpad.net/bzr/+bug/4800 rendering really ugly for other folk ?03:24
_mup_Bug #4800: Unwanted side effect of umask and 'bzr rspush' <patch-forwarded-upstream> <Bazaar:Invalid> <BzrTools:New> <bzrtools (Ubuntu):Triaged> <https://launchpad.net/bugs/4800>03:24
lifelessthe right hand side particularly03:24
wgrantAlready fixed.03:25
wgrantBroke yesterday.03:25
ajmitchthe overlapping areas?03:25
wgrantYep.03:25
thumperlifeless: sinzui has submitted a fix already03:37
lifelesscool cool03:38
wgrantAlready in stable, so it'll be on edge tonight.03:39
stubShould our test harness set the random number seed, or would that allow bugs to leak through?03:42
lifelessNeither03:42
lifelessit should be random by default03:42
lifelessand you should be able to specify it if you need to reproduce a specific test run.03:42
lifelessif you need a particular non-random-from-random-source sequence in a test, make the randomness provider replaceable for that code path.03:43
lifelessIMO, YMMV, HTH03:43
stubBecause bugs might leak through?03:47
lifelesslargely03:49
stubI know it wouldn't be an ideal architecture, but it might be practical. There are a few timebombs (which we triggered recently) we wouldn't have to worry about. I can't recall any bugs where random randomness saved us, but we don't have a large sample size.03:49
lifelessmore importantly though03:49
lifelessif you set the random seed, you'd have to do it for every test separately03:50
thumperthe randomness was for subsequent make harness runs (I believe)03:50
thumperso the factory didn't bitch03:50
thumperabout a user already existing03:50
thumperwhen we just wanted some user03:50
lifelessotherwise every time a test that uses randomness is added before an existing test using randomness, that latter test will blow up, if it depends on the output.03:50
thumperI'm with lifeless that the factory should have a seed set when created03:50
thumperif it needs to be tweaked03:50
thumperit should be alterable03:50
thumperbut that would be enough IMO03:51
lifelesssorry, are we talking test runs, or local-instance stuff ?03:51
lifelesslocal-instance I don't care a hoot about in terms of this discussion - whatever works is fine03:51
lifelessbut test run changes can have serious maintenance impact03:52
thumperlifeless: we are getting spuriour test failures because factory created 'things'03:52
thumperlifeless: are now getting 'random' string names03:52
thumperwhich when searching for the non-existance of 'foo' sometimes fails to work03:52
lifelessrandom random, or serial-numbers from an in-python generator ?03:52
thumperI've not looked recently03:53
thumperbut random enough that 'foo' turns up in the random characters03:53
lifelessthis sounds like an isolation issue between tests ?03:53
thumperno03:53
thumperit is the factory03:53
thumperand a bug in that03:53
thumperalthough a bug in the fact that it isn't doing what we want03:53
lifelessok, so a given test starts with a clean sample-db; makes something using the factory, and then asserts that 'foo' doesn't exist, and sometimes it does.03:54
thumperin creating a project that won't match by name03:54
thumperlifeless: yes03:54
lifelessok03:54
thumperabentley and I talked about this on Friday and I think he had a branch in progress that fixed this03:54
thumperback to appending numbers to strings03:55
lifelessif you're suggesting that you should be able to say 'do not call it foo' in the calls to the factory, that sounds appropriate to me.03:55
lifelessalternatively, you could ask the factory 'what is an unused name'03:55
thumperand not random characters03:55
thumperI don't think so03:55
thumperthe factory doesn't know what is an unused name03:55
thumperand it isn't matching 'foo' exactly03:55
thumperwhat we might say03:55
thumperis 'foo' in some unique branch name03:56
thumperone failure was a vocab search test03:56
lifelesssure, just putting it out there.03:58
lifelessin that 'make a unique thing' is a general factory function03:58
lifelessand 'does not match' is still a case of making a unique thing03:58
lifelessoh, and I hate my wifi driver03:58
stubOr we can seed the random module (one line in one of the layers, or pass the seed as a parameter to Factory.__init__ and have readable tests...04:13
stubvs. possibly not picking up genuine failures (although these failures may never show up anyway due to probability)04:14
stubStill, first time it happened so maybe not worth changing anything and just tweaking the test04:15
lifelessstub: I don't see that seeding the random module will avoid these issues04:21
lifelessstub: can you lay out how it would help for me ?04:22
stubThe tests become deterministic04:22
lifelessso if you pick a seed that works for existing tests, and every test has the same seed, what stops new tests from running into bad data at a different point in the sequence ?04:23
stubYou know what random.random() returns, thus Factory.makeSomethingWIthRandomName() returns an object with a random but known name,04:23
stubThe test will fail consistently so will never land04:23
lifelessok04:23
lifelessI think I'd be more comfortable with the factory holding its own random generator and not futzing with the global generator04:23
lifelesswhich sounds like what thumper was saying abentley was working on04:24
stubIf calling random.seed(xxx) in BaseLayer.testSetUp is futzing, then sure. BaseLayer would fix other occurrences too but maybe YAGNI04:25
stubI have no idea if Aaron was fixing it that way or some other mechanism (generating random names from a smaller set of characters for instance, or prefixes or suffixes (although that doesn't help for substring matches, which I think is what we hit), or just refactoring the tests)04:27
lifelessbetter to do04:27
lifelessgenerator = random.Random(xxx)04:27
lifelessand then return values from generator04:27
lifelessthat way you don't interact with any modules using the global random generator04:28
lifelessand conversely, won't be broken if lp code itself were to start using more random values - throwing off the determinism you're going to be relying on.04:28
thumperI'm not suggesting that every value be random04:34
thumperjust the first one04:34
thumperwe used to add a unique integer to the end of the base string04:34
thumperthis would create person1, person2 etc04:35
thumperwhat I suggest is that we seed the initial value with a random number04:35
thumper(which can be overridden if necessar)04:35
thumperand still do the increment and add approach04:35
lifelessI like that04:35
thumperit is simple04:35
thumperand simple is good04:35
lifelessok, nose.against(grindstone)04:47
=== mpt_ is now known as mpt
adeuringgood morning08:23
kb9vqfwgrant: The local Launchpad installation is online and should now be AGPL compliant...  https://quickbuild.pearsoncomputing.net/08:36
kb9vqfIn case you're interested ;-)08:36
kb9vqfThere is still the Ubuntu/Debian issue, but I'm working on that as I have time08:36
kb9vqfLet me know if you see any potential copyright issues (e.g. I missed an image or something isn't quite right about the GPL stuff) and I'll fix them right away08:37
mrevellGoodly morning08:40
thumperhi mrevell09:02
=== almaisan-away is now known as al-maisan
deryckMorning, all.11:02
maxbHi. I need a second opinion on a couple of vcs-imports reviews11:37
maxbI did email the list, but no one responded11:37
maxbSo I'm prodding :-)11:37
jelmermaxb: what import?11:53
maxbjelmer: the blender win??libs ones11:58
jelmermaxb: ah11:58
jelmermaxb: I think it would be ok to have those imports as long as the license meets Launchpad's requirements and as long as the disk space isn't an issue.11:59
jelmermaxb: Assuming the branch was requested by somebody who needed to have it imported.12:00
jmlhello launchpadders12:03
jelmer'morning Jono12:04
krkhanin interface definitions, some times methods return collections of Interface. that was patched later on in a separate file to refer to the derived Interface (IBug etc.). i forgot where the patching process took place. anyone recalls?12:27
krkhannvm, found it at lib/canonical/launchpad/interfaces/_schema_circular_imports.py12:32
=== mrevell is now known as mrevell-lunch
marsjml, I think the topic is stale - thumper set it last Thursday13:34
=== ChanServ changed the topic of #launchpad-dev to: Launchpad Development Channel | Week 2 of 10.06 | PQM is open | https://dev.launchpad.net/ | Get the code: https://dev.launchpad.net/Getting | On-call review in irc://irc.freenode.net/#launchpad-reviews | Use http://paste.ubuntu.com/ for pastes
=== mrevell-lunch is now known as mrevell
=== flacoste_afk is now known as flacoste
=== henninge_ is now known as henninge
=== Ursinha is now known as Ursinha-lunch
noodles775gary_poster: Hi! If you have a spare minute, could you please take a look at the following zope security issue that I'm seeing: http://pastebin.ubuntu.com/449690/15:56
gary_posterlooking noodles77515:56
noodles775Thanks gary_poster . I'm confused, as it seems to recognise the correct proxy, and have the correct permission, but cannot access package_build.15:57
noodles775Ah... or does it have *two* security proxies... and it's using the first?15:57
gary_posternoodles775: I'm still trying to grok the pastebin yougave me, but a common cause for this sort of behavior is *another* security proxied object15:58
gary_posteryeah, I didn't understand that either15:58
gary_posternoodles775: to try your hypothesis, see if you can access something else mentioned by the second proxy and not by the first.  Meanwhile, I'll go try to see what debug_proxy does16:00
noodles775The first is actually a subset of the second... but I'll dig a bit too.16:01
sinzuimatsubara, ping16:02
matsubarahi sinzui16:02
sinzuimatsubara, I do not see any staging oops reports for the last 14 days16:03
sinzuimatsubara, I want to see reports for today mostly, and may some from May 30-3116:04
matsubarasinzui, you can see today's here: https://devpad.canonical.com/~lpqateam/staging-oops.html16:04
matsubarasinzui, I'll look into why the previous days were empty16:05
sinzuithankjs16:05
sinzuimatsubara, it may relate to the db update16:05
matsubarasinzui, https://devpad.canonical.com/~lpqateam/oops-summaries/staging-2010-05-30.html and https://devpad.canonical.com/~lpqateam/oops-summaries/staging-2010-05-31.html16:07
matsubarafor the 30th and 31st16:07
sinzuiI see them in the folder thanks16:07
sinzuimatsubara, This is all I need to see that our MailingListAPIView optimisation does not work16:08
gary_posternoodles775: I believe that the nested security proxies would explain this (and I checked the code reporting it, and it looked sane).  I have not encountered security proxies around security proxies before, so I don't know why or when they would occur, but maybe it has happened in LP before.16:08
sinzuigary_poster, noodles775, thumper encounter this last week16:09
noodles775gary_poster: yep, I can see why it's happening now. I'm manually setting a ProxyFactory() for the result of my adapter, but then it seems that getAdapter() also wraps the result in a proxy for the specified interface (which is different).16:09
gary_postersinzui: interesting.  was there a resolution?  I was about to ask you and Francis if you had encountered16:09
gary_posternoodles775: ah-ha.16:10
gary_posternoodles775: so the getAdapter proxy is the outer one?16:10
sinzuiI think he unwrapped it twice. but we was very dissatisfied and may have come up with a solution or at least an explanation16:10
noodles775gary_poster: yes. I'd like getAdapter to not add its own :/16:11
sinzuigary_poster, thumper was trying to reduce the number of queries we call for every page16:11
gary_posternoodles775: when you register your adapter, is it registered as "trusted"?16:11
gary_poster  If it is, then that might be a solution16:11
gary_postersay it is not trusted16:11
gary_posterand then rip off the proxies yourself on entrance to your adapter16:12
gary_posterand then I don't think you will have external code that will add a proxy on exit16:12
gary_posterIf that's not the case, and not a solution, I'll look deeper, but that's my first guess16:13
noodles775gary_poster: I tried with trusted="True", but it didn't seem to change (hrm, maybe it's "true").16:13
gary_posternoodles775: you want False16:13
* noodles775 tries16:13
gary_poster(don't remember fals vs. False)16:14
noodles775How do I rip off the proxies?16:14
gary_posterremoveSecurityProxy16:14
noodles775Ah, I'd not used it just for one proxy before... great...16:15
* noodles775 tries16:15
gary_posterIf this is the problem/solution maybe we can convince upstream to make the "trusted" behavior say "if the output is already security proxied then *leave it alone*".  (Right now it says, IIRC, proxy the output, period.)  Or maybe there's some other upstream solution16:17
gary_poster(like, why is it making a proxy based on an interface, when we already have a registered proxy?)16:18
sinzuimatsubara, I just noticed that https://devpad.canonical.com/~lpqateam/staging-oops.html is from May 31. We do not have a report for what is happening today16:19
matsubarasinzui, so it's very likely that oopses are not being synced from staging to devpad or there are no oopses on staging at all16:19
matsubarasinzui, I'm pinging the losas to find out what's up with the oopses16:20
sinzuithanks16:20
noodles775gary_poster: Thanks! Confirming that removing the outer proxy ensures that the returned result is just proxied with my specified one. Thanks sinzui too for the hint.16:23
gary_posternoodles775: great, so that is also confirmation that the "trusted" thing was the source of the additional proxy?16:24
noodles775gary_poster: erm, no... I'll re-check now, but when I tried both trusted with true and false, I was still getting the wrapped proxy.16:25
* noodles775 checks again.16:25
* gary_poster would like to know the source of the naughty proxy16:25
noodles775gary_poster: confirming that either way (trusted true or false), the calle to getAdapter() is proxied with the passed IFace... and actually, the docs seem to agree with this? http://apidoc.zope.org/++apidoc++/Interface/zope.component.zcml.IAdapterDirective/index.html16:30
noodles775That is, trused just gives the adapter itself unfettered access to the object, it doesn't seem to change whether the result is proxied?16:30
gary_posternoodles775: my understanding was that, for trusted adapters, the output was supposed to be proxied if the input was.  Checking implementation16:36
gary_posternoodles775: my understanding is confirmed that a "trusted" adapter has custom code to handle reproxying the output if the input was proxied.  However, my guess is that your adapter registration also specifies permissions on it?16:48
gary_posternoodles775: sorry for dwelling on this, but someone else encountered this, and it pretty clearly is something that is lame somewhere.  We should understand the cause at least, and quite possibly address it.16:49
matsubarasinzui, syncing was disabled. it's now re-enabled and staging-oops.html should be updated within the hour16:53
sinzuithanks!16:54
=== beuno is now known as beuno-lunch
=== Ursinha-lunch is now known as Ursinha
=== matsubara is now known as matsubara-lunch
=== beuno-lunch is now known as beuno
=== bac` is now known as bac
barrysinzui: could you explain a little bit what was done to fix bug 590840?18:07
_mup_Bug #590840: timeout MailingListAPIView <oops> <qa-ok> <timeout> <Launchpad Registry:Fix Committed by edwin-grubbs> <https://launchpad.net/bugs/590840>18:07
sinzuibarry, EdwinGrubbs optimised the set sender and receiver address in the ML model18:07
sinzuibarry, last db update we had 248 timeouts on staging. We have about 9  this tine18:08
sinzuibarry, The loop you added worked and still works, but the queries work more often on the first try now18:08
EdwinGrubbsbarry: the main improvement was retrieving only the three columns necessary from the db instead of all the columns from four tables.18:09
barrysinzui: ah, so it's not trying to collate all the lists together, like the last (unsuccesful - i suck) attempt?18:09
sinzuis/set sender and receiver/GET sender and receiver/18:09
sinzuibarry, right18:10
sinzuiLp in py2.6 ready. I do not know when lpnet will be Lucid, but we may be ready for MM3 soon18:11
barrysinzui: excellent.18:11
sinzuiLp /in/is/18:11
barrysinzui: very cool18:11
barrysinzui: i'll have to allot some background time to that work now18:11
* sinzui has got to stop typing with kittens next to me18:11
barryme. ow!18:12
sinzuiI have a deaf kitten who likes to sleep on my keyboard.18:12
maxbI'm quite looking forward to the importds getting to be lucid, for Subversion 1.618:12
sinzuiShe often sets the volume to 11 and scares the other cats away18:12
mrevellNight all18:13
=== matsubara-lunch is now known as matsubara
matsubarasinzui, I recreated staging oops summaries for the 7th to 13th. there are no oopses for 1st to 6th. You can see them at https://devpad.canonical.com/~lpqateam/oops-summaries/staging-YYYY-mm-dd.htmll19:54
sinzuimatsubara, thanks19:55
sinzuiI was able to verify that edwin's mailing list changes reduces timeouts by 95%19:55
matsubaracool!19:56
jmlg'night all20:00
=== ubuntujenkins is now known as revisionist
=== revisionist is now known as ubuntujenkins
marsgary_poster or leonardr, do you know if the lp-land command works for non-launchpad PQM projects as well?20:35
gary_posterI don't mars20:36
leonardrnor do i. i always land manually20:36
gary_postermars, it does not:20:36
gary_poster$ bzr lp-land --help20:36
gary_posterPurpose: Land the merge proposal for this branch via PQM.20:36
gary_poster...20:37
gary_posterFrom:     plugin "pqm"20:37
marsyes, so it should work, since the information comes from the proposal20:37
gary_poster:-)20:37
zygais package building service still available?20:37
gary_posteroh I misread your question20:37
gary_posterso, maybe so20:37
gary_posterzyga, you mean PPAs?  If so, definitely20:38
zygagary_poster, no, packages from bzr + recipe20:38
gary_poster'fraid I don't know, sorry20:38
zygahttps://wiki.ubuntu.com/DailyBuilds/GettingStarted20:39
marszyga, abentley or rockstar may know20:39
maxb<abentley> jcastro, you mean with source package recipe builds?  I'm running a stress-test right now.  If that goes well, we could see it deployed on edge soon.20:39
maxb(from #launchpad, not long ago)20:39
zygajames_w, ^^ do you know something about this, you seem to (https://wiki.ubuntu.com/DailyBuilds/AvailableDailyBuilds) maintain lots of them20:40
zygaabentley, rockstar: can I setup daily builds of my branch?20:40
abentleyzyga, that service is not currently available.20:40
zygaok, thanks20:40
abentleyzyga, we had hoped to have it deployed by now, but some changes were made that caused it to wreak havoc on the buildfarm, so we had to disable it.20:41
abentleyzyga, but we have fixes in place now, and we're in the middle of testing them.20:42
* mars jots down another case for something like http://www.google.com/appsstatus#hl=en20:42
zygaabentley, thanks for the explanation20:43
=== al-maisan is now known as almaisan-away
maxbCan anyone confirm, launchpad-database-dependencies needs to stay on 8.3 until such time as production migrates to 8.4? Or not?21:05
kb9vqfSo...any good reason why the keyserver deleted all my keys when the computer was restarted?22:55
=== Ursinha is now known as Ursinha-dinner
=== matsubara is now known as matsubara-afk
wgrantkb9vqf: The dev configuration keeps things in /var/tmp, and there's probably a Makefile target somewhere that purges /var/tmp/zeca, which contains the keys.23:15
kb9vqfAh, OK.  Thanks!23:15
kb9vqfNothing else was affected, so the keyserver must be unique that way23:15
wgrantmake clean erases some stuff.23:18
wgrantLike that.23:18
wgrantMaybe it shouldn't. But then it probably also shouldn't erase PPAs.23:19
kb9vqfAnd I stupidly ran it to get the AGPL source tarball23:19
thumperkb9vqf: can I ask what the purpose is of setting up your own Launchpad instance?23:19
kb9vqf:-P23:19
kb9vqfthumper: Debian packages23:19
thumperkb9vqf: what isn't the public Launchpad offering?23:19
kb9vqfthumper: Debian support23:19
kb9vqfAnd possibly other distros23:20
thumperhow do you envision keeping things in sync?23:20
kb9vqfNot sure yet23:20
kb9vqfI might create a diff between my instance and the branch it originated from, and then keep applying that to the latest LP trunk23:21
kb9vqfDon't know if that will work though23:21
kb9vqfwgrant: Anything special about the ppa_key_guard celebrity?23:21
kb9vqfe.g. how would I create it?23:22
wgrantkb9vqf: It's where the PPA keys are attached.23:22
wgrantIt's just a normal unactivated user.23:22
kb9vqfOK23:22
wgrantSimilar to the janitor.23:22
thumperkb9vqf: and so I'm clear, this is intended to be a public service?23:26
kb9vqfthumper: I'm considering it23:26
kb9vqfAt the very least the built PPA packages will need to be publically accessable for Trinity23:26
thumperkb9vqf: what is Trinity?23:27
kb9vqfhttp://trinity.pearsoncomputing.net23:27
kb9vqfContinuation of KDE323:27
kb9vqfLots of packages, would be a nightmare without Launchpad23:27
thumperkb9vqf: and your reason for not using the public one is lack of debian build support?23:28
kb9vqfthumper: Yes23:28
thumperok23:28
kb9vqfthumper: And I was also considering extending the build system to handle RedHat23:28
kb9vqfAlthough that will be far in the future23:29
kb9vqfDo you see any legal problems with what I'm trying to do now?23:29
thumperI'm not a lawyer23:30
thumperthe code is AGPL23:30
thumperthe code you run has to be publicly accessable23:30
kb9vqfI know; just don't want to step on any toes23:31
thumperperhaps just social fragmentation23:31
thumperthe intent of Launchpad is to be a central location and project registry23:31
thumperhaving multiple public launchpad instances dilutes this ideal23:31
kb9vqfAh...23:31
kb9vqfMy purpose isn't really to deal with Ubuntu stuff though23:31
kb9vqfNot on this instance23:32
kb9vqfThis is more for Debian and other distros23:32
kb9vqfI'm still using the public Launchpad for Ubuntu packages23:32
* kb9vqf notes that the code is up as a tarball under the QuickBuild project at https://quickbuild.pearsoncomputing.net/quickbuild for AGPL compiance23:33
kb9vqfwgrant: I tried to run this code:23:34
kb9vqf    ppa_key_guard = factory.makePerson(23:34
kb9vqf        name='ppa_key_guard', displayname='Launchpad PPA Key Guard',23:34
kb9vqf        email='ppa_key_guard@example.com')23:34
kb9vqfAnd I got: lp.registry.interfaces.person.InvalidName: ppa_key_guard is not a valid name for a person.23:34
kb9vqfWhich doesn't make much sense23:34
kb9vqfwgrant: Is it supposed to be ppa-key-guard?23:36
kb9vqfI guess it was23:38
wgrantkb9vqf: Right. underscores in the Python name, hyphens in the Launchpad name.23:40
wgrantUnderscores are ugly.23:40
kb9vqfMakes sense.  And it worked right up until when I ran out of disk space23:40
kb9vqf:-P23:40
wgrantHeh.23:40

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