/srv/irclogs.ubuntu.com/2011/04/05/#launchpad-dev.txt

lifelesshow does one specify a new dependency to buildout ?00:00
mwhudsonlifeless: setup.py00:03
lifelessmwhudson: I'm looking in lazr.batchnavigator00:03
lifelessmwhudson: I have a test-only dependency, or should I not worry about the subtlety00:03
mwhudsonsetup.py *might* support test_requires?00:04
* lifeless goes with damn-the-torpedoes00:04
sinzuithumper: wgrant mumble?00:08
thumpersure00:08
wgrantSure.00:08
thumperwallyworld: you around?00:09
wgrantHe's on mumble.00:09
wallyworldyep00:09
wallyworldthumper: sinzui: i can't hear you guys. looks like my audio is foobar again. will have to restart :-(00:10
thumperwallyworld: ok00:10
sinzuiwgrant: does mumble need stabbing?00:11
wgrantsinzui: Thumper and I are talking OK...00:11
thumpersinzui: I can hear him00:12
thumpersinzui: and you00:12
sinzuimaybe I fell off the earth00:12
sinzuiI feel like that actually00:12
huwshimisinzui: we can hear you00:13
thumpersinzui: it is just you00:13
sinzuifab00:13
sinzuimumble gave up on it's own00:16
wallyworldthumper: sinzui: sorry, my audio has totally died for some reason :-(00:23
sinzuiwallyworld: okay. mumble booted me from the conversation twice00:24
wallyworldsinzui: it's not mumble. i have no output at all. speakers/headphone all silent :-(00:25
poolielifeless,  shall we stick with https://bugs.launchpad.net/launchpad/+bug/52575801:01
_mup_Bug #525758: A project's branch privacy policy is not visible on the branch settings page <confusing-ui> <lp-code> <privacy> <Launchpad itself:Triaged> < https://launchpad.net/bugs/525758 >01:01
lifelesscyes01:01
lifelessyes01:01
lifelesspoolie: mail sent; I hope I captured everything - if I didn't, please correct me ;)01:06
poolievery nice, thanks01:07
poolieok, https://bugs.launchpad.net/launchpad/+bug/75087101:10
_mup_Bug #750871: want an api and ui to set branch privacy policy <Launchpad itself:Triaged> < https://launchpad.net/bugs/750871 >01:10
poolielifeless, it looks like you could create a Branch through the api with private=true01:10
pooliewhich would avoid a race of making them private after they're created01:11
pooliein that case it would be enough to just have bzr call it01:11
poolie(arguably a bit messy to need to do this as well as sshing in, but not too bad)01:11
pooliedo you think that won't work?01:11
lifelessyou still need a policy setup to permit privacy at all01:12
lifeless+ having to use bzr push --use-existing-dir01:13
lifelesswgrant: ugh01:14
lifelesswgrant: we broke 'redirect to a real context'01:14
lifelesshttps://bugs.launchpad.net/launchpad/+bugs/501101:15
pooliewell, if bzr called the api it would hopefully be smart enough to expect a directory there01:15
wgrantlifeless: We didn't.01:15
lifelesswgrant: it was already broken ?01:15
wgrantlifeless: The container is '+bug'01:15
wgrantlifeless: Not '+bugs'01:15
poolieah, so the default policy, even if you have an entitlement to private branches, is to disallow them?01:15
* lifeless fails01:15
lifelesspoolie: right01:15
lifelesspoolie: noone can has private branch until a policy is setup permitting a group they are in to have them01:16
lifelesspoolie: I think 750871 is a dupe of 525758 isn't it ?01:17
lifelessah, no its not01:18
pooliethey're arguably the same, but  one is "show it" and the other is "let me change it"01:20
pooliei was going to file one more for "change it per branch"01:20
lifelesswell, that already works, just only one way01:20
pooliehuwshimi, it seems like pressing enter in the tags field no longer saves the changes01:21
lifelessa search for 'branch privacy' is pretty interesting01:21
huwshimipoolie: Can you file a bug please?01:21
pooliei will01:22
poolieoh also https://bugs.launchpad.net/launchpad/+bug/25217201:22
_mup_Bug #252172: Changing a branch's status/privacy isn't obvious <confusing-ui> <lp-code> <privacy> <Launchpad itself:Triaged> < https://launchpad.net/bugs/252172 >01:22
poolielifeless, is bug 444498 a dupe of bug 347772?01:22
_mup_Bug #444498: branch privacy for packages (of projects with privacy enabled) <lp-code> <Launchpad itself:Triaged> < https://launchpad.net/bugs/444498 >01:22
_mup_Bug #347772: Privacy policy support for package branches <disclosure> <lp-code> <package-branches> <privacy> <Launchpad itself:Triaged> < https://launchpad.net/bugs/347772 >01:22
lifelesspoolie: no01:22
lifelessbut I just edited it before you asked anyhow :)01:23
* wgrant hunts for someone to review https://code.launchpad.net/~wgrant/launchpad/bug-750640/+merge/5627601:23
lifelesspoolie: 444498 is about extending privacy to package branches when the upstream has a commercial ticket01:23
lifeless347772 is about permitting distro contributors to do private branches for embargoed changes (BFB into primary archive will need that)01:24
lifelesswgrant: is +        fields.append('Source', source) right ?01:24
lifelesswgrant: if source is None, will that DTRT01:25
wgrantlifeless: Yes, see eg. the handling of Essential.01:26
pooliehuwshimi, https://bugs.launchpad.net/launchpad/+bug/75088001:26
_mup_Bug #750880: pressing enter in bug tags field doesn't save changes <Launchpad itself:New> < https://launchpad.net/bugs/750880 >01:26
lifelesswgrant: its almost worth doing a Matcher there01:26
lifelesswgrant: but your helper is awkward, a nicer spelling is included in my review01:26
wgrantThanks.01:27
lifelesshuwshimi: hi01:27
huwshimipoolie: Does that happen when you hit the save button as well?01:27
huwshimilifeless: Hello.01:27
lifelesshuwshimi: I don't recall any feedback from you on my suggestion about your easy-ui bugs & priority01:28
wgrantlifeless: Treating it as a dict is wrong, but I guess it's OK for tests.01:28
lifelesshuwshimi: so I thought I'd poll you for some01:28
pooliehuwshimi, there is no save button01:28
poolieas i suspected it's due to a problem in tag suggestion01:28
lifelesswgrant: your test treats it as one :)01:28
poolieor so it seems01:28
huwshimipoolie: OK then this looks like a new issue01:28
lifelesswgrant: so either match on a vector (and definitely do a matcher), or be much more pithy :>01:28
pooliei think i'ts fallout from the previous fix01:29
pooliehm so https://bugs.launchpad.net/launchpad/+bug/120306 suggests there is already a ui for this01:29
lifelesspoolie: tag edits are saving for me01:29
poolieit may be to do with using a new tag?01:29
lifelesspoolie: yes there is, as I said. But public->private is deliberately not supported01:29
pooliethen you can't toggle it, can you? :)01:30
lifelesspoolie: no :>01:30
lifelesswell01:30
lifelessyou can toggle once01:30
lifelessanyhow01:30
lifelessI think that we need to revisit it01:30
poolieok, so i'll file a new one, mentioning it may be complex01:31
lifelessbut I don't think its a proximate cause of pain01:31
lifelessblah01:31
lifelessthe words are not coming today. I mean 'changing that wouldn't make a lot of difference'01:31
huwshimilifeless: I'm not sure it's appropriate for us to elevate these bugs. If we did we would have to raise up a few hundred bugs to high.01:32
lifelesshuwshimi: but you think they are very important for the user experience, right? Or did I misread your email ?01:33
huwshimilifeless: The idea is not that people should have to do these bugs, but a way of signifying that these are some good bugs to look at if people want to do some UI work.01:33
lifelesshuwshimi: I think this is a flawed way to analyze the problem01:34
lifelesshuwshimi: You made a compelling argument that fixing these bugs is both relatively cheap and will have a large impact on usability and product perception.01:35
poolielifeless, it's exactly the button these users are wanting to push01:35
pooliei agree it would be better if they'd never gotten in to this state01:35
poolieanyhow, https://bugs.launchpad.net/launchpad/+bug/75088901:35
lifelesspoolie: but they want to push it because another critical step has been missed.01:35
_mup_Bug #750889: need to be able to make public branches private <Launchpad itself:Triaged> < https://launchpad.net/bugs/750889 >01:35
huwshimilifeless: In as much that fixing any UI bugs is a good thing.01:36
lifelesshuwshimi: well, the UI isn't a special case for users: a bug is a bug01:36
lifelesshard to use is hard to use01:37
poolieok now to fix the actual branch01:37
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday! | 12:40 -!- Topic for #launchpad-dev: Performance Tuesday! | devel in RC until r12735 releasable | https://dev.launchpad.net/
lifelesshuwshimi: If I understand correctly, you are postulating a disconnect between 'this is important (to the UI)' and 'this is important'01:39
lifelesshuwshimi: is that correct?01:39
huwshimilifeless: I don't think the bugs I've tagged are necessary any more important than other UI bugs (in some cases exactly the opposite). All I am doing is identifying bugs that are cheap to fix.01:40
lifelesshuwshimi: now I'm really confused01:41
huwshimilifeless: One sec.01:41
StevenKlifeless: You've screwed up the topic a bit01:41
lifelesshuwshimi: you said in your email that these were high leverage bugs, holding three properties: easy to fix, only need ui changes, make a big difference to users01:42
lifelessbwah01:42
=== lifeless changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: - | https://code.launchpad.net/launchpad-project/+activereviews
poolielifeless, shall we have a bug for 'bzr push --private'?01:42
lifelesspoolie: I think that would be good01:42
poolieistm that's a bit less important than getting the policy set right01:42
pooliebut may be worth filing anyhow01:42
thumperlunch I think before tackling the inmemory xmlrpc mock for the stacking changes01:51
lifelesshuwshimi: the ajax log stuff is awesome02:28
lifelessI've having a few wtf moments02:29
lifeless(at latencies)02:29
huwshimilifeless: Yeah it's nice to see that stuff all the time. We're actually under for quite a few queries, and most of the rest are are not a long way over02:30
lifelesshuwshimi: I had some come in at 24 seconds this morning ><02:31
huwshimilifeless:  Oh really!@02:31
lifelessyeah02:33
lifelessI may have hit browser concurrent connection limit or something02:33
lifelessI opened a few tabs02:33
lifelesswgrant: why isn't it a regression ?02:48
wgrantlifeless: What regressed/02:49
lifelesswgrant: our hiding of merge proposals02:50
lifelesswgrant: when we added a feature (prereqs) we backslid on disclosure02:50
wgrantMmmmm. Maybe barely.02:51
wgrantWe're not really disclosing stuff we shouldn't, though.02:51
wgrantSo it's more that prereqs are broken when the prereq is private but the proposed branch is not.02:52
wgrantI think that makes it a broken feature, not a regression.02:52
lifelessdisclosure is defined as being viral03:07
lifelessthats not working here03:07
lifelessthats a regression03:07
wgrantViral to what extent?03:09
wgrantA private bug does not make a branch private.03:10
wgrantA private branch does not make a bug private.03:10
wgrantA private prereq should possibly not make an MP private.03:10
lifelessa branch link is invisible if either the branch or the bug is invisible03:10
lifelessa mp is invisible is any of the items on it are invisible03:10
wgrantExcept a bug or blueprint or03:10
lifelessone step removed03:11
lifelessmmm, viral is the wrong word03:11
lifelessI would love to see 4 /    0  None fixed03:11
wgrantHmm, it's the librarian.03:13
wgrantErm.03:14
wgranthttps://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1920MPJ403:14
wgrantReads the same file 376 times.03:14
lifelesswgrant: I actually meant the 'None' part :)03:16
wgrantlifeless: Do you know of a bug for late evaluation of attachment LFCs on BugTask:+index?03:26
lifelessno03:26
wgrantHave you looked at that at all?03:26
lifelessshouldn't be happening03:27
lifelessperhaps fallout from librarian code changes you did?03:27
wgrantWhich?03:27
wgrantIt only affects attachments that appear in comments.03:27
lifelessremoving the feature flag03:27
lifelessoh03:27
wgrantNo, that's unrelated.03:28
lifelesshadn't seen that at all03:28
wgranthttps://lp-oops.canonical.com/oops.py/?oopsid=OOPS-1920A1682 for example.03:28
wgrant3s selecting attachment LFCs.03:28
wgrantFixing now.03:28
lifelesswin03:28
wgrantRendered in 10.9s for me just now :/03:28
lifelesswhy does it need the LFC's at all ?03:28
wgrant(with ?comments=all)03:28
wgrantIt shows the file size.03:28
lifelesswhatnow03:29
wgrantXorg.0.log (23.1 KiB, text/plain)03:29
lifelessin the comment ?03:29
wgrantThis is in the comments, not the portlet.03:29
thumperhmm...03:29
lifeless178 queries/external actions issued in 5.27 seconds03:29
wgrantlifeless: ?comments=all03:29
lifelesswe really should show the real url in the oops report03:29
lifeless521 queries/external actions issued in 10.93 seconds wheeeee03:30
wgrantlifeless: The query string is there if you look hard, but yes.03:30
wgrantlifeless: Exactly.03:30
lifelesswgrant: gets truncated sometimes03:30
lifelesswgrant: so, are you going to eager load, or make the attachment the same as the portlet03:30
wgrantlifeless: It should be really cheap to eager load.03:31
lifelesscool03:31
wgrantI mean, LFC isn't that fat.03:31
wgrantHmm, except the hashes. But it's still <100kb of extra data.03:32
lifelesssure03:33
wgrantBug search really, really sucks.03:33
wgrantThis will possibly fix half of the BugTask:+index timeouts.03:39
wgrantI hope.03:39
wgrantMm, although I don't know what the OOPS report shows.03:40
wgrantSince it shows more entries for BugTask:+index in "top timeouts" than there were timeouts.03:40
lifelessrotfl03:42
thumperlifeless: how can I tell if a repository is stacked or just pretending?03:50
thumperlifeless: how can I open the repository to find the number of revisions?03:50
thumperI have a branch that appears to be stacked locally using my new branch id alias03:51
spivthumper: I'm not sure what "just pretending" could mean03:51
thumperbut I want to confirm for myself that it is doing what it says03:51
thumperspiv: I mean is saying it is stacked, but the branch repository has all the revisions03:51
spivEither a repository has at least one fallback repository, or it doesn't…03:51
thumpercan it do that?03:51
thumperdoes it confirm that the fallback repository is valid?03:51
spivProbably you can have the state where the stacked repo has all the revisions (e.g. stacking on an empty repo)03:52
spivBut I don't know why you'd care?03:52
thumperhumour me03:52
spivbzrlib always opens all the fallbacks03:52
spivUnless you explicitly do Branch.open(ignore_fallbacks=True)03:52
spivI'm guessing “can be opened” is what you mean by “is valid”?03:53
thumperopen(base, _unsupported=False, possible_transports=None)03:54
thumperno ignore_fallbacks03:54
thumperrepository? or bzrdir?03:54
spiv*Branch*03:55
mwhudsonthumper: you can look at len(branch.repository.all_revision_ids())03:55
spivThe fallback location is defined in the branch.conf03:55
mwhudson(iirc)03:55
spivIf you open a repository directly, without going via a branch, it will have no fallbacks configured.03:55
lifelessthumper: it opens the fallbacks at Repository.open() / Branch.open()03:55
lifelessthumper: it will fail eagerly03:56
spivlifeless: not at Repository.open03:56
lifelessthumper: this may change in future but hasn't yet03:56
lifelessspiv: yes, true, I'm handwaving03:56
lifelessbecause I hadn't read your prose yet :P03:56
spivthumper: (BzrDir.open_branch also accepts ignore_fallbacks=…)03:57
thumperhttp://pastebin.ubuntu.com/589515/03:57
thumperseems to be working03:57
thumperinfo -v tells me what I care about03:57
thumperand that is the 3 revisions bit03:57
spivthumper: but that said, it sounds like you just want to open the branch, and if it can be opened then the repository and its fallbacks must exist.03:57
spivThere may be a good reason why you want to check whether the revisions exist in the branch's repo or the stacked-on repo, but it's not obvious to me why you should need to check that.03:58
spivthumper: I would expect info -v in that context would be counting revisions in the fallbacks as well as that direct location.04:01
* spiv → lunch04:05
thumperspiv: no, it doesn't04:11
thumperspiv: which is good04:11
thumperinteresting04:12
thumperbzr info -v http://bazaar.launchpad.dev/~thumper/wikkid/soundex doesn't show the count of revisions in the repository04:13
jtvlifeless: I'm experiencing delays in Q/A for db-devel r10383.  What are the chances of that one becoming a blocker for this rollout?04:22
wgrantjtv: 004:23
wgrantjtv: The merge has already occurred.04:23
wgrantr1038104:23
jtvso no?  thanks, that's good to know04:24
wgrantRight.04:25
wgrantIt is very scary and needs to be QAd at some point, but it's not 11.04-criticasl.04:25
jtvWell the interesting part is that besides the big change, I'd also want to see that the minor changes to the original script are still safe.04:27
lifelessjtv: FTR I mailed the -dev list on monday about this04:28
lifelessjtv: I'd like to know if I was unclear etc so I can communicate better in future04:28
wgrantjtv: I meant that both are very scary.04:28
wgrantjtv: That script hasn't been changed significantly in a Long Time.04:28
wgrantEven though these changes look pretty safe.04:28
jtvlifeless: I see it now—I suspect thunderbird has been hiding it from me.04:30
jtvwgrant: it's extra-scary even because I know so little of what to expect from the scripts that it invokes.  Did you see the run-parts directories in cronscripts/publishing/distro-parts?04:32
lifelessbbiab04:33
pooliewow the new +authorize-token is quite slick04:54
pooliewell done leonard, or whoever04:54
wgrantThe system-wide one? Yeah.04:54
wgrant(Pdb) from lp.bugs.model.bug import Bug04:55
wgrant(Pdb) Bug.get(16)04:55
wgrant<Bug at 0xfe2cb90>04:55
wgrant(Pdb) print self.context.bugID04:55
wgrant1604:55
wgrant(Pdb) print self.context.bug04:55
wgrantNone04:55
wgrantWhat?04:55
wgrantHmm. Maybe I have a slave object, I guess, but...04:56
wgrant... and attempting to check self.context._store crashed pdb. Yay.04:56
lifelesswin04:56
lifelesswgrant: this is a new bugtask ?05:03
wgrantlifeless: Yes. I create it, test the query count, add attachments, test the query count. The query count test seems to be removing it from the store, which I guess shouldn't surprise me too much.05:04
lifelessits invalidating the world05:04
lifelessgrab it again from the set05:04
lifeless(at a guess)05:05
lifelesspsatebin ?05:05
wgrantlifeless: Retrieved, still broken :/05:09
lifelesswgrant: ok, thats new then05:10
lifelessI've not seen *that* before05:10
lifelesstime to edit z3batching05:10
lifelessif I'm not back in an hour, send in a search party05:10
wgrantHeh05:10
* StevenK goes to tell the people in the next apartment where they can store the masonry drill they've been using since 9am.05:11
StevenKIt's in the room right next to me, so I have a splitting headache05:12
wgrantlifeless: http://pastebin.ubuntu.com/589533/05:12
wgrantmakeBugAttachment works if you drop line 59 of that diff.05:13
thumper:-(((05:13
thumperWTF?05:13
thumperrunning a test I get a failure that looks hard to explain05:14
thumperso I run the test with -D05:14
thumperit stops at: -> result.addSuccess(test)05:14
thumper(Pdb) c05:14
thumperso I continue05:14
thumperRan 1 tests with 0 failures and 0 errors in 11.213 seconds.05:14
thumperstupid POS05:14
lifelesswgrant: that makes no sense at all05:16
wgrantlifeless: The test, or the problem?05:16
lifelesswgrant: the problem05:17
lifelesswgrant: there is no store.reset etc etc in that matcher05:17
lifelessnor a store.invalidate05:18
wgrantA store.invalidate won't remove the objects, either... it should just mark everything AutoReload, right?05:18
lifelessstore.invalidate is pretty shallow yes05:19
lifelessstore.reset is harsher, IIRC05:19
wgrantRight, I think reset does some really bad stuff.05:20
wgrantI guess I'll just create a fresh task for now :/05:20
lifelesswgrant: I'd really like to know whats up05:23
lifelesswgrant: have you tried to bisect?05:23
wgrantlifeless: Bisect the matcher?05:27
wgrantI probably should.05:27
lifelesswgrant: yes05:30
thumpercan I get someone else to run TestBranchChangedErrorHandling ?05:35
thumperI have it failing on devel05:35
thumperunless I add -D05:35
thumperin which case it kinda passes05:35
=== almaisan-away is now known as al-maisan
spivthumper: I'm pretty sure 'bzr info -v' of a branch does count revisions from the stacked-on repository.  What makes you think otherwise?05:44
thumperspiv: it shows the full history count for the branch, but the repository says 3 revision05:45
thumperspiv: since the output says that, that is why I think that way05:45
spivthumper: not in quick testing locally05:46
spivthumper: and not according to my reading of the code05:46
thumperspiv: is for me05:46
thumperspiv: http://pastebin.ubuntu.com/589515/05:47
spivIt's probably affected by running over a smart server.05:48
spivProbably that's a bug.05:48
thumperbut very handy05:49
spivYou're probably the first person to think so :)05:51
wgrantWTF :/06:07
lifelesswgrant: ENODETAIL06:11
wgrantSet up a browser? Fine. Browse to a question? Fine. Browse to a bug? You can't use makeBugAttachment any more.06:14
wgrantSomehow browsing to BugTask:+index manages to break the subscribers, I think.06:15
wgrantlifeless: ^^06:15
wgrantmakeBugAttachment doesn't work at all, even on a new bug.06:15
wgrant(this affects anything usin setupBrowserForUser, not just the matcher.06:18
lifelesswgrant: I thought it wasn't the matcher ;)06:19
wgrantSo did I, but I didn't have evidence.06:20
StevenKwgrant: Pity me, I'm debugging the packagecloner06:29
lifelessStevenK: pity the fool ?06:30
=== al-maisan is now known as almaisan-away
wgrantOh, LaunchBag.06:48
wgrantFucking LaunchBag, please die.06:49
StevenKwgrant: Then remove it?06:50
wgrantI have some misgivings about the output of *canonical*_url depending on what you've traversed through lately.06:53
StevenKwgrant: Perhaps it wants to make sure you take your shoes off so you don't dirty the carpets.06:55
wgrantHah06:56
lifelesswgrant: rotfl06:57
StevenKSigh, I thought the build was linked from BPPH06:57
wgrantStevenK: You have to go through BPR.06:58
wgrantlifeless: No.06:58
StevenKAh, I see it.06:58
wgrantUnless you are rolling around to squash LaunchBag flat, in which case it might be acceptable.06:58
lifelesssigh at domain name spam07:17
lifelesspop quiz07:38
lifelessnvm07:38
jtvlifeless: is there no way to resolve a qa-bad other than roll back the entire revision and then land a fixed re-run of the branch?07:52
lifelessjtv: you can just land a fix07:55
lifelessjtv: have it claim to rollback the bad revision07:56
jtvlifeless: thanks.  I think https://dev.launchpad.net/QAForContinuousRollouts sort of skips over the exact meaning of --rollback; I thought it had bzr implications.07:57
lifelessjtv: feel free to tweak it; its purely a workflow tag for us07:57
lifelessif the commit says '[rollback=1234] fix 1234', then its pretty clearly not a rollback07:58
jtvlifeless: so it just pairs the revisions to mark the fact that the newer revision fixes a qa-bad on the older one?07:58
lifelessIWBN to have qatagger have a unbreak=1234 that does the same as rollback but doesn't confuse people07:58
lifelessjtv: yes07:58
jtvOK… I guess https://dev.launchpad.net/QAProcessContinuousRollouts needs updating as well.07:59
poolielifeless,  oh was your complaint about domain spam by any chance inspired by pda.lv?07:59
pooliei just hit that07:59
lifeless'Internet copyright of "canonical" and Bdjikln company'08:00
lifelessDear President & CEO, .... - addressed to info@ and delivered to me08:00
jtvSo CEO is Russian for "occupant"?08:02
=== almaisan-away is now known as al-maisan
jtvNo reviewers today?08:39
* StevenK pushes wgrant forward.08:40
jtva volunteer!08:41
* jtv pins suspiciously plastic-y medal and branch on wgrant: https://code.launchpad.net/~jtv/launchpad/db-bug-751054/+merge/5629808:41
* wgrant is looking.08:42
wgrantjtv: Done.08:45
wgrantStevenK: Want to mentor?08:45
jtvthanks08:45
jtvonly fair :)08:45
=== al-maisan is now known as almaisan-away
StevenKwgrant: Done08:47
=== almaisan-away is now known as al-maisan
StevenKjtv: Well, wgrant is on the schedule as OCR today, which is why I picked on him08:49
jtvwgrant: I'm not sure what you mean about me saying that I reverted to the devel version…  what I said was "I really just copied the devel version of the script into a db-devel branch."  What's missing?08:49
jtvIt's not actually exactly reverting, since the devel version had changed in the meantime.08:50
wgrantMmm08:51
adeuringgood morning08:56
wgrantlifeless: Thanks.09:42
wgrantBah, real test failure.09:45
wgrantOdd...09:55
wgrantI can't reproduce it, but it happens on ec2.09:55
StevenKwgrant?09:55
wgrantAnyway, I should go.09:56
=== gmb changed the topic of #launchpad-dev to: Performance Tuesday! | https://dev.launchpad.net/ | On call reviewer: gmb | https://code.launchpad.net/launchpad-project/+activereviews
=== al-maisan is now known as almaisan-away
jtvgmb: got a branch for you to review if it's convenient!  https://code.launchpad.net/~jtv/launchpad/db-bug-244328/+merge/5631010:59
gmbjtv: Sure.10:59
jtvSplendid, thanks10:59
* jtv runs out for some simple, urgently-needed nutrients11:00
jmlare we in RC mode?11:04
StevenKJust testfix, I think.11:04
jmlffs.11:12
gmbjtv: r=me11:15
jmlnot that it matters!11:16
jtvgmb: thanks11:34
=== almaisan-away is now known as al-maisan
jtvStevenK, wgrant: do you chaps know anything about the pending merge on df current?11:54
wgrantjtv: You can drop it.11:56
jtv\o/ thanks11:56
wgrantThat's weeks old, though, and not actually applied any more...11:56
wgrantjml: Um, that makes you feel *better*?11:58
wgrantjml: I can see why, but it also scares me more.11:58
wgrantBecause something has changed.11:58
wgrantAlthough what exactly I cannot tell, since the assertion message suggests that the text matches the regexp fine...11:59
jmlwgrant: it's intermittent, and it's probably because of code.11:59
jmlrather than environment11:59
bigjoolswgrant: grar, every time I see a test change for the publisher I want to shout loudly when the file is left in lp/soyuz11:59
jmland it's only that test rather than other tests in the file11:59
wgrantbigjools: That orig.tar.gz? Yeah.11:59
bigjoolswgrant: no, lib/lp/soyuz/tests/test_publish_archive_indexes.py and friends12:00
bigjoolsshould be lp/archivepublisher12:00
wgrantOh.12:00
wgrantYeah.12:00
wgrantI guess I should have moved it.12:00
wgrantbut the code itself is in Soyuz.12:00
wgrantSo maybe not.12:00
jmlwgrant: I mean, I feel terrible that we tolerate having such things in our test suite, but believe me that's a small fraction of the terrible I feel, and I'm trying to take my wins where I can.12:00
bigjoolsalong with most of the code in the soyuz model ....12:00
wgrantbigjools: Shall I move it before I land the branch, or keep it with the code it tests?12:01
bigjoolswgrant: rs=me if you want to move it12:02
wgrantI think we should keep it in Soyuz until we split the classes, though :/12:02
bigjoolsmaybe12:02
jtvbigjools: can I just run publish-ftpmaster on df or will that open a hole that the Old Ones may use to break through into our world?12:02
jtv(LPCONFIG=dogfood)12:02
bigjoolsjtv: the cron.publish-ftpmaster  script can run unaltered12:03
wgrantjtv: Please back up dists/ first, though.12:03
jtv(And of course I'm just naming one of the more likely failure modes as an example; please let me know of other risks as well)12:03
bigjoolsnothing will cross from the Other Side12:03
jtvPhew.12:03
bigjoolswgrant: dists/ is probably already fucked12:03
wgrantbigjools: Some of it is, some of it is not.12:03
wgrantIt's reasonably easy to judge, and useful for comparisons when trying to unfuck the publisher :)12:04
jtvbigjools: that's /srv/launchpad.net/ubuntu-archive/ubuntu/dists/ ?12:04
bigjoolsjtv: yes12:05
jtvright ho12:05
bigjoolswgrant: unfuck the publisher?  You have a spare year? :)12:05
jmlderyck: have you seen bug 751187?12:05
_mup_Bug #751187: Upstream translations not being imported for some Ubuntu packages <Launchpad itself:New> < https://launchpad.net/bugs/751187 >12:05
jmlderyck: not sure if it's relevant to the work you guys are doing12:06
deryckjml, I haven't seen.  I'll look now.12:06
jmlderyck: thanks.12:07
jtvderyck: there's the possibility that it's a simple outdated timestamp.12:08
jtvIt may pay to have a look at the import queue entries.12:08
wallyworld_deryck: hi. my laptop is acting up. no sound, flaky network :-( did you get my recent email? i just want to make sure you don't waste time on the windmill stuff since i've got it sorted12:41
deryckwallyworld_, no, but my mail setup is flaky.  mail not getting to me after upgrade of server.12:42
deryckI'm looking into my mail problem now.12:42
wallyworld_deryck: cool. i got rejection messages. my sound is totally borked for "no" reason. very frustrating.12:43
deryckmy busted mail is very frustrating.12:45
jtvwgrant: I don't suppose you should be here at this time, but if you are: I got publish-ftpmaster to run in 27 minutes or so, but bigjools tells me that's a good thing.  Perhaps you could take a look?12:45
wgrantjtv: That is plausible if no release pocket was dirty.12:46
wgrantLet's see.12:46
wallyworld_deryck: did you upgrade the kernel recently? that's what did my sound in i think. or did you upgrade to natty?12:46
jtvwgrant: the output is in /srv/launchpad.net/codelines/current/jtv7.log12:46
wgrantI was about to ask.12:47
wgrantThanks.12:47
wgrant2011-04-05 11:10:57 DEBUG   Publishing The Maverick Meerkat-RELEASE12:48
wgrant2011-04-05 11:10:57 DEBUG   Attempting to publish pending sources.12:48
wgrant2011-04-05 11:11:00 DEBUG   Added /srv/launchpad.net/ubuntu-archive/ubuntu/pool/main/h/hello/hello_2.6-1lp5.dsc from library12:48
wgrantIt really finished in only 27 minutes?12:48
wgrantDirty maverick-release should have put you through at least 3-4 hours of pain...12:49
deryckwallyworld_, yeah, I have a server I share with a friend and he upgraded over night.12:49
jtvwgrant: I ripped out all the explicit gc and the cache invalidations.12:49
wgrantjtv: Ah, you can close one of my bugs, then.12:49
jtvNo longer necessary with the generational cache.12:49
wgrantjtv: But that wasn't the bit that made it take hours.12:49
jtvWhat was?12:50
wgrant(I had a branch that did the same thing, but it didn't definitely improve performance)12:50
wgrantQueries when generating override and file lists.12:50
wgrantHuh.12:51
wgrantOnly took 7 minutes to generate binary file lists.12:51
wgrantWTF?12:51
wgrantThis is reason to be extremely suspicious about its results.12:51
jtvMind you, the various calls to publish-distro etc. are all in one process now, so we may be getting better cache re-use.12:51
jtv(When combined with not continually invalidating or flushing the cache, of course)12:52
jtvBut by all means, please be suspicious about the results!  That's what I really need here.12:52
wgrant... oh.12:52
wgrantYou deleted publishingtunableloop.12:52
wgrant*That* is the important bit.12:52
jtvYes12:52
jtvBecause it did explicit gc and cache invalidation.12:53
wgrantAs long as we're not running into RAM usage issues (due to materialising a huge resultset in one hit), that is fine and should be a massive benefit.12:53
jtvAnd essentially nothing else.12:53
wgrantThe issue was that it did binary file lists in 16ish batches of 10000 each, each of which took 8-9 minutes for the DB to calculate due to the compound sort key.12:54
jtvYeah… I figured (and documented in the MP) that if there are still problems of this nature, we're probably better off taking a fresh, post-StupidCache, post-bash look at them.12:54
wgrantActually, I think I did test this once before.12:54
wgrantBy hacking tunableloop to always use a batch size of 200000.12:54
jtvIt pains me to admit it, but the loop tuner was never the right tool for this particular job.12:55
wgrantBut it wasn't quite so wildly successful, possibly because of the remaining cache crap.12:55
jtvBear in mind by the way that we no longer have the infinite-caching problem.12:56
wgrantRIght.12:56
jtvSo if we still have memory problems in this script, it's going to show up as excessive database waits rather than as swap or OOM.12:56
jtvBut I'd be very much interested in your appraisal of the data that this run produced.12:57
wgrantlaunchpad@mawson:/srv/launchpad.net/ubuntu-archive/ubuntu$ ls -l dists/maverick/main/source/Sources13:00
wgrant-rw-r--r-- 1 launchpad launchpad 3763543 Apr  5 11:31 dists/maverick/main/source/Sources13:00
wgrantThat shouldn't exist any more, should it?13:00
jtvwgrant: that's done by one of the run-parts scripts, which I'm not running in this case.13:01
jtvBasically Ubuntu-specific.13:01
wgrantjtv: Ah! Well, apart from that it looks pretty reasonable. I will throw more at it tomorrow, when I am meant to be working.13:01
wgrantWell done on destroying PublishingTunableLoop.13:01
wgrantProbably won't help productive by more than a couple of minutes, but helps DF massively...13:01
jtv(But actually glad you're spotting these things, because it makes it much more likely that you'd have spotted any noticeable oversights)13:02
jtvThanks very much for looking into this.13:02
wgrants/productive/production/, grar.13:02
jtvNext time let's run domination in parallel.  :-)13:02
wgrantHmm?13:03
wgrantYou can run judgeSuperseded in parallel with index generation if you really want to, but that's about it...13:03
jtvJust guessing: maybe domination is embarrassingly parallelizable across architectures.13:03
wgrantIndeed.13:03
wgrantBut it should also be blindingly fast now.13:04
jtvAnd it takes a fair bit of the time, actually.13:04
wgrantMaybe on mawson.13:04
wgrantOn prod each pocket should be no more than 1.5s or so.13:04
jtvOn this run, I see about 4 minutes going into it.  That's a sizable percentage of overall runtime.13:04
jtvNot that parallel runs would necessarily help mawson.  :)13:05
StevenKI think parallel runs on mawson might make the chassis itself glow red hot.13:05
wgrantjtv: You can see it speed up significantly as the caches get hotter.13:05
jtvKewl!13:05
bigjoolsStevenK: rofl13:06
wgrantamd64 takes 59s, armel 15s, i386 13s, and it continues.13:06
jtvyeah nice13:06
wgrantSource still takes 90s, but it's more like 2s on prod (was 150s until I fixed it six months ago)13:06
wgrantwildcherry has fewer issues with caches, given that it doesn't have 4GiB and all of the LP services.13:07
henningervba: Just to let you know, I am working on your review.13:08
jtvwgrant: by the way you'll notice complaints about stuff not being signed.  You probably saw this coming, but that's because gpg signing also is in a run-parts script now.13:08
rvbahenninge: great.13:08
henningervba: Here is as far as I have come and there are a few things that need attention.13:08
wgrantjtv: Yeah, I'll walk through everything, get more stuff publishable, populate partner, add fake keys, enable the rest of run-parts, etc. tomorrow and see what breaks.13:08
henningervba: if you want you can start on those. http://paste.ubuntu.com/589661/13:08
wgrantThen I may change my qa-hellno to qa-ok.13:09
jtvwgrant: I'm so glad I don't know how to do all of that.  I backed up before my run using cp -r /srv/launchpad.net/ubuntu-archive/ubuntu/dists /srv/launchpad.net/dists.bak13:10
StevenKwgrant: You mean it isn't qa-overmydeadbody ?13:10
bigjoolsjtv, wgrant: I'm not entirely convinced about those complaints being to do with lack of signing13:10
jtvwgrant: do you want me to put that old dists back in place?13:10
bigjoolssince it's never been an issue on DF before13:10
jtvInvalid archive signature?  It could be reading the wrong file or something I guess13:10
=== al-maisan is now known as almaisan-away
jtvbigjools: you're right… files seem to be missing13:12
bigjoolsjtv: which equates to a further path issue13:12
jtvYes, and it's not the partner path13:12
bigjoolswell, in fact the original path issue :)13:13
jtvHmm maybe not…  In the example I'm looking at, the diff, dsc, and orig tarball are all there but the deb isn't.13:14
jtvWhere should that deb have come from?  (If it's the librarian, then I can think of a reason)13:14
wgrantbigjools: I didn't see those errors. I'm trying not to look at it in depth yet.13:21
wgrantbigjools: But if it's "Invalid archive signature" on a deb, it could be from the failed librarian transfers when I ran the careful publisher.13:22
wgrantI forget the full list, but fennec was one of them.13:22
wgrantOn most archs its debs failed to transfer properly from production.13:22
wgrantIs that one of the ones with errors?13:22
jtvwgrant: fennect looks to be behind a sizable portion of the errors, yes13:24
wgrantAs for partner, there are no fresh uploads and probably nothing existing on disk to index. I will sync and upload stuff tomorrow to test it out.13:24
wgrantjtv: Aha, great.13:24
wgrantSo it's probably nothing to worry about, but I'll check it out.13:24
jtvAbout half the pages of errors are completely full of fennec-related lines13:24
jtvThen there's python-htmltmpl13:25
jtvand a bit of microcode.ctl13:25
wgrantI don't recall those, but possibly because they sound arch-indep.13:25
wgrantSo there would be around 1/5 of the errors.13:25
jtvI think python-htmltmpl is again repeated lots of times (per arch I guess) and that seems to be most of the rest.13:27
wgrantI may manually regrab the files tomorrow and see what happens.13:27
wgrantAs well as -C'ing partner.13:27
wgrantHopefully that won't take too long.13:27
jtvOne thing that bothers me a lot is the carrying-over of old directories.  For all I know we might not notice if, for instance, we stop generating a file and keep copying an old copy instead.13:30
wgrantjtv: Yeah, but we have no choice :/ dists isn't all generated by the publisher.13:31
wgrantCustom uploads end up in there too.13:31
wgrantCustom uploads are bad in a few ways.13:31
wgrantAnd good in not many :(13:31
jtvWell, here's hoping that we're making some real progress in manageability and transparency of the process.13:32
jtvOh, we have another buildbot failure in progress.  :(13:33
wgrantWhat has combusted now?13:35
jtvDunno summary won't load13:36
wgrantThat's why I asked :/13:36
wgrantIt's just hanging for you too?13:36
jmlI don't see any failures on the waterfall13:37
jtvOh drat I'm mis-reading it.13:37
wgrantI see nothing in stdio.13:37
wgrantjtv: Ah, good.13:37
jtvSorry for the noise.13:38
LPCIBotProject windmill build #139: STILL FAILING in 1 hr 11 min: https://lpci.wedontsleep.org/job/windmill/139/13:39
wgrantNot helping, Jenkins.13:39
jtvwgrant: my fix for the partner archive path is in db-devel now, so if you update df's codebase tomorrow it should be in there.13:50
wgrantjtv: Great, thanks.13:50
deryckjml, can you send me a ping at my work email, see if I got mail sorted out now?13:50
jmlderyck: sure.13:50
wgrantI may merge db-stable into devel again tomorrow, since there are no DB changes.13:50
jtvI'll clean up my pending merge first.13:50
wgrantjtv: Which branch is that?13:51
wgrantjtv: It's fairly critical to sensible running the script.13:51
jtvThe gc/cache cleanup13:51
wgranti mean where is it on LP, so I can merge it again tomorrow.13:51
jtvAlternatively, I could just commit it.13:51
deryckhurray, mail!  Thanks, jml!13:51
jtvwgrant: Oh, I was about to give you the pointer.  :)13:51
jtvwgrant: lp:~jtv/launchpad/db-bug-24432813:52
jtvFeel free to attach your own kill-kill-kill bug.13:52
=== jcsackett_ is now known as jcsackett
rvbahenninge: just pushed the corrections from the first batch of comments you made (Thanks already for the careful review :)).14:20
bigjoolswgrant: hopefully jtv answered all your questions, I was at lunch14:20
jtvbigjools: well… "is there a God" was a bit of a sticky point14:20
henningervba: I'll have  a look. I just sent off the complete review.14:22
rvbahenninge: great, I'll look into it.14:22
wgrantbigjools: I think so.14:22
bigjoolsjtv: contentious but ultimately easy to answer :)14:22
jtvbigjools: we've been over this.  You don't count.14:23
LPCIBotProject windmill build #140: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill/140/14:25
rvbahenninge: a small question about your comment of my use of @@. I though this was the only way to access an attribute on the default _view_ attached to this object. But since it's not used in the code base, I'd like to know how else this can be done ...14:29
henningervba: oh, this is an attribute of the view?14:35
rvbahenninge: yes14:35
henningeah yes ;)14:35
henningervba: view/attribute14:35
rvbahenninge: but the view available in the page is attached to another object14:36
rvbahenninge: let me explain:14:36
henningehm14:36
rvbaI need to access an attribute of the view attached to an object inside a loop14:36
rvbathe current view is attached to the context14:37
rvbaI need to access another view14:37
henningervba: I understand14:37
henningervba: now the notation makes sense, too.14:37
henningervba: now I wonder, too, why it is not used anywhere else14:40
* henninge greps again14:40
rvbaindeed ...14:40
rvbaif you create a small template fragment that is used inside the loop then it's not necessary to use this @@ because you can make the association (view/object) for this fragment only14:41
rvbabut if all you need is to get an attribute from a view, adding a 3 lines template fragment looks overkill.14:42
henningervba: I think the usual approach would be to push this into the model14:44
henningervba: In this case, DistroSeriesDifference should have parent_source_package and source_package attributes.14:45
henningervba: and you'd use "difference/parent_source_package/fmt:url" in the template.14:46
rvbahenninge: I confess I don't really like putting things like this into the model14:46
rvbahenninge: but if it's the way it's done in the rest of the code I'll do it14:47
henningervba: that's my interpretation, yes14:47
rvbahenninge: what does this /fmt:url do exactly?14:47
henningervba: it gets the canonical_url for the object,  the same thing the function does.14:48
rvbahenninge: ok, I get it.14:48
henningeso you wouldn't need that for tal:condition, but for tal:attributes14:48
rvbaok14:49
henningervba: to me it sounds better to not have the different view depend on each other too much.14:49
henninges/view/views/14:49
rvbahenninge: good point14:50
henningervba: I'd say it makes the code more fragile.14:50
henningewe have a pretty close relationship between view and template in Launchpad.14:50
henningervba: Ha!14:51
henningepub = IResultSet(pubs).one()14:51
henningeDatabase code does not belong in view code, that much I know. ;-)14:52
henningervba: so this is a strong indicator that these should be pushed into the model.14:52
rvbahenninge: that's right. You win :)14:52
henninge:-D14:52
henningeLaunchpad wins!14:52
=== jtv is now known as jtv-afk
rvbahenninge: all right ... I'll go though the rest of your remarks and get back to you when it's done14:53
bigjoolshenninge: you should explain why "Database code does not belong in view code" so that rvba learns something :)14:54
henningebigjools: Hey, I am only going through the motions here ... :-P14:54
rvbaI think it's pretty standard isn't it? Views are for fetching data from models and getting it ready for the templates.14:55
bigjoolsthe main reason is security14:55
henningervba: it's also because you should only handle security proxied objects in view code.14:56
bigjoolsthere we go :)14:56
henningervba: yeah, it's actually the main reason14:56
henninge;-)14:56
rvbaok, makes sense14:56
henningervba: plain database queries will give you naked objects.14:57
henningecan't have that in public ...14:57
rvbaright14:57
rvbahenninge: thanks again, I'm learning a lot thanks to this review process I reckon :)14:58
bigjoolsrvba: generally if view code needs to get a database object, it does a query via the context, or uses a secured utility15:00
* jml mumbles something about sorting & views.15:04
bigjoolsallenap: "field.summary": u"Even The Register likes it." - just made me lose a mouthful of coffee15:17
allenapbigjools: Hehe :)15:17
bigjoolsallenap: you have a typo in lib/lp/registry/help/distribution-add-series.html15:23
allenapbigjools: Dang.15:24
bigjools"its version is used instread"15:24
allenapbigjools: Nothing wrong with that ;)15:24
allenapThat's how they say it round here.15:24
bigjoolsif you're dyslexic15:24
allenapbigjools: I'll fix it now.15:25
bigjoolsallenap: I could make more comments about round ther e:)15:25
bigjoolsbut they would apply to round here too15:25
jcsackettanyone happen to know if logging something as error in our cronscripts automatically creates an OOPs?16:13
sinzuijcsackett: it is not automatic16:15
sinzuijcsackett: an text can be logged as an error. We want an exception.16:15
jcsackettsinzui: right, i was double checking. b/c once i was able to get tests for the hardwardb stuff running, the call site I saw that corresponded to the OOPs error msg didn't cause an exception. :-(16:16
=== almaisan-away is now known as al-maisan
=== salgado is now known as salgado-lunch
=== al-maisan is now known as almaisan-away
sinzuijcsackett: look for globalErrorUtility or a subclass. it will call handling()16:19
jcsackettsinzui: ah, okay.16:19
abentleyderyck: I've got the form showing: http://people.canonical.com/~abentley/translations-usage.png Just want to confirm this is really what you want before I go implement saving.16:23
* deryck looks16:24
deryckabentley, yeah, looks good to me.16:24
abentleyderyck: alrighty then.16:25
bachey deryck, is this type of markup (found in several bugs pt files) still valid?  i don't see that file being built anymore.16:43
bachttp://paste.ubuntu.com/589741/16:43
deryckbac, we shouldn't be doing that anymore.16:45
bacderyck: thanks for the confirmation16:45
deryckbac, np16:45
=== matsubara is now known as matsubara-lunch
bacderyck: would you mind looking at the top of soyuz/templates/archive-copy-packages.pt?  i assume it is wrong too but don't know why it was ever there.16:54
deryckok, looking....16:55
deryckbac, yeah, it's wrong too16:56
derycknot needed.16:56
deryckanything in lib/lp/APPNAME/javascript gets pulled in automatically.16:56
bacso anything loading specific js files from icing/build is wrong16:56
deryckbac, yup.16:57
deryckbac, it's loading files twice in devmode but no harm to production.16:57
bacderyck: well those files don't exist in devmode, so it is oopsing trying to load them16:58
deryckbac, ah, right.16:58
bacwhich confuses people, e.g. me16:58
deryckgotcha16:59
=== deryck is now known as deryck[lunch]
bacgmb: can you have a look at https://code.launchpad.net/~bac/launchpad/remove-old-devmode-js/+merge/5640017:18
* bac lunches17:19
=== jcsackett_ is now known as jcsackett
gmbbac: Sure17:37
LPCIBotProject windmill build #141: STILL FAILING in 1 hr 15 min: https://lpci.wedontsleep.org/job/windmill/141/17:43
gmbbac: r=me17:43
=== Ursinha is now known as Ursinha-lunch
henningervba: still around?17:54
rvbahenninge: yes17:54
henningewhy did you have to use structured().escapedtext?17:55
henningeI mean, I thought just structured() would have been enough?17:56
rvbaI did that as first but then I get the __repr__ version of the object in my page ... and it's not pretty17:56
rvbas/as first/at first/17:58
mrevellNight!#17:58
=== salgado-lunch is now known as salgado
jmlflacoste: you have disappeared from our secret squirrel IRC server!18:02
flacostejml: really!?!18:02
jmlflacoste: yep.  flacoste has quit (Connection reset by peer)18:02
bigjoolsnight all18:03
henningervba: really? that's interesting.18:09
henningervba: you mean this gives you a _repr_ of the structured object?18:10
henninge871+      <p><tal:replace replace="structure view/explanation" /></p>18:10
rvbahenninge: yes18:10
henningeI wonder if wgrant has already been changing things ...18:11
rvbaI saw quite a few .escapedtext in the code ...18:11
* henninge checks places he knows18:11
=== deryck[lunch] is now known as deryck
henningehm, those that I had don't go straight to TAL.18:13
henningervba: see, now I learned something, too ... ;-)18:14
rvbahenninge: :)18:14
rvbahenninge: the proper way might be to do this:18:16
rvba<tal:replace replace="structure view/explanation/escapedtext" />18:16
rvbanot much difference though18:16
rvbabut the code is full of these18:17
rvbahenninge: I'll have to get going is a few18:17
rvbas/is/in/18:18
henningervba: I am not done yet, I am sorry. We will have to do another short round tomorrow morning.18:19
henningeI'll finish my review of your changes tonight, so you can have them in the morning.18:19
rvbahenninge: sounds perfect18:19
rvbahenninge: see you tomorrow18:20
henningervba: see you! ;)18:20
=== matsubara-lunch is now known as matsubara
=== Ursinha-lunch is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
bachi deryck, sinzui: we've got a few places in our JS that uses Y.fail.  they seem to be untested and calls to it actually fail.  do either of you have any experience with it?19:05
deryckbac: it's a test module method, no?  We shouldn't be using that in regular code.19:07
bacderyck: that is my impression too.  but i see it in many places19:07
bacderyck: should we just be throwing an error?19:07
deryckbac: yeah, I think we either want to use Y.error directly or the showError mechanism we have.19:08
bacderyck: it is in five modules, including lp.js and client.js19:10
deryckhmmmm, ok19:10
abentleyderyck: how would I get the URL for a translation_group from its name in Javascript?19:10
abentleyderyck: I figure translation_groups.getByName, but I don't know how to get translation_groups.19:11
bacderyck: and i just discovered it is part of 'test', so you have to include 'test' in production code, which is vile.19:12
deryckbac: yeah, agreed.  so the client module looks like it's trying to log the fail. I think Y.error or even a simple Y.log('some msg', 'error') is enough there.19:13
bacand it points to none of those paths ever being exercised...19:13
deryckbac: and I think that ^^ could be the basic pattern.  I'm certain we don't want Y.fail in js code.19:13
deryckright19:13
=== Ursinha is now known as Ursinha-afk
bacok19:14
=== Ursinha-afk is now known as Ursinha
deryckabentley: are they exported in the api?  Can you get them from an api get?19:14
abentleyderyck: yes, they're exported in the API.  I don't know how to get them from an API get.19:14
deryckI'm not sure either.  I'm thinking and looking at code.19:18
abentleyderyck: it seems like there should be a generic answer to "how do I get the URI for a collection", and then the rest would fall into place.19:20
deryckyeah19:20
deryckabentley: yeah, so it's the same as an entry in the client, right.  Y.lp.client.Collection.  but like you say you need the URI.  I really don't know how you get that.  trying to find an example somewhere.19:24
deryckabentley: where are you getting the name from?19:26
abentleyderyck: I'm getting it from the form data.19:27
abentleyderyck: from the form I posted a screenshot of earlier.19:28
deryckright19:28
abentleyderyck: Unless I'm doing it wrong?  (I'd love to be doing it wrong!)19:28
deryckabentley: are you doing an XHR post of the form on submit?  Or trying to handle each piece with the API?19:29
abentleyderyck: the latter.19:30
deryckabentley: can you not make it easier by doing a single form post with the data?19:30
abentleyderyck: It's not something I'd thought of 'till now.19:31
abentleyderyck: how would that work?19:31
deryckabentley: do an XHR post to the page that normally handles this step.  on success flash green and go to next part of page.  report if it errors.19:32
deryckabentley: we may not do this anywhere else.  I can't find an example.  But you would just use Y.io directly.19:34
abentleyderyck: could you give me more detail or an example of the first piece?19:34
abentleyderyck: That is, making the XHR post.19:34
deryckabentley: typing up something....19:36
deryckabentley: something like this: http://pastebin.ubuntu.com/589828/19:42
rvbahenninge: still around?19:43
henningervba: yes and no ;)19:43
rvbahenninge: I see ... just a quick question then if you don't mind19:44
henningervba: go ahead19:44
rvbahenninge: in your review you advise me to move back getParentPackageSetsNames into the views ... but my understanding of our previsou co19:45
rvbasorry ...19:45
rvbaprevious conversation was that you wanted these methods in the model to avoid the clumsy @@ inside the template19:45
henningervba: sorry, there must have been some misunderstanding, then.19:46
rvbahenninge: I understood that the main point was security.19:46
rvbahenninge: but still, I'll have to use @@ to be able to call a method from a view (but not the "main" view) associated with an object in the template.19:47
henningervba: yes, that's why (parent_)source_package_release belong in the model.19:47
abentleyderyck: thanks.  I think I can hack that.19:48
henningervba: no, you don't ;)19:48
deryckabentley: cool.  hope it helps.19:48
rvbahenninge: then I think I missed something19:48
henningervba: which view is the one that the template belongs to?19:49
henningervba: ah here, DistroSeriesMissingPackages19:50
rvbahenninge: yes19:50
henningethat's the view that needs the formatting code.19:50
rvbahenninge: but I'll need to call a view that is acting on the difference, not the distroseries19:50
rvbathat's the part I don't understand properly I guess ... how to call a method, not on the main view of the template ... but on the view associated with the many differences displayed on the page19:51
henningervba: aha, difference is from a tal:repeat19:51
rvbahenninge: right19:51
rvbahenninge: there is my problem :-)19:52
rvbahenninge: hence the @@19:52
henningervba: yes, you have too options to avoid the @@19:52
henningervba: option 1: construct the list in TAL19:53
rvbahenninge: yes, I can use ','.join directly inside the TAL19:53
* rvba greps19:54
henningenah, avoid python in TAL at all costs.19:54
rvbaright19:54
henningervba: you could do a tal repeat over difference.source_package_release19:54
henningeand use tal:condition on the "last" variable (I forget the details of tal:repat here) to add a comma or not.19:55
henningervba: option 2: construct it in the view19:56
rvbahenninge: got it ... quite ugly though.19:56
henningeyes, I agree19:56
rvba(I'm talking about the repeat)19:56
henningeI know19:56
henningervba: but then you will not be able to loop over differences/batch but will have to create your own list.19:57
henningewhich works ok19:57
rvbastill looks a little bit of a hack to me though :-)19:58
rvbabut I'm glad to use any method that works19:58
henningervba: currently differences is the content of view/cached_differences.19:59
rvbaye19:59
rvbas19:59
henningervba: you can instead create a propety that iterates over cached_differences internally and yields dicts of information20:00
rvbaI think I get the idea: create a simple list wrapper with the differences and the formatted packagesets20:00
rvbaright20:00
henningeyup20:01
* henninge goes back to do other stuff20:01
rvbahenninge: thanks for your time, it's late for the two of us ... I'll sleep over this and see if the morning brings a new idea.20:01
henningervba: great idea20:02
henninge;-)20:02
* henninge cannot sleep yet, though20:02
* rvba meither20:02
rvbas/meither/neither/20:02
lifelessmorning20:14
lifelessderyck: hi20:14
deryckhi lifeless20:15
lifelessderyck: bug heat decay20:16
deryckah yes20:16
deryckwe talked about that at the thunderdome, no?20:16
lifelessderyck: stub has identified *something* causing rapid index bloat in bug/bugtask20:16
lifelessderyck: we talked about the rendering stuff - threshold and the curve fitting function20:16
deryckok, gotcha.  new issues now.  the joys of heat! :-)20:17
lifelessderyck: stub is still gathering data, but it may be the bug heat decay (because every row in bug (and now bugtask)) is being rewritten at high frequency20:17
lifelessI'm being opportunistic, since you're still here ;) and asking about how important the decay aspect is20:18
lifelesslike, if we removed the 'time since last alteration' component from the heat function, do we think folk would care?20:18
derycklifeless: it's very important actually.  the decay helps bugs not sit in the top 10 hot bugs too long.  bugs can gain heat quickly and they need to decay quickly or it gets odd looking on that bugs home page.20:19
derycklifeless: the decay happens via the offline job or cron, though.  So it could be run less frequently.20:19
lifelessderyck: did we try it without the decay at any point ?20:19
lifelessderyck: I ask because hot bugs are often lightning rods anyway20:20
lifelessderyck: which means they get meaningless comments that have the effect of nullifying the decay20:20
derycklifeless: we tried various forms of heat.  we never tried without the decay alone.20:20
derycklifeless: decay helps mitigate the lightening rod.  comments don't add heat, either.20:21
derycklifeless: so I think the decay bit runs in garbo.  perhaps we could go daily instead of hourly?  I don't recall how frequently it runs actually.20:22
=== salgado is now known as salgado-brb
lifelessderyck: the frequency the task runs isn't the issue20:24
lifelessderyck: its the rewriting of the entire table over the course of a week20:24
lifelessderyck: *if* this is the problem, its baked into the use of a decay function at all.20:24
lifelessderyck: it may not be20:24
derycklifeless: ah, ok.20:24
lifelessderyck: like I say, I'm gathering data.20:24
derycklifeless: and, to be clear, there isn't a decay funtion per se.  There is one calculation function. part of that function handles decay20:25
lifelessderyck: yep, I'm on that20:26
deryckok, cool20:26
lifelessupdate_bug_date_last_updated updates bug_last_updated, which is the key thing for the decay, on every IObjectModified event20:26
lifelesswhich includes20:27
lifeless        for="lp.bugs.interfaces.bugmessage.IBugMessage                 lazr.lifecycle.interfaces.IObjectCreatedEvent"20:27
lifeless        handler="lp.bugs.subscribers.buglastupdated.update_bug_date_last_updated"/>20:27
lifelessderyck: so commenting on a bug freshens its heat20:27
lifelessderyck: that might not have been the intent, but it is the implementation :)20:27
derycklifeless: I don't think that's entirely correct.  update_bug_date_last_updated has nothing to do with heat, IIRC.20:28
lifelessin trusted.sql20:28
lifeless    days_since_last_update = (datetime.utcnow() - date_last_updated).days20:29
derycklifeless: sorry to seem dumb, I'm in the middle of natty upgrade and get really look20:29
lifeless    total_heat = int(total_heat * (0.99 ** days_since_last_update))20:29
derycklifeless: right.  that heat function *uses* date_last_updating but the event that causes date_last_updated to be updated doesn't cause the heat function to run.20:30
lifelessderyck: right20:30
lifelessderyck: but the reason we have to recalculate the heat on every bug20:31
lifelessderyck: is because date_last_updated is part of the function20:31
lifeless[and date_created]20:31
=== Ursinha is now known as Ursinha-afk
lifelessderyck: I was analysing the 'commenting on a bug does not affect its heat' - but it does20:32
lifelessderyck: because it resets date_last_updated20:32
lifelessderyck: anyhow, will leave you to your upgrade :) stub is gathering concrete data to pin down the cause of bloat20:33
derycklifeless: well indirectly.  commenting affects date_last_updated.  And that factors into heat.  But commenting does not trigger a recalculation of heat.  Changing those dates does not trigger a recalculation of heat.20:33
derycklifeless: ok, fair enough :-)  Good luck with it.20:33
lifelessderyck: thanks20:34
* sinzui just discovered multitouch is now enabled on his macbook20:34
jcsackettsinzui: really? how well is it working?20:35
sinzuithree fingers: resize/move via love handles. four fingers: opens the dash20:36
sinzuicontacts synced for the first time in 4 months this morning too. The test will be my next update though. My primary computer has only synced twice in 18 months20:38
lifelessderyck: I see the confusion I was causing; I was saying that commenting on a bug stops the 'if days_since_last_update > 0:' condition firing20:39
deryckah ha20:39
lifelessderyck: any bug commented on less than 1 day before the background task to update heat, will have an unscaled heat20:40
derycklifeless: I see what you mean now20:40
lifelessderyck: and also that bugs which are in the top 10 will likely get a continual stream of comments - they are lightning rods20:40
deryckright20:41
lifelessderyck: all they need is one comment every week or so to stop them dropping out20:41
deryckright20:41
=== almaisan-away is now known as al-maisan
jcsackettsinzui: nifty.20:41
lifelessderyck: which is why I'm wondering if there is any /practical/ impact of dropping the date based scaling20:41
sinzuioh, hell20:42
* sinzui gets children20:42
lifelessderyck: IFF stub finds that it is the heat routine causing issues20:42
derycklifeless: right.  given that, maybe there's no harm.20:42
derycklifeless: we could try and see.20:42
lifelessyeah20:42
lifelessthere is no rush, not till we know the bloat cause20:42
lifelessthanks for the time!20:43
derycknp!  Thanks for bringing it up.20:44
=== salgado-brb is now known as salgado
=== maxb_ is now known as maxb
=== Ursinha-afk is now known as Ursinha
deryckLater on, everyone.21:05
lifelesswgrant: would you like the honours ?21:17
=== al-maisan is now known as almaisan-away
LPCIBotProject windmill build #142: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill/142/21:52
* mwhudson_ raised an eyebrow at https://launchpad.net/c++22:10
lifeless-lol-22:11
lifelessterrible project name22:11
=== mwhudson_ is now known as mwhudson
mwhudsonyeah22:12
mwhudsonjml: hooray for the upgrade to twisted 11 being so easy!22:12
lifeless933, in _get_nodes22:12
lifeless    found[idx] = cache[idx]22:12
lifelessRuntimeError: maximum recursion depth exceeded22:12
=== Ursinha is now known as Ursinha-bbl
=== s1aden is now known as sladen
sinzuijcsackett:22:36
sinzuiping22:36
* sinzui is on stupid medication today22:37
=== salgado is now known as salgado-afk
jcsackettsinzui: pong.22:50
jcsackettsorry, didn't hear the notification.22:50
sinzuijcsackett: mumble?22:51
* wallyworld sad. coffee machine broken :-(22:59
=== matsubara is now known as matsubara-afk
=== a1 is now known as al
lifelessgmb: ping23:37
lifelessgmb: lp:~gmb/launchpad/bug-1-timeout - this will cause timeouts on bug message collections via the API I think23:38
pooliehi lifeless23:42
lifelessgmb: s/timeouts/bad-data/ - it needs rolling back, I've explained in the bug23:46
lifelesshi poolie23:46
wgrantlifeless: Which honours?23:46
lifelesswgrant: deleting shipit23:46
wgrantWoot.23:47
wgrantI wasn't sufficiently up to date on email.23:47
wgrantBut yay.23:47
wgrantIs production sufficiently gone?23:47
lifelesssee chat with chex in -ops an hour back23:48
wgrantSo that looks like a yes.23:49
wgrantAnd if not, then the unused shipit appservers will break, oh no.23:49
wgrantThis is very good news.23:49
wgrantWe can finish purging Account.23:50
wgrantAnd then delete AccountPassword and eventually Account itself!23:50
wgrantAnd we will be sensible again!23:50
lifelessVPC 4 eva23:51
wgrantYes.23:51
wgrantlifeless: Have you rolled back gmb's thing?23:52
lifelessnot yet23:52
lifelessI have to pop out for a bit23:52
lifelessif you want to do it yourself, that would be cool23:52
lifelessI can't see any good reason for him to be collecting /all/ bug messages for bug 1 in his code23:52
_mup_Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Invalid by compscibuntu-bugs> <EasyPeasy Overview:Invalid by ramvi> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <The Linux OS Project:In Progress> <metacity:In Progress> <OpenOffice:In Progress by lh-maviya> <Tabuntu:Invalid by tinarussell> <Tivion:Invalid by shakaran> <Tv-Player:New> <Ubuntu:I23:52
lifelessso I suspect the change is actually entirely different23:52
LPCIBotProject windmill build #143: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill/143/23:53
lifelesschange needed is entirely different, I mean23:53
wgrantOK, I'll check it and roll it back.23:53
lifelessthanks23:53
lifelesshave we seen an OOPS for this in the oops reports?23:54
lifeless-> bbiab23:55
jmlmwhudson: hah!23:55
mwhudsonjml: ?23:56
jmlmwhudson: it took way longer than you might think, because of two separate spurious test failures during ec2 and a testfix mode when I went to land today23:56
jmlmwhudson: but the patch was small :)23:56
mwhudsonjml: well, ok, so "modulo usual launchpad development craptitude"?23:57
jmlmwhudson: yeah, modulo that, it was a piece of cake23:57
jmlmwhudson: I wish every Python library cared as much about backwards compatibility.23:57
jmlanyway, off to bed23:58
jmlg'night.23:58

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