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

james_wjml: https://code.edge.launchpad.net/~james-w/launchpad/fix-publishing-getbyid/+merge/2835900:28
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
adeuringood moring07:12
lifelessI wonder07:28
lifelesshow much work would be involved to make 'mark x as dup of y' move all of x's dups to be dups of Y07:29
lifelessits awefully manual at the moment07:29
pooliewbn07:29
poolieeven just when i try to make x a dupe of y and y is already a dupe of z07:30
poolieit could just do it07:30
poolierather than giving me an ugly error07:30
poolielifeless: oh also i was contemplating a command to attach a local file to a bug07:30
pooliedo you know of anything at the moment?07:30
wgrantlifeless: I think deryck implemented that recently.07:32
lifelessno, that would be nice. Bughugger probably has a gui one.07:32
* wgrant hunts.07:32
lifelesswgrant: wabbits?07:33
wgranthttps://code.edge.launchpad.net/~deryck/launchpad/do-the-right-thing-dupe-move-78596/+merge/2714407:33
wgrantNot merged yet.07:33
StevenKpoolie: apport hooks probably do that07:33
lifelessStevenK: no, they do something quite different.07:33
lifelessStevenK: it uploads to a staging area, gets a magic prefix, etc07:33
StevenKAh07:34
poolieStevenK I want: lsusb | lp-attach 123123 --name lsusb.txt07:34
lifelessoh07:35
lifelessthere is an apport thing to *add* to a bug07:35
lifelessunder the ubuntu-bug banner07:35
wgrantapport-collect?07:35
lifelessubuntu-bug -u bug07:35
pooliemm i want something with less policy07:44
pooliei may try one sometime07:44
lifelessbug.addAttachment07:45
lifelessits in the API07:45
pooliei know08:16
pooliebut thanks08:16
pooliei anticipate it should be a pretty small bit of code08:16
lifelesshmm08:17
lifelessI don't like the question spam08:17
lifelesswhen there is a linked bug08:17
poolienot my fault :)08:17
poolieor is it?08:17
lifelessno08:17
lifelesswell maybe you linked two things08:17
lifelessbut it appears to be that questions mails me directly08:17
lifelesswhen a bug status attached to a Question is altered.08:18
poolieah yes08:18
lifelessand I'm subscribed indirectly to the bug.08:18
pooliethat bugs me too08:18
pooliealso it's not obvious why the mail is being sent08:18
lifelessI'm enbugginating08:18
lifelessand.... bug dup suggestions are timing out again08:19
lifelesshttps://bugs.edge.launchpad.net/launchpad/+bug/59798108:21
_mup_Bug #597981: launchpad tells me twice about changes to bugs that are linked to questions <Launchpad itself:New> <https://launchpad.net/bugs/597981>08:21
lifelesspoolie: also https://bugs.edge.launchpad.net/launchpad/+bug/59798208:29
_mup_Bug #597982: emails about 'questions' have many different subject lines <Launchpad itself:New> <https://launchpad.net/bugs/597982>08:29
pooliecute08:52
poolieif  you create an attachment and don't specify the mime type08:53
poolielaunchpad assumes it is chemical/x-mopac-input08:53
pooliei think that's pretty reasonable, don't you? :)08:53
lifelessrotfl08:56
lifelessthats awesome08:56
pooliei guess it's alphabetically first or something08:56
pooliemight be behind bug 20456009:00
_mup_Bug #204560: Incorrect MIME type when uploading an audio/x-musepack (*.mpc) file <Launchpad Bugs:Triaged> <https://launchpad.net/bugs/204560>09:00
mrevellGuten morgen09:03
jmllifeless, wrt to your recent comment on the factory... I wonder how much an LP factory could be broken up.10:58
lifelessjml: I'm doing some experiments in the space10:59
lifelessask me at the epic, I hope to have better answers10:59
lifelessand I may have had opportunity to look at the LP factory by then.10:59
lifelessjml: trivially it could be made into a Facade10:59
lifelessor given .foo.bar subfactories10:59
deryckMorning, all.11:04
=== mrevell is now known as mrevell-lunch
deryckjml, I'm reviewing your branch to add search tasks modified_since parameter... I'm curious why you wrapped the factory makeProduct call in IBugTarget.  We usually just pass the made product straight to searchTasks.11:59
jmlderyck, because the test doesn't care about it being a product, I guess.12:03
jmlderyck, it just wants a BugTarget and doesn't really care about the implementation12:03
jmlderyck, wrapping means that the test reads the way I think about it.12:03
deryckjml, ok, fair enough.12:05
deryckjml, and I'm curious too about your addition of the login method, rather than passing something like user='test@canonical.com' to the setUp of the test.  Is this to completely avoid sample data?12:07
jmlderyck, basically, yes.12:07
jmlderyck, I hate login with a particular fixed email string. I can never remember what privileges it's supposed to have.12:07
jmlderyck, again, the idea is that the code communicates "login in as someone, anyone, it doesn't matter"12:08
jmlderyck, because that's actually what we want, right?12:08
lifeless\o/12:08
lifelessclarity, its a shocker12:08
deryckjml, yup, that's fine.  I think the branch fine as is, then.  r=me.  I'll add some comments to the MP for posterity's sake.12:09
jmlderyck, thanks.12:09
didrocksjml: FYI, I fw you the email sent to the ML about LP and Quickly (hope you will receive it this time :))12:18
jmldidrocks, I just forwarded it to launchpad-dev12:18
jmldidrocks, that's definitely the first time I've seen that email.12:18
didrocksjml: ok, what's wrong with the adress I used? I got no email about rejection or anything else12:18
didrocksjml: and my @ubuntu.com adress is registered on LP, I thought that you can send to a LP ML even not being member of the team12:19
jmldidrocks, I don't know.12:19
didrocksjml: weird… if you receive any answer, can you check that I'm in CC :)12:20
jmldidrocks, ahh, fwiw, your original emails were in the moderation queue12:20
didrocksjml: oh ok, so make sense now :-)12:20
didrocksthanks jml12:21
jmlI don't know who gets those emails.12:21
jmlas in, who is told about pending moderation.12:21
didrocksmaybe nobody, hence the pending issue :-)12:21
=== mrevell-lunch is now known as mrevell
=== kiko is now known as 40FAA4R6V
Meztrying to setup a local LP install on lucid - cant start up postgrsql again12:53
Mez"Invalid data directory"12:54
maxbMez: That's really not enough info to enable anyone to help you13:00
Mezmaxb: No worries, I'm cleaning up, getting rid of postgres, and reinstalling ;)13:00
Meztrying a manual DB setup, rather than the automated one13:01
Mezseems postgresql8.4 had it's /etc stuff wiped somehow13:01
=== matsubara-afk is now known as matsubara
Mezah, does LP support postgres 8.4 ?13:02
maxbYes13:04
Mezit's not in the docs ;)13:04
Mez(which just mentions 8.3, leafing me to ask the Q)13:05
maxbAlthough, launchpad-database-dependencies won't install all the supplementary packages for 8.4, so you'll have to do it yourself13:05
Mezlike?13:06
maxbpostgresql-plpython-8.4 postgresql-contrib-8.413:06
Mezthat may have been where it went wrong then13:07
Mezok, now I've got my DB running, however - make schema doesnt work13:17
Mezhttp://pastebin.com/wNmNYmti13:17
maxbMez: 'make SHHH= schema' to turn off the silly output hiding thing so the output is more informative13:23
Mezmaxb: pretty much the same13:25
Mezhttp://pastebin.com/q3JSfNWR13:25
MezI removed the download-cache and reran rocketfuel-get13:25
=== henninge_ is now known as henninge
henningeHi adiroiban ! ;)13:52
Mezmaxb: any siggestions ?13:53
Mezah, get a copy from the python site, that works13:54
maxboh, is a file missing from download-cache?14:03
maxbMez: I have a dist/setuptools-0.6c9-py2.6.egg in my download-cache14:05
Mezmaxb: no, the file was there, but the file wasnt matching it's MD5 sum14:14
maxbhuh. weird14:14
MezI re-downloaded it directly from the site, and it seems to have fixed it.14:14
Mez*sigh*14:14
Meznow even more issues14:14
Mezno build-essential (gcc)14:15
james_wso "ec2 land" is running all the tests, and they all pass, but it either isn't doing anything, or the mails aren't getting out14:21
jmljames_w, hmm.14:22
jmljames_w, you've double checked spam filters I suppose14:22
james_wThe code seems to be hiding the request to send to pqm if successful, but seeing as I don't get a success email I'm suspecting the latter14:23
jmlhmm.14:25
jmljames_w, actually, I don't understand that last sentence of yours.14:25
james_wI'm reading the code to try and work out what it is trying to do, but I can't see where "cmd_land" sets things up such that a request will be made to pqm14:26
jmljames_w, it generates a command line for 'ec2 test' and then runs that.14:27
james_wyes14:27
jmljames_w, the "-s" option in _get_landing_command14:28
jmlwhich is submit_pqm_message14:28
james_wah14:28
james_wthanks14:28
james_wit was hiding :-)14:28
jmlnp14:29
james_wah14:29
jmlultimately it all gets passed as options to remote.py14:29
james_wI changed my bzr whoami to have my linaro address, I wonder if that's it14:29
jmlwhich is what actually does the interesting work14:29
jmljames_w, I bet you that is it.14:29
=== matsubara is now known as matsubara-lunch
=== beuno is now known as beuno-lunch
=== cody-somerville_ is now known as cody-somerville
rockstarsinzui, do you have some time for mumble really quick?  I need a UI sanity check.17:27
sinzuiI do17:27
rockstarsinzui, what channel are you in?17:28
sinzuii do not know?17:29
* rockstar thinks pre-imp calls with sinzui are awesome because they are so short.17:32
sinzuirockstar, that is odd. I talk to much17:35
sinzuiI have no social life17:35
sinzuibac and EdwinGrubbs can attest that I do not know when to shut up17:35
rockstarsinzui, that may be teamlead-itis.  thumper has the same disease17:38
sinzui:)17:39
james_wwhat was the name of the effort to restructure launchpad in to the lp.app layout we have now? Was it called the apocalypse?17:49
=== deryck is now known as deryck[lunch]
jmljames_w, yes.18:02
james_wthanks18:03
jmljames_w, progress is charted here: https://lpstats.canonical.com/graphs/CodeBaseFileCount/20090101/20100625/18:03
=== beuno-lunch is now known as beuno
=== matsubara-lunch is now known as matsubara
james_wjml: can you confirm I have the right idea on: https://dev.launchpad.net/APPocalypse18:10
jmljames_w, punned!18:10
james_wsalgado's idea18:10
james_wI was thinking branchpocalypse18:11
jmljames_w, that seems the right direction18:11
jmljames_w, the way I'd do it is split things by service/process, rather than by app.18:11
jmlat least to start with.18:11
jmljames18:12
james_wjml: example?18:12
jmljames_w, buildmaster, codehosting-ssh, etc.18:12
james_wok18:12
james_wI think starting with lp.whotsits would be good18:12
jmljames_w, yeah, but the ones of those I'd start with would be the ones that correspond to near-standalone services18:13
james_wI don't want us to go too far beyond the already established lines, as we only need to split a certain amount for our aims.18:13
jmljames_w, also, I have a .dot file for you.18:13
james_wright18:13
james_wjml: is that the one that will break my eyes, if not my poor little laptop?18:14
jmljames_w, yes. http://people.canonical.com/~jml/lp-clustered.dot18:14
james_wmerci18:15
jmljames_w, no mercy.18:16
=== salgado is now known as salgado-lunch
=== deryck[lunch] is now known as deryck
=== salgado-lunch is now known as salgado
lifelessjml: poolie said something, and I may be misremembering the details /completely/ about a resolution at a recent previous epic19:54
lifelessjml: to squash the timeout oops vigorously19:54
jmllifeless, there was, but it died.19:55
lifelessoh19:55
jmllifeless, and it was subtly different.19:55
lifelessis there a mail trace about that? I would like to read it19:55
jmllifeless, depends on which initiative you mean19:56
jmllifeless, there was one to reduce / eliminate timeouts19:56
jmllifeless, there was another to reduce / eliminate all oopses.19:56
lifelessok19:59
lifelessdo you know what killed it ?19:59
lifelesstools/size-of-work+time-allocated/motivation/playing-mallet-on-the-metric ?19:59
jmlit dissipated, basically.20:00
jmllifeless, I'll grep my email to see if there was a closure email, but probably your best bet is to talk w/ flacoste.20:01
lifelesswhose awl today20:01
lifelessok20:01
jmllifeless, nope, no email20:03
jmlgotta go. dinner time.20:03
lifelessthanks, ciao20:03
lifelesshi bac20:28
bachi lifeless20:29
lifelessbac: did my subunit/testr notes make sense to you?20:45
lifelessbac: and if they didn't can I debug that; if they did, did they work for you? [and if not...]20:45
baclifeless: yes it did, thanks.20:45
baclifeless: i haven't actually tried it yet, though20:45
baclifeless: trying now...20:49
=== salgado is now known as salgado-brb
lifelessbrb20:49
lifelessmmm, in the court of the crimson king20:53
lifelessrhythmbox plays this to me first, every time :P20:53
lifelessbac: we could add an import command20:54
lifelesstestr import attachment.gz20:54
lifelesswhich would:20:54
lifeless - sniff the file type20:54
lifeless - 'do the right thing'20:54
lifelessbut I'd like to keep the core building blocks really dumb20:54
baclifeless: that would be nice...but the reason i raised the issue was really an appeal for human readable summary of failures in the email message.  re-running them is secondary.20:55
lifelessbac: right, I addressed that too20:56
baclifeless: and i think the second part of your email recipe does that20:56
baclifeless: yep20:56
bacso many thanks on both counts20:56
lifelessfor instance, if I grab a pqm failure from the bzr project20:56
lifelesswe have the make output20:57
lifelessand the tests20:57
lifelessits all quite customisable20:58
lifelesshttps://pastebin.canonical.com/33967/20:58
lifelessis the end of a recent failure mail20:58
lifelessit uses a very similar bit of code to what I supplied20:58
=== salgado-brb is now known as salgado
=== matsubara is now known as matsubara-afk
=== salgado is now known as salgado-afk
sinzuilifeless, ping22:53
lifelesshi22:57
lifelesssinzui: ^22:58
sinzuilifeless, the milestone has been a real problem for me for a year because of timeouts. There are many enhancements I cannot consider until I can make that page reliably load...22:59
lifelesssinzui: yes, I'm just curious is all23:00
sinzuiI can see in a timeout that 4.5 seconds was sql time, everything else was python maybe23:00
lifelesssinzui: I meant absolutely no impediment to your landing it23:00
sinzuiWe have had several developers look into it.23:00
sinzuiNo, I am hoping your brains can help me really solve the problem.23:00
lifelesssinzui: I'm really sorry if I wasn't clear about that, I was asking totally from curiosity :)23:01
lifelessoh, ok cool23:01
lifelessuhm23:01
lifelessdid you happen to get an lsprof trace of a typical render from a laptop ?23:01
lifelessif its mainly python that sort of thing can be really enlightening23:02
sinzuiI discovered recently the the diversity of information seem to be a greater factor than number of bugs/blueprints. lots of private object or private secondary objects lost the page down, to does having 100+ assignees and a diversity of statues23:02
sinzuilifeless, I think edwin or bac looked into lsproof. but we could not produce the issue in dev until I wrote a script that makes the diversity I saw in ubuntu timeouts23:03
lifelessso that raises a couple of background tasks - get more data on oops to better reproduce (but gary/stub are working on that already I believe, which is great)23:04
lifelessI think I'd approach it thusly:23:04
lifelesswhich ever is greater, sql/python; focus on that (you've said python)23:05
lifelessfor the thing being focused on, get a profile trace of a page that would have timed out.23:05
lifelessthat is - on staging or something23:05
lifeless* turn off timeouts23:05
lifeless* install a profile middleware23:05
lifeless* run the page23:06
lifelessturning off the timeouts is useful, because that way we can see the total places tha time goes23:06
lifelessotherwise we'd be optimising on only (say) 20 seconds out of 40.23:06
lifelessthen, locally, as you have done already, setup something to trigger badnesses23:06
lifelessoptimise that locally until (at minimum) you've reduced the local time by the same fraction needed to make the total time the profile took be acceptable23:07
lifelesse.g.23:07
sinzuistaging was setup with lsprof. I need to see if that is true since we changed packaging and python versions23:07
lifelessif its 16 seconds in python now to timeout, and 32 seconds in python to profile, and we want to make the python time give a total page render < 20 seconds, we need to take 1/2 the time it does23:08
lifelessiterate on that locally23:08
lifelesssinzui: does this add anything to what you where doing?23:10
lifelesssinzui: I don't have any immediate stuff beyond 'gather some more data' though, I'm sorry :(23:10
sinzuiyes. It is a sound outline to find the root cause(s)23:10
lifelessyou know the ++oops++ magic decorator thingy23:11
lifeless^ technical term23:11
sinzuiI do23:11
lifelesswhat might be really nice23:11
lifelessis a magical ++profile++ decorator enabled only on staging (and for non-devs it turns itself off once the user is determined)23:11
marsooo23:12
lifelessit could write the profile to a directory that gets rsynced to devpad23:12
mars+123:12
lifelessand put the filename in the timing block at the end of the page23:12
lifelessso you could just do this23:12
lifelesswait a couple of mintes23:12
lifelessand have a kcachegrind ready analysis23:12
sinzuithanks23:13
lifeless(I can show you the exact functions in bzrlib to call to use its lsprof glue; though we may want a tweaked version or a lock around the profiling to kick other threads off, or something)23:13
lifelessmars: launchpad-foundations would be a good place to record that idea, yes ?23:14
marslifeless, yep!23:14
lifelessI shall file a bug23:14
marslifeless, did you get kcachegrind/lsprof to work for bzrlib?23:14
lifelessmars: years ago :)23:14
marsMy kcachegrind bin/test patch causes a cachegrind memory explosion23:14
lifelessmars: run this: bzr --lsprof-file foo.callgrind st23:15
lifelessmars: kcachegrind foo.callgrind23:15
marsI wonder if you run something different than I do23:15
lifelessoh23:15
lifelessfor tests we do it per-test23:15
marsI just grabed lsprof from... somewhere23:15
lifelessnot for the whole test run23:15
marsah, ok23:15
lifelessthe whole test run is *freaking huge*23:15
marsI tried the whole run.23:15
lifelessGB's of arcs23:15
mars... well that would explain a few things...23:16
lifelessand thats in bzr which is considerable leaner than lp test-time wise23:16
lifelessmars: have a look in bzrlib.lsprof23:16
lifelessmars: it has shinies23:16
marsSo my patch is sane then23:16
marswhere'd it go...23:16
lifelessmars: (use it directly, we do fix it)23:16
lifelessI quite like the chromium speed-tracer23:17
marslifeless, the zope testrunner takes a --profiler= argument.  I came up with a monkey-patch for zope.testing that enables one to cachegrind23:17
lifelessmars: how does it compare to the performance tools you've been working with and posting about23:17
marsspeed-tracer - is that the one with the zooming timeline across the top?23:17
lifelessmars: yeah, built into the browser23:18
lifelessper-item timelines etc23:18
lifelessthings like23:18
lifelessRequest Timing@21093ms for 18897ms23:18
lifelessResponse Timing@39991ms for 661ms23:18
lifelessTotal Timing@21093ms for 19559ms23:18
lifeless(which is for the html in https://edge.launchpad.net/bzr btw)23:19
marsFrom the tutorial it looks like they may have improved it23:19
marsthey used to not distinguish between DOM events23:20
marsI really wanted to know "How much blocking was JS execution, and how much was waiting for the load event"23:20
marsAnd it was near impossible to answer that23:20
marsSo I could not (before) answer a question like "the page has a one second gap between visible and the UJS being active - why?"23:21
marsWhat I really want to see is this: http://developer.android.com/guide/developing/tools/traceview.html23:22
marswith the whole zooming timelines and such23:23
marshey, they've improved it!23:23
marsthey actually documented the file format - that means you could write a Python traceview profile formatter23:24
lifelessok, bug https://bugs.edge.launchpad.net/launchpad-foundations/+bug/598289 filed23:24
_mup_Bug #598289: support a profile decorator for use in staging and development environments <Launchpad Foundations:New> <https://launchpad.net/bugs/598289>23:24
lifelessI've captured what we discussed in brief, I think.23:25
marsNow I just have to find some sleep I can sacrifice to get 100 points of time.  Where to look...23:25
marslifeless, looks good23:26
marslifeless, would be nice for the epic.  Heck, any profiling would be nice for the epic.23:27
lifelesswe could do this before the epic23:27
lifelessso that its available23:27
lifelessmars: what do you think?23:43
marslifeless, I have no idea if that is possible23:53
marssorry23:54
marsand I'm already working on another performance tool for the epic23:54

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