[00:28] jml: https://code.edge.launchpad.net/~james-w/launchpad/fix-publishing-getbyid/+merge/28359 === almaisan-away is now known as al-maisan === al-maisan is now known as almaisan-away [07:12] ood moring [07:28] I wonder [07:29] how much work would be involved to make 'mark x as dup of y' move all of x's dups to be dups of Y [07:29] its awefully manual at the moment [07:29] wbn [07:30] even just when i try to make x a dupe of y and y is already a dupe of z [07:30] it could just do it [07:30] rather than giving me an ugly error [07:30] lifeless: oh also i was contemplating a command to attach a local file to a bug [07:30] do you know of anything at the moment? [07:32] lifeless: I think deryck implemented that recently. [07:32] no, that would be nice. Bughugger probably has a gui one. [07:32] * wgrant hunts. [07:33] wgrant: wabbits? [07:33] https://code.edge.launchpad.net/~deryck/launchpad/do-the-right-thing-dupe-move-78596/+merge/27144 [07:33] Not merged yet. [07:33] poolie: apport hooks probably do that [07:33] StevenK: no, they do something quite different. [07:33] StevenK: it uploads to a staging area, gets a magic prefix, etc [07:34] Ah [07:34] StevenK I want: lsusb | lp-attach 123123 --name lsusb.txt [07:35] oh [07:35] there is an apport thing to *add* to a bug [07:35] under the ubuntu-bug banner [07:35] apport-collect? [07:35] ubuntu-bug -u bug [07:44] mm i want something with less policy [07:44] i may try one sometime [07:45] bug.addAttachment [07:45] its in the API [08:16] i know [08:16] but thanks [08:16] i anticipate it should be a pretty small bit of code [08:17] hmm [08:17] I don't like the question spam [08:17] when there is a linked bug [08:17] not my fault :) [08:17] or is it? [08:17] no [08:17] well maybe you linked two things [08:17] but it appears to be that questions mails me directly [08:18] when a bug status attached to a Question is altered. [08:18] ah yes [08:18] and I'm subscribed indirectly to the bug. [08:18] that bugs me too [08:18] also it's not obvious why the mail is being sent [08:18] I'm enbugginating [08:19] and.... bug dup suggestions are timing out again [08:21] https://bugs.edge.launchpad.net/launchpad/+bug/597981 [08:21] <_mup_> Bug #597981: launchpad tells me twice about changes to bugs that are linked to questions [08:29] poolie: also https://bugs.edge.launchpad.net/launchpad/+bug/597982 [08:29] <_mup_> Bug #597982: emails about 'questions' have many different subject lines [08:52] cute [08:53] if you create an attachment and don't specify the mime type [08:53] launchpad assumes it is chemical/x-mopac-input [08:53] i think that's pretty reasonable, don't you? :) [08:56] rotfl [08:56] thats awesome [08:56] i guess it's alphabetically first or something [09:00] might be behind bug 204560 [09:00] <_mup_> Bug #204560: Incorrect MIME type when uploading an audio/x-musepack (*.mpc) file [09:03] Guten morgen [10:58] lifeless, wrt to your recent comment on the factory... I wonder how much an LP factory could be broken up. [10:59] jml: I'm doing some experiments in the space [10:59] ask me at the epic, I hope to have better answers [10:59] and I may have had opportunity to look at the LP factory by then. [10:59] jml: trivially it could be made into a Facade [10:59] or given .foo.bar subfactories [11:04] Morning, all. === mrevell is now known as mrevell-lunch [11:59] jml, 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. [12:03] deryck, because the test doesn't care about it being a product, I guess. [12:03] deryck, it just wants a BugTarget and doesn't really care about the implementation [12:03] deryck, wrapping means that the test reads the way I think about it. [12:05] jml, ok, fair enough. [12:07] jml, 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] deryck, basically, yes. [12:07] deryck, I hate login with a particular fixed email string. I can never remember what privileges it's supposed to have. [12:08] deryck, again, the idea is that the code communicates "login in as someone, anyone, it doesn't matter" [12:08] deryck, because that's actually what we want, right? [12:08] \o/ [12:08] clarity, its a shocker [12:09] jml, 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] deryck, thanks. [12:18] jml: FYI, I fw you the email sent to the ML about LP and Quickly (hope you will receive it this time :)) [12:18] didrocks, I just forwarded it to launchpad-dev [12:18] didrocks, that's definitely the first time I've seen that email. [12:18] jml: ok, what's wrong with the adress I used? I got no email about rejection or anything else [12:19] jml: 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 team [12:19] didrocks, I don't know. [12:20] jml: weird… if you receive any answer, can you check that I'm in CC :) [12:20] didrocks, ahh, fwiw, your original emails were in the moderation queue [12:20] jml: oh ok, so make sense now :-) [12:21] thanks jml [12:21] I don't know who gets those emails. [12:21] as in, who is told about pending moderation. [12:21] maybe nobody, hence the pending issue :-) === mrevell-lunch is now known as mrevell === kiko is now known as 40FAA4R6V [12:53] trying to setup a local LP install on lucid - cant start up postgrsql again [12:54] "Invalid data directory" [13:00] Mez: That's really not enough info to enable anyone to help you [13:00] maxb: No worries, I'm cleaning up, getting rid of postgres, and reinstalling ;) [13:01] trying a manual DB setup, rather than the automated one [13:01] seems postgresql8.4 had it's /etc stuff wiped somehow === matsubara-afk is now known as matsubara [13:02] ah, does LP support postgres 8.4 ? [13:04] Yes [13:04] it's not in the docs ;) [13:05] (which just mentions 8.3, leafing me to ask the Q) [13:05] Although, launchpad-database-dependencies won't install all the supplementary packages for 8.4, so you'll have to do it yourself [13:06] like? [13:06] postgresql-plpython-8.4 postgresql-contrib-8.4 [13:07] that may have been where it went wrong then [13:17] ok, now I've got my DB running, however - make schema doesnt work [13:17] http://pastebin.com/wNmNYmti [13:23] Mez: 'make SHHH= schema' to turn off the silly output hiding thing so the output is more informative [13:25] maxb: pretty much the same [13:25] http://pastebin.com/q3JSfNWR [13:25] I removed the download-cache and reran rocketfuel-get === henninge_ is now known as henninge [13:52] Hi adiroiban ! ;) [13:53] maxb: any siggestions ? [13:54] ah, get a copy from the python site, that works [14:03] oh, is a file missing from download-cache? [14:05] Mez: I have a dist/setuptools-0.6c9-py2.6.egg in my download-cache [14:14] maxb: no, the file was there, but the file wasnt matching it's MD5 sum [14:14] huh. weird [14:14] I re-downloaded it directly from the site, and it seems to have fixed it. [14:14] *sigh* [14:14] now even more issues [14:15] no build-essential (gcc) [14:21] so "ec2 land" is running all the tests, and they all pass, but it either isn't doing anything, or the mails aren't getting out [14:22] james_w, hmm. [14:22] james_w, you've double checked spam filters I suppose [14:23] The 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 latter [14:25] hmm. [14:25] james_w, actually, I don't understand that last sentence of yours. [14:26] I'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 pqm [14:27] james_w, it generates a command line for 'ec2 test' and then runs that. [14:27] yes [14:28] james_w, the "-s" option in _get_landing_command [14:28] which is submit_pqm_message [14:28] ah [14:28] thanks [14:28] it was hiding :-) [14:29] np [14:29] ah [14:29] ultimately it all gets passed as options to remote.py [14:29] I changed my bzr whoami to have my linaro address, I wonder if that's it [14:29] which is what actually does the interesting work [14:29] james_w, I bet you that is it. === matsubara is now known as matsubara-lunch === beuno is now known as beuno-lunch === cody-somerville_ is now known as cody-somerville [17:27] sinzui, do you have some time for mumble really quick? I need a UI sanity check. [17:27] I do [17:28] sinzui, what channel are you in? [17:29] i do not know? [17:32] * rockstar thinks pre-imp calls with sinzui are awesome because they are so short. [17:35] rockstar, that is odd. I talk to much [17:35] I have no social life [17:35] bac and EdwinGrubbs can attest that I do not know when to shut up [17:38] sinzui, that may be teamlead-itis. thumper has the same disease [17:39] :) [17:49] what was the name of the effort to restructure launchpad in to the lp.app layout we have now? Was it called the apocalypse? === deryck is now known as deryck[lunch] [18:02] james_w, yes. [18:03] thanks [18:03] james_w, progress is charted here: https://lpstats.canonical.com/graphs/CodeBaseFileCount/20090101/20100625/ === beuno-lunch is now known as beuno === matsubara-lunch is now known as matsubara [18:10] jml: can you confirm I have the right idea on: https://dev.launchpad.net/APPocalypse [18:10] james_w, punned! [18:10] salgado's idea [18:11] I was thinking branchpocalypse [18:11] james_w, that seems the right direction [18:11] james_w, the way I'd do it is split things by service/process, rather than by app. [18:11] at least to start with. [18:12] james [18:12] jml: example? [18:12] james_w, buildmaster, codehosting-ssh, etc. [18:12] ok [18:12] I think starting with lp.whotsits would be good [18:13] james_w, yeah, but the ones of those I'd start with would be the ones that correspond to near-standalone services [18:13] I 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] james_w, also, I have a .dot file for you. [18:13] right [18:14] jml: is that the one that will break my eyes, if not my poor little laptop? [18:14] james_w, yes. http://people.canonical.com/~jml/lp-clustered.dot [18:15] merci [18:16] james_w, no mercy. === salgado is now known as salgado-lunch === deryck[lunch] is now known as deryck === salgado-lunch is now known as salgado [19:54] jml: poolie said something, and I may be misremembering the details /completely/ about a resolution at a recent previous epic [19:54] jml: to squash the timeout oops vigorously [19:55] lifeless, there was, but it died. [19:55] oh [19:55] lifeless, and it was subtly different. [19:55] is there a mail trace about that? I would like to read it [19:56] lifeless, depends on which initiative you mean [19:56] lifeless, there was one to reduce / eliminate timeouts [19:56] lifeless, there was another to reduce / eliminate all oopses. [19:59] ok [19:59] do you know what killed it ? [19:59] tools/size-of-work+time-allocated/motivation/playing-mallet-on-the-metric ? [20:00] it dissipated, basically. [20:01] lifeless, 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] whose awl today [20:01] ok [20:03] lifeless, nope, no email [20:03] gotta go. dinner time. [20:03] thanks, ciao [20:28] hi bac [20:29] hi lifeless [20:45] bac: did my subunit/testr notes make sense to you? [20:45] bac: and if they didn't can I debug that; if they did, did they work for you? [and if not...] [20:45] lifeless: yes it did, thanks. [20:45] lifeless: i haven't actually tried it yet, though [20:49] lifeless: trying now... === salgado is now known as salgado-brb [20:49] brb [20:53] mmm, in the court of the crimson king [20:53] rhythmbox plays this to me first, every time :P [20:54] bac: we could add an import command [20:54] testr import attachment.gz [20:54] which would: [20:54] - sniff the file type [20:54] - 'do the right thing' [20:54] but I'd like to keep the core building blocks really dumb [20:55] lifeless: 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:56] bac: right, I addressed that too [20:56] lifeless: and i think the second part of your email recipe does that [20:56] lifeless: yep [20:56] so many thanks on both counts [20:56] for instance, if I grab a pqm failure from the bzr project [20:57] we have the make output [20:57] and the tests [20:58] its all quite customisable [20:58] https://pastebin.canonical.com/33967/ [20:58] is the end of a recent failure mail [20:58] it uses a very similar bit of code to what I supplied === salgado-brb is now known as salgado === matsubara is now known as matsubara-afk === salgado is now known as salgado-afk [22:53] lifeless, ping [22:57] hi [22:58] sinzui: ^ [22:59] lifeless, 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... [23:00] sinzui: yes, I'm just curious is all [23:00] I can see in a timeout that 4.5 seconds was sql time, everything else was python maybe [23:00] sinzui: I meant absolutely no impediment to your landing it [23:00] We have had several developers look into it. [23:00] No, I am hoping your brains can help me really solve the problem. [23:01] sinzui: I'm really sorry if I wasn't clear about that, I was asking totally from curiosity :) [23:01] oh, ok cool [23:01] uhm [23:01] did you happen to get an lsprof trace of a typical render from a laptop ? [23:02] if its mainly python that sort of thing can be really enlightening [23:02] I 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 statues [23:03] lifeless, 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 timeouts [23:04] so 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] I think I'd approach it thusly: [23:05] which ever is greater, sql/python; focus on that (you've said python) [23:05] for the thing being focused on, get a profile trace of a page that would have timed out. [23:05] that is - on staging or something [23:05] * turn off timeouts [23:05] * install a profile middleware [23:06] * run the page [23:06] turning off the timeouts is useful, because that way we can see the total places tha time goes [23:06] otherwise we'd be optimising on only (say) 20 seconds out of 40. [23:06] then, locally, as you have done already, setup something to trigger badnesses [23:07] optimise 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 acceptable [23:07] e.g. [23:07] staging was setup with lsprof. I need to see if that is true since we changed packaging and python versions [23:08] if 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 does [23:08] iterate on that locally [23:10] sinzui: does this add anything to what you where doing? [23:10] sinzui: I don't have any immediate stuff beyond 'gather some more data' though, I'm sorry :( [23:10] yes. It is a sound outline to find the root cause(s) [23:11] you know the ++oops++ magic decorator thingy [23:11] ^ technical term [23:11] I do [23:11] what might be really nice [23:11] is a magical ++profile++ decorator enabled only on staging (and for non-devs it turns itself off once the user is determined) [23:12] ooo [23:12] it could write the profile to a directory that gets rsynced to devpad [23:12] +1 [23:12] and put the filename in the timing block at the end of the page [23:12] so you could just do this [23:12] wait a couple of mintes [23:12] and have a kcachegrind ready analysis [23:13] thanks [23:13] (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:14] mars: launchpad-foundations would be a good place to record that idea, yes ? [23:14] lifeless, yep! [23:14] I shall file a bug [23:14] lifeless, did you get kcachegrind/lsprof to work for bzrlib? [23:14] mars: years ago :) [23:14] My kcachegrind bin/test patch causes a cachegrind memory explosion [23:15] mars: run this: bzr --lsprof-file foo.callgrind st [23:15] mars: kcachegrind foo.callgrind [23:15] I wonder if you run something different than I do [23:15] oh [23:15] for tests we do it per-test [23:15] I just grabed lsprof from... somewhere [23:15] not for the whole test run [23:15] ah, ok [23:15] the whole test run is *freaking huge* [23:15] I tried the whole run. [23:15] GB's of arcs [23:16] ... well that would explain a few things... [23:16] and thats in bzr which is considerable leaner than lp test-time wise [23:16] mars: have a look in bzrlib.lsprof [23:16] mars: it has shinies [23:16] So my patch is sane then [23:16] where'd it go... [23:16] mars: (use it directly, we do fix it) [23:17] I quite like the chromium speed-tracer [23:17] lifeless, the zope testrunner takes a --profiler= argument. I came up with a monkey-patch for zope.testing that enables one to cachegrind [23:17] mars: how does it compare to the performance tools you've been working with and posting about [23:17] speed-tracer - is that the one with the zooming timeline across the top? [23:18] mars: yeah, built into the browser [23:18] per-item timelines etc [23:18] things like [23:18] Request Timing @21093ms for 18897ms [23:18] Response Timing @39991ms for 661ms [23:18] Total Timing @21093ms for 19559ms [23:19] (which is for the html in https://edge.launchpad.net/bzr btw) [23:19] From the tutorial it looks like they may have improved it [23:20] they used to not distinguish between DOM events [23:20] I really wanted to know "How much blocking was JS execution, and how much was waiting for the load event" [23:20] And it was near impossible to answer that [23:21] So I could not (before) answer a question like "the page has a one second gap between visible and the UJS being active - why?" [23:22] What I really want to see is this: http://developer.android.com/guide/developing/tools/traceview.html [23:23] with the whole zooming timelines and such [23:23] hey, they've improved it! [23:24] they actually documented the file format - that means you could write a Python traceview profile formatter [23:24] ok, bug https://bugs.edge.launchpad.net/launchpad-foundations/+bug/598289 filed [23:24] <_mup_> Bug #598289: support a profile decorator for use in staging and development environments [23:25] I've captured what we discussed in brief, I think. [23:25] Now I just have to find some sleep I can sacrifice to get 100 points of time. Where to look... [23:26] lifeless, looks good [23:27] lifeless, would be nice for the epic. Heck, any profiling would be nice for the epic. [23:27] we could do this before the epic [23:27] so that its available [23:43] mars: what do you think? [23:53] lifeless, I have no idea if that is possible [23:54] sorry [23:54] and I'm already working on another performance tool for the epic