/srv/irclogs.ubuntu.com/2012/04/12/#launchpad-dev.txt

timrcbigjools, thanks :)00:18
wgranttimrc: Why do you need to?00:19
wgranttimrc: PPA packages by default build against all components.00:19
timrcwgrant, You won't like it... we want to upload proprietary packages to project PPAs and when we pull them into our archive "downstream" route them into a private component00:22
timrcwgrant, it would be easy to do this if we could publish packages to different components in the PPA00:22
wgranttimrc: You're not wrong :)00:22
wgrantPerhaps use different PPAs?00:22
timrcwgrant, that's an option.. was hoping for something more "elegant"00:23
wgrantI campaigned years ago for custom component support in PPAs.00:23
wgrantBut ended up satisfied when they relented and implemented multiple PPAs per person00:23
wgrantIt works well for most things00:23
timrcYeah, there is a certain appeal as it naturally enforces a good separation00:25
timrcI'll list it as an option for my team to discuss... we basically don't have a good way of handling this scenario right now, though00:25
timrcpeople should quit making proprietary software :)00:26
wgrantThat sounds like the easiest solution :)00:28
timrcHm my 8 mo old daughter is trying to eat the heads off the meerkats on this 10.10 shirt... guess I better go feed her.  Thanks for the assistance00:36
=== timrc is now known as timrc-afk
lifelessit would be a step towards consistency to let ppas do components00:38
wgrantLetting PPAs have Ubuntu's components is not particularly useful00:42
wgrantLetting them have custom components might be00:42
cjwatsonExcept for PPAs intended to be copied to Ubuntu00:44
cjwatsonI mean, custom components wouldn't hurt if done right, but in that case letting them have Ubuntu's components is useful00:45
lifelessletting them have the same components would permit removing special case code00:45
cjwatsoncomponents do still need to be per-archive00:46
cjwatson(e.g. Debian)00:46
lifelessyes indeed00:46
wgrantExactly.00:46
wgrantThey need to be per-archive00:46
wgrant(DDs had some of this vaguely specced out, even up to dependencies between components and archives)00:48
lifelessone month f changes to devel:00:53
lifeless586 files changed, 13951 insertions(+), 5928 deletions(-)00:53
lifelessnot so much stable on loc00:53
wgrant 3659 files changed, 97472 insertions(+), 95512 deletions(-)00:56
wgrant2011-12-01 -> 2012-03-3100:56
wgrantNot so bad00:56
lifelessthats better yes00:56
wgrant 2345 files changed, 58185 insertions(+), 59554 deletions(-)00:57
wgrant2012-01-01 -> 2012-03-3100:57
cjwatson 1025 files changed, 40735 insertions(+), 35055 deletions(-)00:58
cjwatsonsince new policy (so 2012-02-10 -> now)00:58
bigjoolslifeless: PPAs used to have components and we removed them00:59
bigjoolsit confused the heck of out a lot of users00:59
wgrantlifeless: https://lpstats.canonical.com/graphs/SourcherryCPU/20120314/20120413/ is interesting01:15
wgrant9.1 stabilised CPU usage and cut it by 40%01:15
wgrantI wonder if it was the new slony01:16
wgrantNope, not slony01:19
lifelesspg 9.1 perhaps01:20
=== timrc-afk is now known as timrc
wgrantIt was clearly at the time of the upgrade, and slony wasn't upgraded at the same time, so it was probably 9.1 itself, yes.01:20
lifelessdid pages get faster tho?01:21
timrcin theory I could just use a derived distribution overlay with no packages and upload a package to restricted, right :)?01:21
lifelessyes01:22
wgranttimrc: Hahahahaha01:22
wgrantlifeless: We don't have a staging PPR, do we?01:22
lifelessdon't think so01:23
lifelesspick a search thats slow hot and try it01:23
lifelesson both prod & qas01:23
timrccjwatson, when creating a PPA you could define the PPA as an Ubuntu archive or a Customer archive or something, but seeing as how this will never get developed, probably not worth discussing01:24
timrcCustomer? Custom01:25
wgrantlifeless: Bug searches aren't faster AFAICR01:25
timrcAt any rate we'll figure out some way to horribly abuse LP, jk01:25
lifelessflacoste: http://www.forbes.com/sites/stevedenning/2011/07/08/the-five-big-surprises-of-radical-management/02:18
lifelesswgrant: do you know where the bug is about lazr.restfulclient not respecting the type of resources in collections?02:29
wgrantlifeless: wadllib02:34
wgrantBug #34093502:35
_mup_Bug #340935: Resources are only instantiated using the WADL predicted type, not the actual found type <wadllib:Triaged> < https://launchpad.net/bugs/340935 >02:35
* wallyworld__ is sad that his computer has started to spontaneously reboot after the latest updates were applied :-(02:42
lifelesswallyworld__: maybe its building up credit02:43
lifelesswallyworld__: so it won't have to reboot layer02:43
wallyworld__hah02:43
wallyworld__like LOC02:43
lifelessindeed02:44
wallyworld__if i'm lucky i can work for say 10 minutes each time02:44
lifelessanything in syslog?02:44
lifelessyou could try putting tail -f /var/log/syslog in a terminal, pinned to top02:44
lifelessmight catch a glimpse02:44
wallyworld__haven't looked yet, just trying to quickly land some branches first02:45
* bigjools hides the Boris Spike code from wallyworld__02:47
wallyworld__who is Boris?02:47
bigjoolshave you seen Goldeneye?02:47
wallyworld__a long time ago02:47
lifelessrick_h: around ?02:51
rick_hlifeless: yea, just got home02:52
lifelesshey02:52
lifelessso I'm curious why you used PersonNotification manually02:52
lifelesslike02:52
lifelessits a background sending thing02:52
lifelessother uses of it use PersonNotificationSet.add(..) and don't call send02:52
lifeless(I'm also curious why you used it at all vs just sending the message)02:53
wallyworld__anyone know where traversal stuff like stepthrough is tested?02:53
wallyworld__or the ++model++ stuff02:53
rick_hlifeless: so for part 1, not sure. I just loaded up the object and that seemed to be the use. I could have misused it I suppose. loading it up now.02:53
rick_hlifeless: for part 2. I used it after discussing ways of sending emails. A background process sounded good so requests weren't hung up on smtp/in band stuff02:54
rick_hlifeless: I forget who pointed it out to be as a pretty light easy to use way to get emails scheduled02:54
wallyworld__found the ++model++ tests02:54
rick_hlifeless: either deryck or sinzui I think since I chatted with both of them in pre-impl.02:55
rick_hlifeless: but yea, you're right, I shouldn't have called send and I shouldn't have patched send to override the email since it's not backgrounding like I wanted and defeats the purpose02:56
rick_hcompleetely missed that02:56
rick_hexcept spelled better02:56
lifelessso the reason we have background stuff is for teams02:58
rick_hlifeless: ah, I see where I went wrong. So most code uses the Set object, but I wanted to override the To addr so I went after the raw PersonNotificatoin object02:58
lifelessthat may notify thousands02:58
StevenKwgrant: LP.cache.context.information_type == undefined :-(02:58
lifelessthis is for notifying of changes to individuals02:58
rick_hlifeless: ok, I just assumed it's good practice since things like slow/delayed smtp servers could cause request timeouts/etc02:58
lifelessrick_h: we have local smtp on every server02:59
lifelessrick_h: sending hundreds of mails is a problem, sending a fixed number isn't02:59
lifelessrick_h: thanks, this helps me out02:59
rick_hlifeless: ok, I did notice there seems to be a few ways to send emails out and when I mentioned background this was pointed out to me02:59
wgrantStevenK: Ah, possibly because this is a bugtask, not a bug.02:59
wgrantStevenK: Hopefully the bug is there as well. If not, put it there :)03:00
rick_hlifeless: but yea, I did it wrong because when a user wants to change their preferred email I needed to send to their previous addr and PersonNotification doesn't support it03:00
rick_hwhich is why I couldn't copy what other uses were doing directly03:00
StevenKwgrant: self_link is the bug.03:00
StevenKwgrant: Just trying to find where is defined03:01
wgrantStevenK: Try LP.cache.bug.information_type03:02
StevenKOoh, that looks good.03:03
* StevenK nails wallyworld_ to IRC.03:03
wallyworld_can you make my pc stop rebooting?03:04
rick_hlifeless: so while I'm fixing that in the morning the goal is to ditch the event as well?03:04
StevenKI'd watch tail -f /var/log/syslog like lifeless suggested03:04
StevenKOr downgrade what you recently upgraded03:04
wallyworld_it just happens to quickly for me to see what syslog says03:06
wallyworld_i will try downgrading but it was a large number of packages that were upgraded03:06
lifelessrick_h: well, I'm doing a sketch on it as you're past EOD03:06
StevenKDo you have another machine?03:06
wallyworld_> 50 or 6003:06
wallyworld_nope03:06
rick_hlifeless: yea, I've got to hit the sack soon. Couple of late nights for me03:06
StevenKwallyworld_: No even running Windows?03:06
wallyworld_my home theatre pc03:07
rick_hlifeless: thanks, shoot me a message on status and I'll pick up/finish whatever needs doing in the morning. Thanks for pointing out my misuse of the notification.03:07
rick_hmissed in code review and my own look through it today03:07
StevenKwallyworld_: Install PuTTy on it, ssh into your laptop and tail syslog over it?03:07
wallyworld_StevenK: you are an ideas man. i may just try that. thanks03:07
StevenKJoustling sticks?03:08
StevenK'Ideas man' just reminds me of The Castle.03:08
wallyworld_tell him he's dreamin'03:09
wallyworld_that's going straight to the pool room03:09
wallyworld_why would you eat out?03:09
StevenKwallyworld_: Does 'if (some boolean) {' do what I expect in JS, or should I say === true ?03:11
wallyworld_StevenK: it will evaluate to false if undefined also03:12
wallyworld_StevenK: so if that's what you want then that's ok03:13
lifelesswow we are so inconsistent about From:03:14
lifelessrick_h: btw, why does this generate multiple emails in those doc tests?03:15
lifelessrick_h: are we also notifying separately to the new address?03:15
lifelessrick_h: nvm, figured it - we're doing a token challenge03:15
lifelesswhat stops teams getting ssh keys / gpgkeys ?03:18
wgrant        if params.distroseries is not None:03:26
wgrant            parent_distro_id = params.distroseries.distributionID03:26
wgrant        else:03:26
wgrant            parent_distro_id = 003:26
wgrantwat03:26
* wgrant blames lifeless03:26
wgrantwtf is this03:27
lifelessI don't recognise that03:30
lifelessparent_distro sounds like UDD03:30
wgrantIt's in the structsub searching that you reworked03:30
wgrantNo03:30
lifelesssorry, I mean DD03:31
wgrantStill not :)03:31
wgrantIt's just the distro that owns the series03:31
wgrantIn this case03:31
wgrantThe constraint that uses it doesn't make much sense03:31
wgrantNot to mention the whole defaulting to 0 thing03:31
lifelessyou've annotated the pre-move search to see it was me ?03:32
wgrantNo/03:32
lifelessrevno: 14485 [merge]03:34
lifelessI was on lave03:34
lifelessleave03:34
lifelesswgrant: sinzui03:34
wgrantStill your fault :)03:35
lifelesshah!03:35
lifelessrick_h: btw telling folk that an ssh key *can't* be used anymore isn't important03:37
lifelessrick_h: it doesn't open up security holes ;)03:37
wgrantI think it's still interesting.03:38
lifeless*adding* one is crucially important03:39
wgrantCertainly03:39
rick_hlifeless: yes, deryck thought that if someone removed your ssh key and potentially locked you out of things like bzr access you'd want to know why.03:44
rick_hlifeless: but I agree, it's on the lower end of the notification scale03:44
lifelessI think its nice in an auditord sense03:46
lifelessI'm not sure its worth an email03:46
lifelessnot to worry, I'm keeping it03:47
rick_hlifeless: yes, this discussion brought out a new bug I filed on adding some auditing support because if someone does change your email we can't verify what it was/you are who you say you are easiliy03:47
lifelessstevenk has an auditord nearly ready03:47
rick_hlifeless: or that we can generate a list of all the data a malicious user changed so that we make sure we can revert all the changes, etc03:47
lifelessrick_h: log files :>03:48
rick_hlifeless: ah, good to know then03:48
rick_hlifeless: on the sql queries? Not sure what all we have there.03:48
rick_hlifeless: it was brought up that we could try to do some sql backup/etc pulling, but painful03:48
rick_hlifeless: but yea, that was deemed outside the scope of the current branch and the idea is to prevent it from happening03:49
lifelesshuh, no.03:49
lifelesswe email on these things03:49
lifelessthey are all important03:49
lifelessso there should be email logs for them all03:49
lifelessnot in smtp, in our email engines.03:49
lifelessthat said, its 3 settings03:50
lifelesspreferred mail03:50
lifeless(and all contact addresses arguably)03:50
lifelessssh keys03:50
lifelessgpg keys03:50
rick_hright, but we can restore data based off the email logs?03:50
lifelessI think saying to someone 'we've nuked the settings, please set up the way you want' is a simple and solid answer03:50
lifelessits not like restoring complex data03:50
rick_hlifeless: ah ok03:50
lifelessor to put it another way03:51
lifelesseven if we *did* restore it03:51
lifelessany Ubuntu dev worth their salt would manually verify it all anyway.03:51
rick_hright, I think the idea was more someone jumps in irc "I can't login!" "who are you? what's your email?...that doesn't match what I've got, let's see if it's changed and what it was?"03:51
lifelessrick_h: another thing we should notify on is adding oauth tokens03:51
lifelessrick_h: an audit trail for that would be good, and I'm +1 on having an audit trail03:52
rick_hlifeless: ok, haven't seen taht03:52
lifeless(again, StevenK :))03:52
rick_hlifeless: yea, cool03:52
lifelessrick_h: when you allow an app access to your account, would you object to being told that that has happened ?03:52
rick_hsorry, haven't seen the oauth stuff, cool on the WIP audit trail03:53
rick_hlifeless: not sure, I've got to check the oauth use. Is that just for apps? scripts using api?03:56
rick_hlifeless: I guess it should be rare I get these right? Changing keys, email is pretty rare. Annually maybe in practice worst case?03:56
lifelessright03:57
lifelessgenerally its one-time setup03:57
lifelessrick_h: did you do GPG keys when you did this ?03:59
lifelessrick_h: or do they already notify ?03:59
rick_hyea, they already get an email because you have to decrypt your email with the key to verify03:59
rick_hso gpg keys aren't in this03:59
lifelessdoes that go to the preferred address03:59
lifelessor the address in the key04:00
rick_hpreferred04:00
lifelesscause if it goes to the address in the key it would be useless04:00
rick_hI believe, I'll have to dbl check I guess04:00
lifelessI believe it goes to the address in the key04:00
lifelessso we know they aren't impersonating someone via the key04:01
rick_hk, I'll double check. It's hidden in some browser action so I've got to find it again.04:03
lifelessnow where is that doc on Launchpads voice04:03
rick_hhttps://dev.launchpad.net/UserInterfaceWording/CanonicalStyleGuide?highlight=%28voice%29 looks like what you might mean?04:04
lifelesshttps://dev.launchpad.net/UserInterfaceWording04:05
rick_hbah, I fail at going to bed during the right day04:07
rick_hI'm really gone to bed this time. Will look over the wording docs lifeless, thanks for pointing out. Looks like I wrapped wrongly off the bat04:08
lifelessrick_h: :P04:09
lifelessrick_h: gnight04:09
lifelessoh wow04:24
wgrant?04:24
lifelessthats a fun hole04:24
lifelesswe validate a preferred but unvalidated email address when a different preferred email address is set04:25
wgrantPreferred but unvalidated?04:25
wgrantwhat?04:25
wgrantlifeless: Anything setting an unvalidated email to PREFERRED without first validating it is a bug.04:26
wgrantPreferred > validated04:26
lifelesswgrant: as I said04:30
lifeless'thats a fun hole'04:30
lifelessperson.py04:31
lifelesslook for existing_preferred_email.status = EmailAddressStatus.VALIDATED04:31
wgrantlifeless: An existing preferred email is by definition already validated.04:31
wgrantBecause we're setting it from preferred to validated04:31
lifelesswgrant: oh, I see, right04:31
lifelessso this could be more clear04:31
wgrantAnd preferred is stricter than validated04:31
lifelessalso, we have to totally different concepts conflated. Win.04:31
wgrantYes.04:31
wgrantWin04:31
lifelessI would model this with preferred as a pointer from person, constrainted by trigger checks to be validated.04:32
lifelessanyhow04:32
lifelessthats then, this is now04:32
wgrantThe idea was to avoid triggers, I believe.04:32
wgrantOr you could also have a preferred flag04:32
lifelessand a composite unique index04:33
lifelessor whatever04:33
wgrantWith UNIQUE emailaddress(person) WHERE preferred04:33
wgrantRight04:33
wgrantIt's insane.04:33
wgrantBut 200504:33
wgrantSo we sort of have to live with it04:33
StevenKIt doesn't sound that hard to shift away.04:34
lifelessits straight forward04:34
lifelesslittle returns04:34
lifelessprobably not the most significant thing to improve right now04:34
StevenKMore straight-forward than bug.{private,security_related} -> bug.information_type :-)04:34
wgrantNo04:35
wgrantOnly a few places touch that04:35
wgrantThere are dozens upon dozens of places that touch emailaddress.status == 404:35
lifelessrick_h: I've pushed an opinionated branch to https://code.launchpad.net/~rharding/launchpad/email_notice_959482/+merge/9999504:45
lifelessrick_h: its about half the size, a significant chunk of which was the event overhead + the need for dedicated per-event tests.04:45
StevenKwallyworld_: O hai.04:46
lifelessrick_h: let me know what you think, I obviously don't want to be blocking you in any way.04:46
StevenKwallyworld_: Since I moved the ChoiceSource stuff into its own module, Y.one('body') seems to return the enclosing div.04:47
wallyworld_StevenK: that seems strange at first thought04:47
StevenKwallyworld_: It seems to be strange. If I change it to a private type, the enclosing div turns red.04:48
wallyworld_StevenK: Y.one('body') should return the html element <body>04:49
StevenKYes, agreed.04:49
wallyworld_fiik what's up then :-(04:50
wallyworld_have you looked at the html source in the browser to make sure there isn't anything stupid in there?04:51
wallyworld_or tun it through an html validator?04:51
wallyworld_run04:51
StevenKNow it works. I think it's toying with me.04:52
wallyworld_like my pc hardware04:52
StevenKwallyworld_: Oh, could I get your help with the JS fallback? If I set href to the link in the TAL, the JS never fires.04:53
wallyworld_StevenK: you have set the onclick handler?04:53
StevenKI thought the ChoiceSource does that for me?04:53
wallyworld_yes, should do04:54
wallyworld_i have a quick look at the source code to see if it is doing anything dumb04:54
wgrantInstance i-4ea81529 starting................................................................................................................................................................................... started on ec2-67-202-7-98.compute-1.amazonaws.com04:56
wgrantStarted in 15 minutes 46 seconds04:56
wgrantodd04:56
StevenKwgrant: Orsum.04:56
StevenKwallyworld_: Sigh, that works now too.04:57
wallyworld_StevenK: maybe browser caching issue?04:57
StevenKHm. Maybe.04:57
StevenKAssertionError: The vocabulary must implement IEnumeratedType05:03
StevenK:-(05:03
wgrantblink06:16
wgrantlp.bugs.model.bugtasksearch._build_pending_bugwatch_elsewhere_clause06:17
wgrantFirst bit, 'if params.product'06:17
wgrant                    AND RelatedBugTask.id = BugTask.id06:18
wgrantAm I not thinking it through correctly, or is that inverted?06:18
wgrantAh06:23
wgrant    @property06:23
wgrant    def pending_bugwatches_url(self):06:23
wgrant        if not IProduct.providedBy(self.context):06:24
wgrant            return None06:24
wgrantSo that codepath is never exercised, I guess06:24
lifelesswgrant: did you sstart a thread on tag sort order on the list ?06:27
wgrantNo, I'll do that now.06:28
adeuringgood morning07:44
=== almaisan-away is now known as al-maisan
gmbDoes anyone have a spare second to run a test for me in their lp dev environment?08:45
lifelessgmb: p'rhaps08:45
gmblifeless, bin/test -t externalbugtracker-bug-imports.txt if you'd be so kind.08:46
lifelesshah, out of date schema08:47
lifelessmaking new08:47
gmblifeless, Oh ,wait.08:47
gmbNo need.08:47
gmbI see why it's failing08:47
gmbIt's because I'm stupid.08:47
lifelessdo -not- give me straight lines like that08:47
gmb:)08:48
lifelessI won't be able to help myself if you do08:48
gmbTurns out that it helps if you're running tests in a Lucid (or Oneiric) container, not on Precise. My lxc container had exited and I hadn't noticed.08:48
lifelessah yes, that will mess you up08:48
lifelessI don't have a non-lxc postgresql, helps avoid that confusion08:49
gmbYeah, I think this is my cue to nuke mine :)08:49
gmbOtherwise I'm going to do this again.08:49
lifelessah, insanity!08:49
gmb:)08:50
czajkowskiit's wrong to be so happy with only having 1 ticket in my RT queue but I am :D08:54
czajkowskirt queue has been fully smacked :D08:54
=== al-maisan is now known as almaisan-away
StevenKjml: Hai. Are you able to QA r15074 today?11:27
jmlStevenK: I guess.11:28
jmlStevenK: I'm surprised that's how it works though11:28
StevenKjml: Really? Developers are mostly responsible for their own QA. In this case, you should be able to ask the webops to make you an admin on qas for short amount of time.11:29
jmlStevenK: I'm trusted as a judge of behaviour but not of code quality?11:30
jmlanyway11:30
StevenKjml: In what way, that you need a review?11:30
jmlStevenK: yes.11:31
StevenKjml: Everyone has their branches reviewed, except if the change is small and well-understood, in which case, graduated reviewers can self-review. So don't feel like it's just you.11:32
StevenKjml: And you wrote the feature so you should have a very good understanding of how it is supposed to behave.11:33
jmlYeah, that's exactly how it works.11:33
jmlStevenK: anyway, I can QA the feature today (UK).11:34
StevenKjml: Thanks. If you don't feel comfortable QA'ing, then please feel free to hand it off to a LP dev if they agree to do it -- we just tend to assume the developer who wrote it will do the QA.11:35
=== matsubara-afk is now known as matsubara
=== almaisan-away is now known as al-maisan
benjijml: are you available to review my branch which will (soon) bring the TSFM tests inline with the improved tests on your branch?12:54
jmlbenji: yes, roughly speaking12:54
jmlbenji: I mean, I can do it today. A synchronous review is probably beyond me.12:54
benjijml: that's cool, thanks12:55
benjijml: while I have you on the line, do you know anything about TestThreadSafeForwardingResult.test_forwarding_methods and why it does what it does (testtools/tests/test_testresult.py)12:56
benjiI don't understand the underlying intent of the test.  And the sparse comments in the test seem to disagree (or at least are irrelevent) to what the test actually verifies.12:56
jmllooking12:56
=== rick_h changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: rick_h* | Firefighting: - | Critical bugtasks: 4*10^2
jmlbenji: No idea, sorry.12:58
benjijml: thanks anyway12:58
jmlbenji: perhaps ask lifeless when he gets back online.12:58
benjiyep12:58
=== jcsackett changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: jcsackett, rick_h* | Firefighting: - | Critical bugtasks: 4*10^2
adeuringabentley: mumble?13:58
abentleyadeuring: coming13:59
abentleyadeuring: https://pastebin.canonical.com/63588/14:02
=== al-maisan is now known as almaisan-away
rick_habentley: comments on teh review, please also make the LoC note in the MP.14:58
deryckrick_h, hey, dude.  I can chat about your branch now.  2 minutes to warm coffee and meet in a hangout, cool?15:01
=== salgado is now known as salgado-lunch
rick_hderyck: sounds god15:03
rick_hgood15:03
benjijml: https://code.launchpad.net/~benji/testtools/modernize-tsfr/+merge/101749 awaits when you have a moment.15:08
jmlbenji: ta15:09
jmlbenji: have looked at it long enough to know that I need to have a detailed look.15:12
benjijml: ok; thanks15:12
jmlbenji: will try to get to it today (UK)15:12
benjijml: I appreciate it.15:12
abentleyrick_h: Thanks.  done.15:18
abentleyjcsackett: The imports in runner are explained by the comment "Avoid importing from lp.services.job.celeryjob where not needed, to avoid configuring Celery when Rabbit is not configured."15:34
* jcsackett looks again15:35
jcsackettabentley: so it is, ignore my blind eyes. :-)15:35
abentleyjcsackett: cool.  I'll add a comment to the other one, though.15:35
jcsackettthanks, abentley15:35
adeuringrick_h: could you please have a look at this mp: https://code.launchpad.net/~adeuring/launchpad/abort-transaction-in-job-queue/+merge/101762 ?15:42
rick_hwill do adeuring I'll put it next on my list15:42
adeuringrick_h: thanks!15:42
deryckgary_poster, hi.  got a sec?15:48
sinzuiLooks like wordpress's autosave feature is broken on Lp's blog and I just lost 90 minutes of writing when it's JS went tits up. It then insults me by saying "howdy" when I log back in. If I could accomplish one thing today, please let me stab the cowboyism to death.15:58
jmlbenji: have replied. am available to chat in real-time if you want.16:00
benjijml: cool, I'll read it now16:00
benjijml: interesting; if your understanding of TSFR is correct, I don't see that it ever achieved it's aim, which is entirely possible16:02
jmlbenji: I'm pretty sure it's got very close.16:02
benjimy understanding (gained only though reading the code) is that it intended only to make sure individual calls did not overlap, not that calls for different tests didn't overlap16:03
jmlbenji: startTest() sets the test start tim, and then on receiving $RESULT, then runs some semaphore-protected code that does (ignoring tags):16:04
jml * time(start_time)16:04
jml * startTest(test)16:04
jml * time(now)16:04
jml * add$RESULT(test, *args, **kwargs)16:04
jml * stopTest(test)16:05
jmlmultiple threads, each with their own TSFR, but with a shared semaphore and a shared target result object, ...16:06
jmlimagine the target result object dumping subunit output16:06
jmlit *has* to be:16:07
jmltest: foo16:07
jmlsuccess: foo16:07
jmltest: bar16:07
jmlsuccess: bar16:07
jmland since the parallel runner isn't completely broken, I'm assuming that's how it behaves now.16:07
jmlgranted, that might be quite a hefty assumption16:07
benji:)16:08
benjijml: right, it works now, and I think I can preserve that contract (start/result/stop occur atomicly), but it won't be able to comply with the other general contracts, for example, start/tags/success/tags/stop won't work correctly unless we go to great lengths (as far as I can tell)16:09
jmlhmm.16:10
jmlbenji: I haven't really thought about tags in that context, so I couldn't say one way or another.16:10
jmlbenji: I *think* I can address your original concern about a thing that applies a constant set of tags to each test though.16:10
benjijml: now that I have a deeper understanding of what TSFR needs to do, let me take a stab at it and follow up with you when I succeed or fail16:12
jmlbenji: ok.16:12
jmlbenji: I think all you need is something like this though: http://paste.ubuntu.com/926640/16:13
benjiI hope it's that simple.16:13
=== salgado-lunch is now known as salgado
=== matsubara is now known as matsubara-lunch
jmlbenji: I've merged forward-current-tags into testtools trunk, fwiw.16:30
rick_hadeuring: ping, so the MP talks a lot about the abort_transaction, but what about hte manage transaction?16:34
adeuringrick_h: that paramater existed a bit longer; it was just not yet tested.16:44
adeuringrick_h: we need this parameter because...16:44
rick_hadeuring: right, but just added to the start/complete/fail, etc.16:44
rick_hit seems that it'd be the same for all methods of a job. More of a job "starts_transaction" parameter on the job itself16:45
rick_hcan you have that set on start but not complete for instance?16:45
adeuringthe job runner in the main LP code managed the transactions, while the lazr.jobrunner does not do this, so we had to move this to Job.start(), complete() etc16:45
adeuringrick_h: no, the settings should be consistent in the call sites, and it is16:46
rick_hok, so I'm not seeing the tie in. Ok16:46
rick_hadeuring: yea, just looking here it seems you could have a mix up of manage_transaction in one place but not another and I worry about that being consistant16:46
rick_hrather than method params it checking an object level attribute that it has a transaction to manage or something16:47
adeuringrick_h: you are right, but there is only a minor risk. Most status handling is done now in lazr.jobrunner, which always sets manage_transaction=True; there are a few calls in the main LP code like Job.wueue(), where manage_transaction is not specified at all, i.e., it is False. (to avoid "premature" commits)16:48
adeuringrick_h: Using something like Job.teansaction an interesting suggestion, but I would prefer to implement that in a differnt branch...16:50
=== deryck is now known as deryck[lunch]
rick_hadeuring: ok, thanks16:50
gary_posterderyck[lunch], sorry, was lunching myself16:51
rick_hadeuring: ok, noted my question, can you reply with that possibly follow up branch and the LoC notes and I'll mark ok16:53
adeuringrick_h: ok16:53
rick_hadeuring: ty16:53
adeuringrick_h: answered17:15
rick_hadeuring: ok, thanks for the discussion. Ok'd17:16
adeuringrick_h: thanks!17:16
=== matsubara-lunch is now known as matsubara
=== deryck[lunch] is now known as deryck
deryckhi, gary_poster. just wondering a bit about our fork of python-openid and seeing branches from you and wgrant.17:54
deryckgary_poster, wondering why we forked and stayed behind current release. if any patches were applied upstream. that kind of thing.17:54
gary_posterderyck, hey.  um, I don't remember openid forks but that doesn't mean I didn't do it. :-)  I just did python-memcached.  Lemme see if versions.cfg says anything interesting18:03
deryckgary_poster, versions suggests wgrant has the latest fork. which looked to be off your branch.18:04
jmlbenji: how goes it?18:05
benjijml: I've decided to leave TSFR be for the moment and implement my worker ID tagging result wrapper and then see if the bugs I expect in TSFR's tag handling really exist and actually bite me; if they do, then I'll at least have a concrete idea of what is wrong with TSFR and what I want it to do18:07
jmlbenji: a sound plan.18:07
gary_posterderyck, I'm afraid I think I need to point you to flacoste.  Perhaps he remembers.  According to wgrant's branch (https://code.launchpad.net/~wgrant/python-openid/python-openid-2.2.1-fix676372) he branched off of flacoste's branch from Nov 2008, which was very soon after I started work here.  bzr log versions.cfg only mentions what wgrant did ("[r=lifeless][bug=676372][rollback=12290] Use a custom python-openid") AF18:13
gary_posterAICT.  I'm still digging more, but perhaps it would help to know why you thought it was my branch?  Maybe I can dig from there18:13
deryckgary_poster, ah, guilt by assumption then. :)18:15
gary_posterheh, deryck :-)18:15
deryckgary_poster, I looked at https://code.launchpad.net/python-openid/ and saw your branch there was older.18:16
gary_posterderyck, ah.  Well, that looks like it had a reason at the time, but is no longer needed18:17
deryckgary_poster, I can email wgrant on list then and see if he recalls the details here.  thanks.18:17
gary_postercool, welcome18:17
deryckfwiw, I need a fixes in a recent python-openid, and either need to backport or apply our forked patches.18:17
sinzuijcsackett, what is blocking us from showing the links to view bugs and branches that are shared with users?18:21
jcsackettsinzui: not sure what you mean. +sharing does have links to the details page, details page does have links to the various bugs and branches. at least on qastaging.18:23
jcsackettsinzui: i'm assuming i'm misunderstanding your question.18:23
sinzuinot in production? did you not ask for the feature flag to be enabled?18:23
sinzuihttps://launchpad.net/launchpad/+sharing18:24
lifelessrick_h: hi18:25
jcsackettsinzui: we hadn't turned it on b/c there were some bugs to be addressed, but it looks like wallyworld_ took care of them.18:25
jcsackettso, nothing's blocking us. shall i make the request?18:25
rick_hlifeless: howdy (/me ducks from sinzui)18:26
sinzuijcsackett, yes pleased. I will second it18:26
lifelessrick_h: what did you think of my sketch?18:37
rick_hlifeless: I've only had a quick change to glance at it so far. Busy OCR day.18:38
lifelesskk18:38
rick_hlifeless: think it's good and I'll be using that to clean up and try to get my branch finished up by tomorrow.18:39
lifelessif you want to talk about it at any point, I'll be around, slightly offset-earlier day today18:39
rick_hlifeless: yea, np. I think it's been a process, but good stuff.18:39
lifelessrick_h: so the '1 callsite' comment i made the other day - thats a heuristic - didn't apply in this case, but when it does, its just another bit of evidence that an event may be the wrong fit18:40
rick_hlifeless: yes, and I mentioned during impl calls with deryck that it didn't feel quite right since it wasn't really an event off of the Person as it started out once we hit things like logintoken/ssh keys18:41
rick_hlifeless: but change some names and you try to make yourself feel better.18:41
rick_hbut it's been good, I've learned a lot about how stuff works in this branch18:41
rick_hlifeless: appreciate the time you've taken with me over the last few days on it18:42
lifelessmy pleasure18:46
bacjcsackett, rick_h: have time for a review of a short change?  https://code.launchpad.net/~bac/launchpad/bug-974617/+merge/10179719:04
rick_hbac: looking19:06
bacthanks rick_h19:07
lifelessflacoste: hiya19:07
rick_hbac: ok'd and commented19:12
bacrick_h: thanks19:13
bacthanks jcsackett19:34
bacrick_h: i implemented both of your suggestions19:34
rick_hbac: cool, thanks19:35
lifelessflacoste: http://www.infoq.com/presentations/1000000-Daily-Users-and-No-Cache19:46
lifelessand19:46
lifelessflacoste: http://www.forbes.com/sites/stevedenning/2011/07/08/the-five-big-surprises-of-radical-management/19:47
gary_posterlifeless, we have some tests that fail if bzr whoami is not set (and not guessable).  Is this an indicator of a bug in the test, or should we set up a whoami value?19:56
lifelessthose tests are incorrectly isolated19:57
gary_posterlifeless, cool, we will file bugs, thanks19:57
lifelessthey need to either isolate a number of things themselves, or derive from one of the bzrlib TestCase base classes (e.g. TestCaseWithTransport or TestCaseWithTemporaryDirectory)19:57
gary_posterack19:58
lifelessI wonder if we should special case subscription of open lists20:13
lifelessthat is, make subscribing, or assigning, an open team to anything be a privileged (admin) action20:13
lifeless(see the recent shenanigans with the debian-ppas bug where the launchpad-dev *mailing list* was subscribed by a random list member20:14
abentleyrick_h: could you please review https://code.launchpad.net/~abentley/launchpad/celery-job-layer/+merge/101806 ?20:14
rick_habentley: sorry, EOD.20:20
=== abentley changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugtasks: 4*10^2
rick_hthanks, was just editing that. jcsackett might still able to/around20:20
abentleyjcackett: are you up for solo reviewing?20:21
jcsackettabentley: sure. be a little bit but i can get to it before EOD.20:27
abentleyjcsackett: cool, thanks.20:27
jcsackettnp.20:27
jcsackettabentley: looked at the branch. r=me.21:12
timrcI'm getting an oops on staging... 1d44c531f28a13c40cb562e401dd7cf221:41
timrceffecting my ability to test a build in a PPA21:41
timrchm ok, 3rd or so reload at least showed me the PPA page21:41
lifelesstimrc: the OOPS- is part of the id21:45
lifelesstimrc: just copy and paste the whole thing please21:45
timrclifeless, It would just be OOPS-1d44c531f28a13c40cb562e401dd7cf2 but I was finally able to copy / re-build packages so I'm fine21:46
SpamapSOOPS-71384b1baaee6bfd54172741bf834dc721:46
SpamapSAnybody know why retrying a build would cause a timeout?21:46
=== matsubara is now known as matsubara-afk
lifelessSQL time: 8962 ms21:51
lifelessNon-sql time: 141 ms21:51
lifelessTotal time: 9103 ms21:51
lifelessStatement Count: 3521:51
lifeless1. 8887.0 1 SQL-main-master 21:52
lifelessUPDATE BuildFarmJob21:52
lifelessSET builder=NONE, date_finished=NONE, status=$INT, date_started=NONE, log=NONE21:52
lifelessWHERE BuildFarmJob.id = $INT21:52
lifelessrow contention21:52
SpamapSlots of builds going on right now21:52
lifelessyet another symptom of the builddmaster being not-an-API-client21:52
SpamapSseems like that should be async entirely. like I'm not saying "tell me when you're done updating your database" I'm saying "tell me that you're going to retry that build"21:53
lifelesswell, duh21:53
lifeless:)21:54
SpamapSsame thing happens when I try to build anything it seems21:56
lifelessif you try a couple of times does it come good?21:58
SpamapSno21:58
lifelessif it doesn't, then we may have a melting down buildd manager, and I'll go chase that21:58
lifelessok21:58
SpamapSafter 3 I figured I'm part of the problem21:58
lifelessoh you are, fo'sure21:58
wgrantlifeless: Unrelated to buildd-manager22:01
wgrantSpamapS: That means it's already been retried by retry-depwait, but not committed yet22:01
=== jelmer_ is now known as jelmer
* timrc shakes fist at staging.launchpad.com... I hit reload and got the "code update in progress"22:11
* timrc will try this all again after his child goes to sleep, ttyl22:11
StevenKTis not .com22:12
lifelesstimrc: staging.launchpad.net22:13
lifelesstimrc: of course, if you mistyped, then again, COpy-paste is your friend ;)22:13
timrcI meant .net22:13
lifelesstimrc: as for the timeout22:14
lifeless1. 8355.0 1 SQL-main-master 22:14
lifelessSELECT *22:14
lifelessFROM ((22:14
lifelessSELECT BinaryPackageBuild.distro_arch_series,22:14
lifelessyou can see it https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1d44c531f28a13c40cb562e401dd7cf2#longstatements22:14
timrclifeless, thanks22:15
wgrant">From a data integrity perspective, we must not have two different22:18
wgrantsorts of data arguing: if there is a subscription, the user must have22:18
wgranta grant."22:18
wgrantlifeless: false22:19
wgrantlifeless: That is at most an argument from usability22:19
wgrantNot integrity22:19
lifelesswgrant: actually it is integrity if you think from a services perspective.22:20
wgrantIt's not.22:20
wgrantImplicit subscriptions mean we pretty much have to do permission-based filtering of subscriptions anyway22:21
wgrantProbably at the service level22:21
lifelessnope22:23
lifelessI have a flat out day22:23
lifelessso I can't spend a lot of time digging into this, sorry.22:23
lifelessThe notification service will do precisely *one* callback to LP to expand team subscriptions. The rest is assumed accurate22:24
lifelessit is up to LP to maintain its integrity.22:24
wgrantThen LP will filter the subscriptions based on privacy22:24
wgrantIt already has to do that for implicit ones.22:24
lifelessI'd like you to operate on that basis.22:24
lifelessyou've got the proposed language in mail and in my branch22:27
lifelessif you can't represent what you need, we'll need to iterate that.22:27
lifelessWhat we can't sensibly do is multitenant with multiple services determining visibility of notifications22:27
lifelessits a denorm, it needs to be treated as such22:27
SpamapSOOPS-936e37e9194377d4c49cfcf1314896b5 ...23:13
SpamapSthis is trying to tell a recipe to build now...23:14
wgrantSpamapS: It's trying to build against maverick23:20
wgrantmaverick is no longer supported23:20
SpamapSShouldn't that just automatically fall out?23:20
wgrantYou'd think.23:20
SpamapSHad to click the widget to select series and then save it unchanged. That worked. Thanks.23:21
lifelessSpamapS: please file a bug23:28
lifelessSpamapS: I suspect we're going to have hundreds of those soon23:28

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