[00:02] TheMuso, robert_ancell, bryceh, RAOF Eastern Edition? [00:02] Sure. [00:04] Yup. [00:05] go [00:05] k [00:05] should be right quick [00:05] how about I touch on the highlights, then you can read the wiki at your leisure? [00:05] https://wiki.ubuntu.com/DesktopTeam/Meeting/2010-04-06 [00:05] so first: [00:06] 1. Welcome Nafai to the team [00:06] he started full time last Thursday [00:06] he'll be working with didrocks on UNE, and also other coding tasks [00:07] for partner update, the thing here is that Gwibber is still giving lots of heart ache [00:07] basically, it thread locks when trying to access the key ring [00:07] and this pegs the CPU to 100% [00:07] * TheMuso saw that bug. [00:07] it doesn't look easy to fix without a pretty major refactoring [00:07] heya [00:07] anyone can feel free to take a look there and see if they can help [00:07] hiya bryceh [00:08] kubuntu is looking good [00:08] so, blueprints [00:08] I'd like everyone to have a *list* of blueprints ready to discuss at next team meeting [00:09] you don't have to have the blueprint all detailed out, but a list of topics you want to cover at UDS [00:09] for ones you are certain about, seb128 says to go ahead and log the blueprint [00:09] for ones you are not certain about, add the list to your section for your activity report [00:09] Sounds good. [00:09] Yup [00:10] if you haven't been through blueprinting before, or don't know what blueprints you want to create, to talk to me me/or pitti and/or seb128 [00:10] sound good? [00:10] yep [00:10] for release status, well ... we're getting down to the end [00:10] pitti notes all the work is done, but we've got some bugs, some bad ones [00:10] RAOF, shall I register the Xorg blueprints or would you prefer to? [00:10] and only 9 days left before final freeze [00:10] https://wiki.ubuntu.com/DesktopTeam/ReleaseStatus [00:11] bryceh could you walk RAOF through the process some time this week? [00:11] rickspencer3, certainly [00:11] bryceh: I'd like to learn the blueprinting ropes, yeah. [00:11] I think it would be easier for you both if RAOF has logged them, but he'll need some help [00:11] also RAOF may want to make one or two of his own [00:11] :) [00:12] alright, we can tackle it after the meeting [00:12] robert_ancell, well well well, you'll be back on the desktop team! [00:12] that will be so awesome [00:12] rickspencer3, yay! [00:12] so think about blueprints that you want to do [00:13] I started a list of ones that I am interested in here: [00:13] https://wiki.ubuntu.com/DesktopTeam/10.10/BlueprintList [00:13] that was the meeting [00:13] short and sweet. [00:13] bryceh, anything to discuss/report regarding xorg? [00:13] TheMuso, same question for sound [00:14] rickspencer3: No, except for the bug we were talking about yesterday, which I will continue looking into today, need to read the latest bits on the bug from overnight. [00:14] k [00:15] TheMuso, this is only certain Mac models, right? [00:15] rickspencer3: its not mac, its thinkpad. [00:15] oh [00:15] sorry ideapad [00:15] ah [00:15] bummer [00:15] rickspencer3, plenty of bugs, but I think we're doing ok [00:16] bryceh, plenty of bugs, or plenty of bug reports? ;) [00:16] rickspencer3, plenty of bug reports ;-) [00:16] there seem to be no major catastrophes going on, which is nice [00:16] I think the X bugs look a little worse than it is; I think that lots of the Intel reports I looked at yesterday should be fixed in the 2.6.32-19 kernel. [00:16] bryceh, any progress on the bug where clutter crashes when programs exit? I saw there was a patch for it, but bug reports seemed to suggest it didn't work everyone [00:17] rickspencer3, that's right. It's looking to be a kernel bug, but I'm still tracking it. Sarvatt has been identifying patches which may be relevant [00:17] * rickspencer3 gets bug # [00:17] http://www2.bryceharrington.org:8080/X/Reports/ubuntu-x-swat/totals-lucid-workqueue.svg [00:18] ^ shows we're getting new bugs coming in at a pretty heavy clip but all the bumpiness in the graphs show that triagers are quite active [00:18] http://bugs.launchpad.net/bugs/550218 [00:18] Launchpad bug 550218 in xorg-server "xserver crashes when closing application using clutter" [High,Confirmed] [00:18] I managed to get -ati completely caught up for a few moments yesterday :-) [00:19] wow [00:19] pretty neat [00:19] bryceh, I see you only have 2 Highs assigned to you [00:19] seems quite a change from previous releases ... great job! [00:20] yeah, I need to review that patch sarvatt posted last night, it sounds like it might be a good fix [00:20] nice [00:20] well ... that's all I want to pester you guys about this morning/afternoon [00:20] any other business? [00:20] rickspencer3, yeah I tell you this approach of looking only at bugs tagged 'lucid' helps a lot, since I can focus a lot more on the most relevant bugs [00:21] bryceh, that's great to hear [00:21] sounds a lot saner too [00:21] bryceh, I'm hoping you bake some of this learning (and these sweet charts) into launchpad during Maverick [00:21] so..... just put the beta on my new computer [00:21] oh I've got one other thing... [00:21] go ahead [00:21] 13 seconds from grub to sitting at my desktop with nautilus and panel loaded [00:21] I've produced reports of 'upstream-fixed' bugs [00:22] very nice. [00:22] hi desrt [00:22] rickspencer3: hi :) [00:22] oh wait, it's broke [00:22] rickspencer3, nevermind [00:22] hehe [00:22] * bryceh gtg's a todo [00:22] bryceh: you're using gtg? nice. [00:23] bryceh, I need an irc interface into your gtg [00:23] bryce doesn't just *use* gtg [00:23] hehe [00:23] he *is* gtg [00:23] :) [00:24] nah I just contribute bits and pieces to it when I have free time, which these days is hardly ever ;-) [00:24] lol [00:25] well, I was a bit referring to how organized you are [00:25] but yeah, there's the contributions too ;) [00:25] oh, heh, that's true! [00:25] desrt, so you're finding the beta ok? [00:26] i've had *a lot* of issues [00:26] almost all of them X-related [00:27] like X crashes on startup on this new dell PC i got [00:27] it has some ultra-new nvidia card in it that's not properly covered by nouveau yet [00:27] works OK with binary drivers [00:27] desrt, RAOF will be interested in looking at the bug reports you file about the -nouveau issues [00:28] He will indeed. [00:28] desrt, so long as at least one video driver is sufficing to get you up and running, though, that's the important thing [00:28] ah, nvidia [00:28] City of myyystery? [00:28] true [00:28] bryceh: ya. i honestly don't care too much about the opensource-purity thing anymore [00:28] we've had uses in much worse situations I suppose [00:29] i lose too much of my tiem and sanity being a freedom warrior when it comes to graphics drivers [00:29] we're sort of viewing nouveau in lucid mainly as a bridge to get the binary driver installed, since -nouveau lacks 3D and other niceties [00:29] Being an NVIDIA user myself, it is nice to not have to install NVIDIA drivers any more to use my system at a deacent performance. [00:29] desrt, did jockey do the right thing for you then? [00:29] no? [00:29] (install the binary driver easily)? [00:29] * TheMuso doesn't need 3D. [00:29] A better -nv for the moment. Maverick should include nouveau's 3D too, I think. [00:30] i didn't even get the chance. it crashed on startup. [00:30] first boot [00:30] oddly, the installer CD was fine [00:30] ewe [00:30] RAOF: Nice. [00:30] so not sure what the difference there is [00:30] RAOF might know [00:30] maybe it's because i plugged my second monitor in after that [00:30] desrt, out of curiosity after crash did it boot into failsafe mode? [00:30] no. i don't think so. [00:30] i had to manually go into recovery mode [00:30] desrt: Oh. By “crash” do you mean “plymouth hung at five red dots”? [00:30] and install the binary driver [00:31] RAOF; yes. that's distinctly possible [00:31] ah [00:31] that certainly describes what i was seeing on the screen at the time [00:31] yeah that's not a "crash" but rather a "freeze" (or "gpu hang") [00:31] desrt: Welcome to the wonderful world of bug #533135 [00:31] glad you know about it [00:31] Launchpad bug 533135 in plymouth "System fails to boot with plymouth installed (nouveau driver with >1 display)" [Medium,Triaged] https://launchpad.net/bugs/533135 [00:32] installing the nvidia binary driver gives me a really ugly plymouth [00:32] to be honest, i'm not sure why you guys bothered [00:32] * RAOF quite likes the text-mode plymouth. It's neat! [00:32] the thing boots in the blink of an eye anyway [00:32] Sounds like vga16 wasn't ready in time for lucid... [00:32] RAOF: is there a way for me to get the text-mode one? [00:33] my bootup tends to be something like: [00:33] first 2 seconds: nothing [00:33] next 5 seconds: blinking cursor, sometimes an fsck message [00:33] next 1 second: some flicker or somthing [00:33] next 1 second: i see plymouth [00:34] then: X is loaded, login screen [00:34] i'd much rather look at 2 seconds of nothing followed by 7 seconds of some pretty text-based thing followed by X :) [00:35] I thought the 5 seconds should have a plymouth screen on them. [00:36] * desrt reboots, takes careful notes [00:36] There's a plymouth-set-theme or something to switch between themes; you could swith to text there. [00:52] ok. my numbers are pretty much correct [00:53] the splash is up for ~1sec [00:53] desrt, I think that plymouth is actually not working on computers with hard drives (as apposed to SD drivers) atm [00:53] that may have been fixed though [00:53] SD drivers? [00:53] I mean sd drives, sorry [00:54] well, this has an ssd [00:54] oh [00:54] then it should be working in any case [00:54] it's an sata ssd, if that makes a difference [00:54] desrt, there is something wrong [00:54] meh. i don't lose too much sleep over it [00:54] like the fsck message should be handled by plymouth and such [00:55] 5 seconds of looking at a blinking cursor instead of a pretty screen isn't high on my worries list :) [00:55] especially since it looks like your boot is like 10 seconds ;) [00:55] more or less [00:55] my girlfriend took a video of the boot and she's uploading it to youtube now [00:55] still, some users will be bothered by the boot not being "pretty" [00:56] it's taking a while because the file is big, but i'll share the link when it's done [00:56] kewl === bjf is now known as bjf-afk [01:17] RAOF: http://www.youtube.com/watch?v=jX9L1VPjgEA [01:18] that's what i get [01:24] Hm. I think that looks about right, actually. You could get an earlier splash (at the expense of slightly slower boot) by including the kms drivers in the initramfs (my laptops have this, because it's needed for cryptsetup), but that looks to me like plymouth starts up pretty much once you've left the initramfs, which is as soon as it can be. [01:25] so i ask again: why bother? [01:26] if the soonest that plymouth can start up is about 1 second before X starts.... [01:28] On stonking fast hardware, yes. And plymouth isn't just the bootsplash; IIRC it's also useful for user-prompting and it *should* give a nice fsck progress info box thingy. [01:30] ah === bjf is now known as bjf-afk [01:31] let me see about marking my drives for mandatory fscking on next boot [01:51] desrt: afaik thats not possible any more with upstart... [02:32] arrrg, what happened to pinned tabs in Chromium?! :( [03:37] hey rickspencer3 [03:38] hi kenvandine [03:45] hey, my two favorite guys [03:45] so ..... any word on gwibber? :-) [03:45] not yet... [03:45] called in the big guns... Nafai is going to try to crack it :) [03:46] is it looking like the fix will have to be deep? [03:46] it looks like python multiprocessing just doesn't like gobject threads [03:46] mhm [03:46] it might require a pretty significant refactoring in gwibber in order to use the keyring [03:47] unless Nafai can figure out a way to make it work :) [03:48] well, yeah, I figured as such [03:48] kenvandine, are there tests for Gwibberg? [03:48] Gwibber, even? [03:48] Gwibberg is another project i am working on [03:48] hehe [03:49] hmm [03:49] kenvandine, perhaps we could spend one day writing tests [03:49] * LaserJock imagines rickspencer3 toiling away in a secret basement lab [03:49] then refactor the code starting the next day? [03:49] rickspencer3, i have a good test case already [03:50] kenvandine, test cases for gwibber? [03:50] no... but for this problem [03:50] right [03:50] outside of gwibber [03:50] we need a test suite though [03:50] but you need to make sure you don't introduce regressions [03:50] one of the things i want to work on :) [03:50] right [03:50] so what I am suggesting is this [03:50] we can't write a test suite in the next couple days :) [03:50] 1. tomorrow is dedicated to writing a test suite [03:50] * kenvandine is on vacation tomorrow :) [03:50] 2. next day we start refactoring [03:51] ok, then move it up to Thursday [03:51] :) [03:51] we really only need to untangle the key ring part, [03:51] so we can focus writing tests in that area [03:51] I don't foresee an easy fix [03:52] we still have 9 days to move this forward, which should be enough for this problem [03:52] actually that is the least of my worries :) [03:52] what else are you worried about? [03:52] it is easy to see if the keyring is a problem with the refactor [03:52] it is all the "operations" [03:52] ryan writes very compact code :) [03:53] so he has this constructor that creates a number of different types of operations [03:53] and they get wrapped up and thrown at map_async to run them [03:53] hmmm [03:53] i am just worried about the potential breakage we could hit move that out of map_async [03:54] hello, [03:54] kenvandine, what is map_async exactly? [03:54] I've been having problem sending to the desktop mail list [03:54] from multiprocessing.Pool [03:54] I've contacted the owner but nothing changed [03:54] any one can help? [03:55] rickspencer3, it runs a method in a pool of processes and handles calling the defined callbacks for success, failures... timeout, etc [03:55] kenvandine, is it ryan's code? [03:55] rickspencer3, do you own that list? [03:55] or part of a library [03:55] rickspencer3, yes [03:55] kenvandine, no [03:55] kenvandine, it's ryan's code? [03:55] all ryan's [03:55] and it is kind of ugly [03:55] an every operation goes through there? [03:55] yes [03:56] however... it is possible that the nature of this will make the refactoring easy... assuming we understand what it is doing :) [03:56] easy as in # of lines to change [03:56] but my fear is all the corner cases [03:57] kenvandine, is multiprocessing a python library? [03:57] besides all that, i am surprised that something so generally useful like python multiprocesssing just can't be made to work with gobject [03:57] yes [03:58] it handles dispatching operations into separate processes that share some data [03:58] so it all gets channeled through line 339 of dispather.py [03:58] yes [03:59] so we either find the magic "make it work" flag [03:59] pool.map_async(self.func, self.iterable, callback=self.callback).get(self.timeout) [03:59] that runs every operation [03:59] or we change map_async.run() to use some other threading mechanism [04:00] basically write our own map_async() [04:00] yeah, gut the MapAsync class and make it run them a new way [04:01] jeezum [04:02] this is almost exactly like my asynch_task_progressbox class [04:02] humm [04:02] pastebin? [04:02] what does iterable do? [04:02] that is operations [04:02] a list of operations [04:02] kenvandine, you can look at quickly.widgets.asynch_task_progressbox.py [04:03] it just uses python threads [04:03] so it [04:03] s week [04:04] kenvandine, would this work at all with threads? [04:04] i think so [04:05] obviously it would lack the ability to use mutliple processors and such [04:05] kenvandine, what does iterable do? [04:06] it is a list of things to do [04:06] so in this case it is a nested list i think [04:07] I see [04:07] like a list of functions to call? [04:07] no :) [04:07] they all call perform_operation [04:07] but look at the args to perform_operation [04:08] the args to that method is a single item in iterable [04:08] so it's useless [04:08] def perform_operation((acctid, opname, args, transient)): [04:08] (acctid, opname, args, transient) [04:08] that is a single item in a list [04:09] so it calls perform_operation a bunch of times in parallel with a different operation for each [04:09] like twitter:receive, twitter:replies, twitter:private_messages [04:09] etc [04:09] if you post a status update [04:10] it creates a list of operations that include send for each service you have send_enabled for [04:10] and calls them all in parallel [04:10] this is also why it is so hard for us to know if a single operation fails or not [04:11] i actually really hate this code [04:11] if there are problems it is quite hard to really get in and figure it out to debug [04:11] however... i have never actually found a bug in this code path... but have looked there many times [04:14] yes, it's hard to read [04:14] and it may not be buggy per se [04:15] rickspencer3, it is a pain though [04:16] yes indeed [04:16] i don't think we should touch perform_operation though [04:16] but perhaps the pool stuff that calls it [04:18] rickspencer3, i am still hoping the awesome Nafai comes through... it is nice to use the library to do it :) [04:18] seems that perform_operation could be put on a thread manually [04:19] kenvandine, would gwibber break if each operation was done in sequence instead of in parallel? [04:20] shouldn't [04:21] jeezum [04:21] MapAsync is itself a thread [04:21] which then spawns all these processes [04:22] i don't know if there is a specific reason he chose it [04:22] dude, what if we just set processes to 1? [04:23] i tried [04:23] doesn't work [04:23] i also tried chunksize 1 [04:23] dang it [04:23] no easy answers [04:24] yeah... tell me about it [04:24] wouldn't chunksize kinda be 1 by default? [04:24] i think so, but that isn't clear [04:24] learning a little more about this pool stuff has been intersting [04:24] it is cool stuff [04:26] yeah [04:26] but when you write threaded code, it has to be tight and readable :/ [04:26] And preferably not actually threaded :) [04:27] (I've played with twisted before, and the Deferred stuff is nice) [04:27] yeah [04:28] kenvandine, calling pool like this seems to be working for now: [04:28] pool = multiprocessing.Pool(1) [04:28] maybe it's just luck though [04:29] yeah, looks like it was just luck, when I told gwibber to refresh it pegged again [04:31] rickspencer3, it takes 2 or 3 refreshes to see it [04:31] yeah [04:31] which i find weird [04:31] well, it pretty reliable pegs on the first try for me [04:32] http://pastebin.ubuntu.com/410145/ [04:33] that is a good script to play with for trying to make the pool stuff work [04:33] so ken, you think the best approach is to try to make the call to the keyring work in the existing model [04:33] rather than try to refactor the code? [04:34] yes [04:34] if it can work... [04:34] although i was ready to give up yesterday :) [04:34] you need a day off [04:35] i do [04:35] :) [04:35] I'll put Nafai on this full time starting tomorrow [04:35] great [04:35] RAOF, what are you working on? [04:35] X bugs, and lentil soup. [04:36] Particularly: making it so that lucid will boot on recent macbook pros. [04:36] mmm [04:36] that sounds important too :) [04:37] A bit of python hacking sounds fun, though. [04:37] ha... this isn't the fun kind :) [04:39] RAOF, yeah, so this is a pretty tough nut [04:39] I'm always suspicious of python without unittests :). [04:40] basically, if you can make that script that ken pasted in work [04:40] without pegging the CPU, obviously [04:41] i really need to resurrect those tests [04:42] and create mock stuff for all the services [04:42] can gwibber just get all of the passwords it needs and store them in memory [04:43] and then replace the call to the king ring to a call to a new function that just reads from a dict? [04:43] potentially, i looked at that [04:43] then we need to add the credentials to the operation [04:44] it is nearly as much code to change as refactoring out the pool code [04:44] really? [04:44] and... we would need a way to change that password if the user does [04:44] we can't just write a module [04:44] yeah, cause some services use a secret_key, some password, etc [04:45] an replace a call to that module where the call to the key ring occurs? [04:45] right [04:45] oh, that doesn't work :/ [04:45] cause it gets called from that thread [04:45] i did that [04:45] Or just monkey-patch gnomekeyring to take a lock before all the operations? [04:45] same thing happens [04:46] kenvandine, I mean, write a module that gets all the credentials at startup out of the keyring [04:46] RAOF, i tried that [04:46] and stores those in a hash [04:46] rickspencer3, oh.. yeah... humm [04:46] and then just make that hash globably accessible [04:47] we need a way to update it if the password changes [04:47] I'm actually a bit surprised that works at all; libgnome-keyring is pretty aggressively thread-unsafe in my experience. [04:47] RAOF, it doesn't work at all [04:47] RAOF, exactly [04:47] it threadlocks [04:48] hmm [04:48] if the password changes [04:48] although, this example works fine [04:48] Perhaps I should rephrase. “I'm surprised it doesn't assert() out immediately” [04:48] kenvandine, is there a way to make the password change other than with the gui? [04:48] http://pastebin.ubuntu.com/408313/ [04:48] no [04:49] so we could make it call a method [04:49] so the gui could update the hash [04:49] so we'd add to the startup time the time it takes to read all the passwords from the key ring [04:49] but that should be minimal [04:49] it is fast [04:50] and then we just have the passwords hanging around in memory [04:50] and I guess put a semiphore around it when anyone tries to read or write it [04:51] kenvandine, would it be worth it to send Nafai exploring down this path tomorrow? [04:51] maybe, let him try to fix it first [04:51] ok [04:52] kenvandine, please don't let me catch you online tomorrow! [04:52] :) [04:52] i shouldn't be [04:52] I think a break will help you be more productive [04:52] i am going to see tigers with the kids [04:52] just, for the love of god, stay away form gwibber [04:52] for one day [04:52] that should be good [04:52] will help your mind reset priorities ;) [04:53] kenvandine, but you want Nafai to try making the call to the keyring work in some way [04:53] It looks like maybe seahorse triggers a similar bug? [04:53] some magic flag [04:53] RAOF, oh? [04:53] and if that doesn't work, we'll work around it [04:53] rickspencer3, right [04:54] i think the pool stuff is generally useful, and it would be sad if we can't limit the amount of context it shares [04:54] Open up a keyring, and inspect any of the keys contained therein. Seahorse will consume 100% of a core until you stop looking at that key. [04:55] kenvandine, if the keyring is not threadsafe, it's not threadsafe [04:55] yeah [04:55] that fundamental problem is out of scope for Lucid of course [04:55] RAOF, wow... your right [04:55] it's kinda nutty really [04:55] hmm [04:56] so there are probably a ton of little bugs like this scattered around the desktop [04:58] gotta run [05:00] kenvandine, http://imgur.com/W8nt8 [05:00] :) [05:00] bye bye [05:00] hit and run from rick [05:00] :) [06:26] crimsun: the ideapad U150 and U350 use the same SSID, hense whyusers have a working headphone jack switch. [07:00] Good morning [07:01] Good morning pitti [07:01] rickspencer3: turn off autosync> we don't start gwibber by default, so I don't think it's a beta-2 issue [07:02] hey RAOF, how are you today? [07:02] pitti, if you have accounts configured, we do [07:02] and good morning :) [07:02] hello kenvandine [07:02] kenvandine: yes, but you don't have accounts in a fresh install [07:02] yup [07:02] and for upgrades we can just as well fix it right after beta-2 release [07:02] and one way or another we will have a fix for it ready right after beta-2 :)_ [07:03] 'zactly [07:05] TheMuso: yes, hence why I suggested looking at codec SSID (not PCI SSID) -- with the caveat that I don't know the codec SSID for the original hw that merged the ideapad model & quirk [07:06] pitti: I'm good. Went to see Micmacs last night, which was fun, and I'm very nearly in sync with non-daylight-savings now :) [07:06] Micmacs? [07:06] a movie? [07:06] micro machines? [07:06] A movie :) [07:06] http://www.imdb.com/title/tt1149361/ [07:06] crimsun: oh right, gotcha now. [07:08] Although micro machines could also be cool! [07:09] crimsun: Ah I still have an alsa-info dump from having access to the U350 back in Feb, so have the Codec subsystem ID. I guess that helps some. [08:13] good morning [08:28] hello there [08:28] * pitti waves to the French mafia [08:31] hey seb128, pitti [08:31] lut didrocks, pitti [08:31] seb128: no, it wasn't so late, it was just late for en "early evening" :) [08:31] that said, how are you guys? [08:32] I'm great, thanks! [08:32] you too? [08:32] I'm great too [08:32] yeah, my legs are better. I can almost walk normally but won't run :) [08:32] lol [08:33] see, sport is good for you [08:33] you wouldn't have all those troubles after some exercice if you were doing regular sport :p [08:33] seb128: oh, I'm sure it is. It's just more than 15 hours of steps in 2 days isn't for me :) [08:52] seb128, hey, am I able to take git patches for gcalctool and apply them to the Lucid version? (i.e. is that considered a stable update exempt from a freeze break?) [08:53] hey robert_ancell, yes [08:54] robert_ancell, I was just thinking about you [08:54] I didn't notice you were still online [08:54] robert_ancell, not sure what was the logic behind dropping base conversion from gcalctool but that was not a nice move for users [08:54] I keep getting complain about it [08:54] it's annoying me too :p [08:55] I've to find an another calculator to use now [08:55] seb128: how come you use base conversion? [08:55] * seb128 slaps didrocks [08:55] ouch :) [08:56] seb128, yeah, I'm not going to hear the end of this one... we can, revert to the older gcalctool for Lucid, you can use the PPA I made for Karmic, you can install the package manually from Karmic, or use another calculator (recommended qalculate, speedcrunch, galculator) [08:56] robert_ancell, I think we will not change anything now [08:56] the good news is I spent easter doing the work I wanted to do this cycle and gcalctool master is now awesome [08:56] it's just a shame to rewrite an useful tool to make it useless [08:56] ok, there is some trolling there ;-) [08:57] it's one feature... [08:57] but that's one of the things I use in a scientific calculator [08:57] and gcalctool used to work great [08:57] the old version still exists [08:57] well, one feature that lot of scientific people need [08:57] programmers [08:58] right, programmers on computers, electronic, students [08:58] I would argue scientific people would more like the new features like polynomials === almaisan-away is now known as al-maisan [08:59] let's be honest, people will judge on what is installed by default and laugh to us if we told them to get the old version from a ppa [08:59] anyway just being curious but what was the rational behind dropping those options from gcalctool? [08:59] so I know what to reply to hate emails I get [09:00] we should also probably change the package maintainer info [09:00] so you do get those users emails :p [09:00] sure, it's a shit release in a lot of respects. Not sure what I should have done in hindsight, as i didn't get enough time to finish the features. Perhaps we should have stuck with the older one from a distros perspective. [09:00] yeah, we had an UDS session about things we wanted to stay away from this cycle [09:00] ie rewrites etc [09:01] gcalctool should maybe have been on the list [09:01] there were big internal changes that meant the old methods didn't work. The changes will make the next version awesome, I didn't get time to reimplement the base functionality as I wanted [09:01] sure [09:01] though it's only a calculator, not end of the world [09:01] anyway [09:01] well, I'd support rolling it back if people thought that was appropriate [09:01] not sure if you saw my reply before but backporting git changes if those are bug fixes is fine [09:01] I keep doing that [09:02] since our schedule will be tight and we will not get GNOME 2.30.1 I think this cycle [09:02] or in SRU updates after lucid [09:02] ok, I have to go, one more question. I want to release simple-scan 1.0 (a few minor bugfixes). Should I do that now or wait until after B2 (I've been looking out for serious bugs, there don't seem to be any in the last release) [09:02] as you want [09:02] it will be queue until after beta2 [09:02] so upload at any time between now and freeze next week [09:02] seb128, ok, will wait until after B2 in case someone notices something [09:03] seems good [09:03] rolling back gcalctool, I don't know [09:03] I don't think it's required, but I don't use it a lot [09:03] I started it a week ago or so to do an hex to dec conversion [09:03] I think it would be a good idea as this is a LTS. [09:03] my 2c [09:03] which failed because I didn't find how to do it with the new version [09:03] rolling back? [09:03] yes [09:04] ok, I will discuss it with other people and let you know [09:04] enjoy your evening! [09:04] pitti, ^ [09:04] there are enough people complaining (they often miss other major problems in the past, it's only this feature they've noticed!!) [09:04] bye [09:05] seb128: rolling back gcalctool? no strong opinion either way, it's a "leaf" package and thus rolling it back doesn't break anything else [09:05] pitti, ok [09:05] the karmic one was fine [09:06] robert_ancell as an upstream seems to be in favor of rolling back [09:06] and yes, I'm missing dec<->hex<->oct conversion, too, but by now I got used to just using python for that [09:06] I will play with both today [09:12] seb128, https://bugs.edge.launchpad.net/ubuntu/+source/empathy/+bug/556977 has been linked on a bug report but I don't have rights to see it. Can you make it public please? [09:12] Error: Could not parse data returned by Launchpad: list index out of range (https://launchpad.net/bugs/556977) [09:12] I don't have right to see it either [09:12] is that a crash which has not been retraced yet? [09:14] maybe, it's a crash according the upstream report [09:42] *shrug* [09:42] i386 retracing backlog is 630 bugs now [09:42] * pitti wishes LP would be a bit more stable these days [09:42] cassidy, it might take a while before getting this one retraced [09:43] seb128, that's a fine, I think I got the reason of the crash [09:43] cool [09:45] pitti, we should probably turn apport off by default now if we didn't yet [09:45] seb128: hm, we usually do after RC, but we can also do it earlier [09:46] well I'm just not sure how useful it is [09:46] we have a backlog of over 800 crashes not retraced [09:46] new one will probably show up after lucid as "can't be retraced due to outdated versions" now [09:54] dpm: I need to update some string in update-manager to fix 10.04 -> 10.04 LTS [09:54] dpm: now I wanted to just to that manually (update, unfuzzy) [09:55] dpm: but for some odd reason I get additional fuzzy strings from a fresh launchpad export [09:55] dpm: when running intltool-update -g update-manager -p and intltool-update -d -g update-manager [09:55] dpm: any hints? is there a know issue here? [10:03] hi mvo, sorry, I got disconnected. The last thing I got was: "dpm: when running intltool-update -g update-manager -p and intltool-update -d -g update-manager" [10:04] mvo, what's the branch you are testing? And what's the link to the LP export? I can try myself I can see what could be wrong [10:05] _if I can see_, I meant [10:05] dpm: cool, thanks. I use "lp:update-manager" and the export from the lucid source package [10:06] dpm: https://translations.edge.launchpad.net/ubuntu/lucid/+source/update-manager [10:08] mvo, yeah, but when you requested the export of the translations, you got a link to the tarball. Could you give me the link, so that I can use that and don't have to request a new export? [10:09] dpm: sure http://launchpadlibrarian.net/43330966/launchpad-export.tar.gz [10:09] mvo, cool, thanks. Let me see if I can see anything unusual [10:12] dpm: german may be a good example language, it should be 100% [10:18] hello everyone [10:18] hey chris [10:18] hey chrisccoulson [10:19] hey seb128, how are you? [10:19] good! you? [10:20] yeah, not bad thanks [10:28] mvo, I've done the following: used lp:update-manager, downloading the translations tarball from the link you gave me, put the update-manager-de.po file (after renaming it to de.po) in the po folder, run 'intltool-update -g update-manager' and then 'intltool-update de'. I can only see 3 fuzzies, which are the ones in which you changed LTS -> http://pastebin.ubuntu.com/410485/ [10:29] which other fuzzies do you get? [10:29] oh, robert_ancell is back [10:29] robert_ancell, quick one for you too [10:29] seb128, hey [10:29] robert_ancell, did you see the bug about gnome-games lpi being broken? [10:30] seb128, no [10:30] robert_ancell, the changes need to be updated to reflect the binaries split you did [10:30] seb128, oh, right. I can fix that [10:31] cool, thanks [10:31] bug #? [10:31] I was not sure if you were reading the gnome-games bug emails or not [10:31] seb128, I get so many email I miss a lot [10:32] seb128, pitti, am planning to look at bug 532531 tommorrow. Been busy with oem stuff, but feel free to have a look if you guys have spare time (which I'm assuming you don't) [10:32] Launchpad bug 532531 in gdm "No way to come back if fast user switcher is activated accidentally" [High,Confirmed] https://launchpad.net/bugs/532531 [10:32] robert_ancell, not sure about the number now, it's on the most recent bugs in the buglist [10:32] robert_ancell, ok good [10:33] seb128, pitti, I see you're both fine with a gcalctool rollback - what version number do I give it to make it work in Lucid? [10:33] I don't like epochs [10:33] I would say current.lucid.is.real.version [10:34] ie 2.29.is.2.28 [10:34] or whatever the versions are [10:34] (I think on the balance it is worth rolling back as the new version will annoy some users+help others whereas keeping the old one will be a neutral change) [10:35] I think we didn't get too many complain about gcalctool in karmic [10:35] so let's stay on this version for lucid [10:35] and rock with the new code for next cycle [10:35] seb128, yeah, I figured it would be like that but I wasn't sure of a good version number [10:35] the new.is.old is what we used for similar cases recently [10:36] not really nice but the other option is an epoch, ie 1:2.28 [10:36] seb128, yeah I hope there aren't too many bugs in the karmic one as the codebase is very brittle. I finally got GObjects all through the new one - much nicer! [10:36] which is nicer but means we can't sync on Debian again later [10:36] epochs are only useful for permanent changes though - we will be in sync for Lucid+1 [10:37] right [10:37] ok, will upload it now [10:37] thanks [10:37] dpm: thanks, I try it again, maybe before I did something (unreleated) wrong [10:37] * seb128 grrrs at pitti and bzr [10:38] nautilus bzr changed format and bzr pull doesn't work [10:38] seb128, how is lucid going for you at the moment? [10:38] robert_ancell, quite good, I think it will be a solid version [10:38] I'm a bit concerned about the number of crash bugs we received recently [10:38] but it might just be because the retracers were broken and are catching up [10:38] so lot of crashers show up now [10:39] there is still quite some bug fixing to do though [10:39] robert_ancell, what do you think about it? [10:39] seb128, I get some weird behaviour with some subsystem not working that stops the sound and power operations from working. Can't work out what it is, but guessing it's not widespread. I have some strange packages on my system though [10:39] robert_ancell, when do you finish oem officially btw? [10:39] seb128, I think it's at UDS? [10:39] k [10:39] what I though but I was not sure [10:39] seb128: bzr upgrade? [10:40] I need to check too [10:40] pitti, dunno, it said something about doing that for me but failed at it [10:40] I rm -r ubuntu and bzr get it again now [10:40] strange [10:40] those format changes are so annoying [10:40] it's ridiculous [10:40] "This may take some time. Upgrade the repositories to the same format for better performance. [10:40] bzr: ERROR: KnitPackRepository('file:///home/seb128/boulot/package/nautilus/ubuntu/.bzr/repository/') [10:40] is not compatible with" [10:41] pitti, ^ that's the error I got [10:41] "Doing on-the-fly conversion from RemoteRepositoryFormat(_network_name='Bazaar repository format 2a (needs bzr 1.16 or later)\n') to RepositoryFormatKnitPack1()." [10:41] seb128, yeah they annoy me too! [10:41] yeah, I don't get as well why it's upgrading and downgrading all the time for me as well :/ [10:41] hey robert_ancell :) [10:41] didrocks, hey! [10:42] mvo, ok, just let me know if I can help in any way [10:42] seb128, does it not upgrade from the LP page? [10:42] robert_ancell, I did rm the dir and got a new checkout [10:42] it's working now [10:43] seems pitti did change the format in some way when he touched it [10:43] dpm: many thanks, I re-run the full update, unfuzzy again and see how it goes [10:43] and bzr pull didn't manage to deal with it [10:43] a new checkout is working though [10:43] go wonder [10:43] ok [10:43] dpm: there is no risk here, right? 9.10 -> 10.04 LTS should not be a problem in any langauge? [10:43] seb128, and bzr upgrade didn't work from your system? [10:43] it's usually faster to checkout again than to try to understand the issue [10:43] dpm: that the string does no longer make sense? [10:43] dpm: because there is a different prefix used for 9 than 10 or something? [10:44] robert_ancell, bzr pull did "upgrading" and failed at it with a "ERROR: KnitPackRepository is not compatible with" [10:44] seb128, as I understand it you need to upgrade at the server and the local copy. You upgrade the server side from LP and the client side by runing "bzr upgrade" [10:44] next time I will try to run bzr upgrade manually [10:45] bzr pull is supposed to do that for you which failed there [10:45] but maybe bzr upgrade does something different and would have worked [10:45] anyway issue solved with a new checkout [10:45] I think bzr pull just tries to translate the formats on the fly (and doesn't always work perfectly), bzr upgrade does the change permanently [10:46] mvo, I can only think of people using different numbering systems, but I'd think translators tend to stick to the same translation as in English. Thus I'm not sure if it should be translatable. Perhaps it could be a variable in a next version of update-manager? I can ask translators to see if they translate the version string and see what they think [10:46] seb128: oh, you didn't run bzr upgrade? [10:46] pitti, no, bzr pull said "upgradign" [10:47] seb128: bzr pull does not upgrade automatically; it claims to do in-place conversion, but that often fails [10:47] which I though was "doing bzr upgrade for you" [10:47] dpm: good point, I will make it a var in the next release [10:47] it converts the individual commits to the other format [10:47] I see [10:47] good to know for next time [10:47] ok [10:49] mvo, another quick thing. While you are at it, perhaps you can manually correct this in de.po-> http://pastebin.ubuntu.com/410488/ It just needs the \r\n removed (the \r makes msgmerge complain) [10:51] dpm: sure, thanks [10:53] dpm: done [10:53] cool, thanks mvo! [10:53] hey pitti [10:53] hey chrisccoulson [10:53] would you mind doing another archive removal for me if you get the chance? [10:53] (bug 553686) [10:53] Launchpad bug 553686 in kazehakase "Please remove kazehakase source and binaries from Lucid" [Wishlist,Triaged] https://launchpad.net/bugs/553686 [10:53] didrocks: hm, I just installed current UNE; I don't see plymouth during boot [10:54] pitti: oh? let me try with today's image. I got it in my upgraded box [10:54] I have plymouth{,-x11,-theme-ubuntu-log,-theme-ubuntu-tex} installed [10:55] chrisccoulson: sure [10:55] pitti - thanks [10:57] pitti - we're turning off the "Report a bug" menu option in lpi aren't we? [10:57] chrisccoulson: right [10:57] i think we need to patch ubufox separately [10:59] didrocks: oh, got it -- /var/crash/_sbin_plymouthd.0.crash :) [10:59] * pitti -> more CD testing [10:59] oupsss, it's on the mini ? [11:00] morning everyone [11:02] didrocks: yes [11:02] didrocks: and synaptics crept back into the "system tools" menu [11:02] seb128, mvo: ^ was that changed recently? or gnome-menus bug? [11:03] later all! [11:03] bye robert_ancell [11:03] bye robert_ancell [11:03] gn robert_ancell [11:03] pitti, I would say changed recently [11:04] but I don't know [11:04] pitti: same on the desktop, just noticed it [11:04] it would be weird as a gnome-menus bug [11:04] huats, later (you should probably take gcalctool off me - I keep breaking things :) ) [11:07] Categories=PackageManager;GTK;System;Settings; [11:07] ^ synaptic [11:08] that's pretty much what computer-janitor has as well [11:09] weird [11:09] it's the same in the cache? [11:09] seb128: yes [11:09] k, so I don't know [11:09] it's showing in system, admin there [11:09] I didn't update for some days though [11:09] but the category in the same [11:10] nothing in changelog related to that… [11:11] seb128: what is the magic for this, actually? [11:11] pitti, for what? [11:11] /etc/xdg/menus/applications.menu says "System and not Settings [11:11] i. e. it's not supposed to show this? [11:12] right, it's supposed to be in system, admin [11:12] it's correctly there with the same Categories on my box [11:12] do you get the same bug without the cache? [11:12] just to make sure it's not a cache thing [11:12] seb128: I'm just trying that :) [11:12] or in gmenu-simple-editor [11:13] works without cache [11:13] Utility contains System which is normal as well :) [11:13] what is the synaptic entry in the cache? [11:13] ok, side effect of the cache, how do you unactivate it pitti for testing? (just curious) [11:13] can you pastebin it? [11:14] and rebuilding the cache/restart panel, it comes back [11:14] didrocks, delete the cache? [11:14] seb128: oh yes, it's true the cache isn't build at first loading [11:14] didrocks, it's a trigger [11:15] pitti, can you pastebin your cache for this entry? [11:15] http://paste.ubuntu.com/410499/ [11:15] seems about right [11:16] it's not listed twice? [11:16] seb128: ooh! [11:16] [synaptic-kde] [11:16] ah [11:17] seb128: I think your recent change to add the "Hidden" entries to the cache also added the OnlyShowIn [11:17] I did a typo [11:17] it's fixed in unapproved [11:17] ah, great [11:17] I added ShowOnlyIn [11:17] instead of OnlyShowIn [11:17] which explains why it works there [11:17] I've the fixed version [11:17] (I confirm, it's the synaptic-kde which is launched there) [11:17] * pitti hugs seb128 for retroactive bug fixing [11:18] * seb128 hugs pitti & didrocks [11:18] * didrocks hugs seb128 & pitti [11:18] didrocks: btw, there are plenty of bug reports for that plymouth crash already [11:19] pitti: ok, I'm still syncing the iso. I'll have a look if you think it's only UNE related [11:20] didrocks: no, I don't think so; but 553745 has plenty of dupes [11:20] bug 553745 [11:20] Launchpad bug 553745 in plymouth "plymouthd crashed with SIGSEGV in ply_event_loop_process_pending_events()" [High,Confirmed] https://launchpad.net/bugs/553745 [11:20] pitti: ok, in keybuck's hands so :) [11:21] seb128: I have OnlyShowIn=KDE; in synaptic-kde.desktop [11:21] didrocks, right, cf backlog [11:22] didrocks, the cache didn't list the OnlyShowIn due to a typo [11:22] it's fixed in the queue but didn't get accepted yet [11:23] seb128: I don't have the typo version "ShowOnlyIn" but "OnlyShowIn" which is the right version, no? Or understand the contrary? (and I have the bug) [11:23] didrocks, the typo is in the cache builder [11:23] didrocks, the cache doesn't have the "OnlyShowIn" [11:23] I listed "ShowOnlyIn" in the known keys to cache [11:23] instead of "OnlyShowIn" [11:23] seb128: oh ok, I thought you was talking about the synaptic-kde.desktop file containing the typo. understood :) [11:24] so the cache just doesn't list any "OnlyShowIn" [11:24] were* [11:24] ok, so my three grievances with CD testing are all bug-ified [11:24] sure, I misunderstood where the typo was, hence my question :) [11:24] it's all good! [12:02] seb128: aha, all good while I was at lunch? [12:03] yes [12:05] cool [12:05] heh, launchpad under maintenance again [12:12] james_w, hey [12:12] baptistemm, no it's not? [12:12] hey seb128 [12:12] james_w, did you see the update on the pitivi fix you sponsored? [12:12] there is a new comment and commit [12:12] yeah [12:13] I rejected it from UNAPPROVED [12:13] I'll upload the fixed version today [12:13] seb128, hmmm, I had a message when I logged in, perhaps some caching issue [12:13] james_w, ok good, thanks [12:14] sorry for not commenting, but I was just leaving [12:14] james_w, ah, I have also a fix; mine is for bluez :) [12:15] baptistemm: I saw [12:16] I'll get to it after lunch [12:16] no problemo, thanks a lot [12:17] james_w, that's ok, I just noticed because they were discussing the bug on #pitivi [12:17] ah [12:17] ah they happy with the fix in that patch? [12:18] the documentation states you shouldn't use the function [12:19] james_w, they are unsure about it, they are looking for people to test if that fixes the issue or not === MacSlow is now known as MacSlow|lunch [12:48] pitti - is there a spec for disabling the "report a bug" menu items? [12:48] chrisccoulson: https://blueprints.launchpad.net/ubuntu/+spec/desktop-lucid-bug-management [12:48] pitti - thanks [12:54] dpm: I unfuzzied now all the language that looked safe, I guess I still need to send a mail to the translators list as e.g. fi.po I did not dare to touch [12:58] mvo, cool, thanks! Were there many languages which were not safe to unfuzzy? [12:58] dpm: very few [12:59] dpm: but some had postfixes like 10.04:en and I didn't feel like I can mug around with those (too dangerous) [12:59] * dpm nods [13:15] seb128, ping [13:18] edsiper, pong [13:18] (but on phone) [13:22] edsiper, I'm back [13:26] seb128, it was me (Eduardo Silva), i pinged you as i heard the girl in the line so i didn't knew if you were listening... [13:26] :) [13:26] oh ok [13:26] I didn't hear the girl there, the line just went silent [13:27] I guess they had some routing issue or something === MacSlow|lunch is now known as MacSlow [13:27] seb128, yeah, well it was fun, i thought that was another interviewer... [13:47] pitti, http://cgit.freedesktop.org/media-player-info/commit/?id=8f2caea0c49e1b92f493230d717987aa7bf91096 [13:47] pitti, might be worth getting in lucid, it could fix those bugs we get about sansa devices [13:47] pitti, not sure if that would fix the "don't get mounted" though [13:48] seb128: I still have those in my mailbox, will look at them in the next days [13:48] pitti, ok [13:48] I'm off for some 1.5 hours for an appointment [13:48] pitti, see you [13:52] see you pitti [14:02] hello all [14:07] nautilus fails with a segmentation fault when i try to use it as my user, but works with sudo [14:08] anyone have any ideas? [14:08] hearthrob: Sounds like a corrupt configuration file for your user. [14:08] hearthrob: Try: strace -e open -f nautilus [14:59] didrocks, btw no need to look at the seahorse crashers, I found what the issue is [14:59] seb128: yeah, I saw that in a comment from the bug report, sweet :) [15:01] seb128, pitti, Nafai, can we talk about gwibber in the next hour or so? [15:01] I dug into it quite a bit last night, I think we'll have to write some code to work around the issue [15:03] thanks jpds [15:03] it was trying to read a big file i guess... solved by deleting the file :) [15:06] seb128: pitivi is back in the queue, let me know if you want me to pull it again [15:09] rickspencer3, hey, ok [15:09] james_w, ok, thanks [15:16] ccheney, ping === bjf-afk is now known as bjf [15:22] pitti, ? [15:23] rickspencer3, he had to run for an appointment, he said he would be away 1.5 hours [15:23] ok [15:23] rickspencer3, that was around 1.5 hours ago though so he should be back soon I guess [15:23] I think Nafai is not online yet [15:24] so maybe we can meet in this channel when everyone is back [15:24] seems good [15:24] seb128, I see a way forward for gwibber, but there will be some work involved [15:24] I'm around for the new 2 hours [15:24] I think Nafai can do it [15:24] seb128, sounds good [15:24] next [15:24] I guess pitti will be back before that and Nafai will be up too [15:24] btw, kenvandine is on vacation today [15:24] ok [15:25] I told him *not* to get online ;) [15:25] did you find what is wrong in gwibber? [15:25] yes, it's pretty obvious that the gnome key ring is not thread safe [15:25] is that the multiprocessing sharing context issue chrisccoulson and others were mentioning yesterday? [15:25] anyone who calls it from a thread has issues [15:25] right [15:25] If pitivi gets effects like this: http://socghop.appspot.com/gsoc/student_proposal/show/google/gsoc2010/thibaultsaunier/t127060149183 would it be possible to have it as an update in Lucid? [15:25] it's not only gnome-keyring [15:25] seems using libdbus is an issue too [15:25] so, why, specifically that happens to the key ring, I don't know [15:26] could be [15:26] Since that will be such a common user request, it seems to make sense if pitivi upstream agrees [15:26] so I know where in the code the problem is [15:26] and I know the pieces that don't work [15:26] but the keyring is a blackbox to me [15:26] and I see how other people solved the problem, and we can take a similar approach [15:26] ok [15:26] maybe wait for pitti and Nafai for details [15:26] yeah [15:26] so you don't have to explain twice [15:27] that was just my long winded answer to "do you know what the problem is?" ;) [15:27] hehe [15:27] rickspencer3, Try sshing to > 50 boxes at once and watch the agent completely tank. Could it be due to seahorse storing the info in the keyring? [15:27] SEJeff, seahorse has nothing to do with ssh [15:28] rickspencer3: hello [15:28] hiya pitti [15:28] seb128, Well the ssh-agent functionality of it was pulled into gnome-keyring since the previous 2 gnome releases [15:28] welcome back [15:28] And it is horribly busted [15:28] thanks [15:28] SEJeff, yes, I suspect that seahorse is quite impacted [15:28] SEJeff, if you say so, I never got an issue with it [15:28] rickspencer3: took a little longer, still played around with bug 556253 [15:28] Launchpad bug 556253 in xorg-server "[2.6.32-19 regression] Does not check lid status any more, external screen powered off" [Undecided,Confirmed] https://launchpad.net/bugs/556253 [15:29] I also hear that there are other issues with seahorse and CPU pegging [15:29] but I know there is some open bugs from people ssh lot of boxes at the same time [15:29] rickspencer3, this ssh DoS issue is there since jaunty or so [15:29] RAOF mentioned a bug to me last night about just viewing keys in seahorse pegs a CPU [15:29] ie nothing to do with the rewrite this cycle [15:30] seb128, It is easy to reproduce. Download onall from here: https://code.ticketmaster.com/trac/browser/onall/trunk/onall [15:30] then just do onall -f hostlist.txt "uptime" with a list of hosts around 50 or more [15:30] SEJeff, ok, so maybe somebody who has the issue could upstream it where people writting the code would read about it [15:30] SEJeff, we have no gnome-keyring hacker around [15:30] After doing that a few times, it will kill the agent. ssh-agent from ssh works fine [15:30] fair enough [15:31] SEJeff, I understand the concern but discuss it there will not really bring you anywhere closer to get that one worked [15:31] rickspencer3: is that really keyring itself, or dbus-glib? [15:31] seb128, and I understand. I've got one of those bugs open in fact and will upstream it later today [15:31] * pitti made really bad experiences with using python-dbus in threaded programs [15:31] .b 9 [15:31] I discussed that with upstream even, and eventually gave up [15:32] pitti, I don't know [15:32] pitti, seb128 can we focus on gwibber for a moment [15:32] rickspencer3: hi [15:32] I have a few lines of discussion I can paste in [15:32] The situation: [15:32] * gwibber uses mutliprocessing.pool in a deeply integrated way [15:32] * calling gnome keyring from threads causes threadlocks [15:32] * this effects other apps as well (seahorse, couch, etc...) [15:32] Possible solutions: [15:32] * Store passwords in plain text in desktopcouch [15:32] * Refactor gwibber so it doesn't use threads [15:32] * Roll back the keyring package to a version that does not exhibit the bug [15:32] * Try to tweak the existing code, looking for a magic formula to make calling the keyring from a thread not thread lock [15:32] * Write a new module for gwibber that loads all of the passwords from the keyrings into memory at startup, outside a thread. Call this module from the threads. Figure out how to update these passwords in memory if the user changes passwords in the GUI. [15:33] obviously I think the last option is the best [15:33] thoughts? [15:34] I think we can safely discard the "Store passwords in plain text in desktopcouch" option [15:34] agreed [15:34] * Figure out why calling gnome-keyring from different *processes* hangs, and if it's possible to stop that while using multiprocessing [15:35] james_w [15:35] if seahorse exhibits the same beahviour, then it should be easier to debug it using seahorse (no python interpreter) [15:35] right [15:35] chrisccoulson, I don't know that it does exhibit the same behavior [15:35] how about having just one thread doing the keyring calls? [15:36] pitti, that seems like a rather major refactoring [15:36] rickspencer3, i've noticed seahorse uses a lot of CPU when viewing secrets [15:36] but if several *processes* lock up, then it's not the dbus-glib threading issue [15:36] back then, I had no problem at all with multiple processes [15:36] yes, it's processes, not threads, sorry [15:36] ok, that's more difficult then, due to the IPC involved [15:36] pitti, gwibber uses mutliprocess.pool() [15:37] then map_async [15:37] I'm not familiar with that :( [15:37] neither am I [15:37] basically it's a library that makes it easy to spin off processes [15:37] To get around python's GIL [15:38] but the point is that changing how the processes run would be major open heart surgery on gwibber [15:38] but if the problem also affects seahorse, etc., then I don't understand why we are focussing on gwibber? [15:38] pitti: it's processes, but they are not clean processes I believe, sharing too much state in this case. [15:38] http://pastebin.ubuntu.com/410145/ <- Ken's minimal reproducer [15:39] hm, those do look like threads, though? [15:39] well, the way I read the code is [15:39] chrisccoulson said they shared the same context though which was an issue [15:39] ryan creates a thread, which then spawns processes [15:39] so MapAsync is a thread, right? [15:39] it doesn't call dbus.mainloop.glib.threads_init() ? [15:40] does that even work? [15:40] and then in run it spawns processes through multiprocess.pool() [15:40] and perform_operation is within one of those processes [15:40] however, I could easily be reading it wrong [15:41] what does the program do? [15:41] if I start it, I see no output [15:41] oh, now I do [15:41] two lines of gibberish, then "Complate" [15:41] yeah, there's a 10 second delay [15:41] pitti, the program prints your desktopcouch auoth secret [15:41] repeated [15:42] forever [15:42] and your CPU pegs [15:42] it spawns a thread to monitor the children [15:42] that thread then spawns two processes, both of which request your desktopcouch oauth from gnome-keyring and print it [15:43] when they are done the thread callbacks to the main object (but not main thread) to print the "Complate" [15:43] and that does work with the karmic gnome-keyring? [15:43] dunno, anyone have a karmic vm to hand? [15:43] well gnome-keyring in karmic was not using dbus for communication [15:44] I don't think that shows especially a gnome-keyring issue [15:44] but the fact it uses dbus now shows gwibber design issues [15:44] seb128, right [15:45] but a full refactor of gwibber is out of scope [15:45] ah, that'd be it [15:45] for Lucid [15:45] right [15:45] I'm just saying why it doesn't happen in karmic keyring version [15:45] ok, noted [15:45] seb128: woudl it even be an option to downgrade keyring? I mean, did the data format on disk change, or anything? [15:46] I don't think anything changed no [15:46] in UNE ... do apps get the focus after starting by default? [15:46] the libgnome-keyring api stayed compatible [15:46] the storage too [15:46] they just refactored gnome-keyring to be a dbus service now [15:46] and libgnome-keyring to be a compatibility wrapper [15:47] ie you can still use it the same way but it's meant to be deprecated for direct dbus calls in the next cycles [15:47] asac: they should; WFM, anyway (they usually start fullscreen anyway) [15:47] yeah [15:47] we have this -efl bug --- which is why i wasnt sure [15:48] UNE is using metacity or compiz? [15:48] metacity [15:48] well ... maximus [15:48] which is meta on crack :) [15:48] seb128, rickspencer3: so could we add the old libngome-keyring/python-gnomekeyring as a parallel package for usage with gwibber? [15:49] ogra: thought maxiumus just sits outside and forces windows tec. [15:49] I was thinking that [15:49] pitti, urg, no [15:49] and perhaps seahorse or others as needed [15:49] it seems like a very large hammer, though [15:49] asac, i alwqays thought it was a part of metacity [15:49] pitti, libgnome-keyring gnome-keyring is one set [15:49] I wouldn't like to roll back half of the desktop just for gwibbeer [15:49] ogra: source wise its a separate package [15:49] pitti, the lib talked to the daemon via sockets in karmic which the new daemon doesn't have now [15:49] ogra: i think its also a separate process [15:49] ah [15:49] pitti, they communicate via dbus now which gnome-keyring in karmic didn't do [15:50] ogra: I think asac's right [15:50] seb128: ok, so we could only roll it back completely [15:50] pitti, ie, storage and lib api are compatible but the communication lib, daemon changed [15:50] you can just kill maximus for instance and have regular old metacity [15:50] didrocks: does -efl and non-efl use the same window manager? all metacity? [15:51] seb128, what is the cost of rolling back both parts? [15:51] lack of support going forward in the LTS? [15:51] that [15:51] asac: I think the only thing that changes is the launcher [15:51] seb128, why could we not install both parts in parallel for gwibber and perhaps other apps to use as needed? [15:51] + I don't know if the storage format is really 100% compatible or if it would not handle downgrades [15:51] LaserJock: yeah. which is odd. we have bug complaining that apps dont get focus in -efl [15:51] after starting [15:52] + we didn't test GNOME 2.30 on gnome-keyring 2.28 [15:52] not sure if that would raise another class of bugs in other softwares which have been made to work with the new one [15:52] right [15:52] so a full roll back is risky [15:52] rickspencer3, you can't have 2 daemon running for the same thing [15:52] ok [15:52] they would race to reply etc [15:52] understood [15:53] and you can't have both version of the lib installed anyway since soname didn't change [15:53] well, I was thinking that we would change the name spaces or what not so they wouldn't race [15:53] couldn't we just default to not use the keyring to store passwords? [15:53] if we installed in parallel [15:53] asac: could perhaps the launcher be stealing focus or something? [15:53] rickspencer3, I think it would be less risky and costy to refactor gwibber [15:53] seb128, that is an option, store the passwords in plain text in desktopcouch [15:53] asac: metacity is the default for non-efl. as -efl has no paticular -settings package, it should be distribution default, ie compiz [15:53] but kees nacked that [15:54] didrocks: ah. [15:54] pitti, I agree with seb128 [15:54] potential instability of other parts of the desktop, which we just tested against the new g-k [15:54] seb128, james_w: could it be possible to hack python-gnome-keyring to serialize the calls, with a mutex? [15:54] ^ yes, quite [15:54] rickspencer3: I veto that as well [15:54] didrocks: but if there is no 3d compiz falls back to meta on its own? [15:54] asac: normally yes [15:54] seb128, pitti what would you think of having Nafai start working on: [15:54] 1. batch up all the calls to gnome-keyring in gwibber at startup in an non-threaded way [15:54] pitti, serialize, dunno [15:54] didrocks: how much work would it be to make -efl do the right thing wrt settings etc.? [15:55] this seems to come back regularly, so i wonder if we should just fix that [15:55] 2. replace the 3 or 4 places that gwibber calls gnome keyring in threads to get the stored passwords there [15:55] ? [15:55] this seems like "not rocket science" programming [15:55] one other option we didn't try would be to talk to gnome-keyring daemon directly [15:55] asac: not that much, need a new -settings package, NEWed it, and setting the right parameter [15:55] seb128, interesting [15:56] asac: can work on that tomorrow (as it's too late for beta2 in any case) [15:56] you can do this in python ok? [15:56] ie using direct dbus calls to the daemon [15:56] pitti: that could work [15:56] it's only dbus... [15:56] didrocks: is there a way we can easily test if that would fix our focus thing? [15:56] you can do dbus calls in python yes [15:56] rickspencer3: speaking d-bus in python is dead easy [15:56] right [15:56] didrocks: like putting some file somewhere? [15:56] but as I said, using python-dbus has tons of threading problems as well [15:56] just use the d-bus library and replace those calls [15:56] threads and dbus just don't mix, sorry [15:56] I'm not sure the server has methods for what we need or not, I've not looked to the dbus interface [15:56] pitti, right, but it seems worth a shot [15:56] rickspencer3: I think your "batching in the main thread" would be the safest option [15:57] rickspencer3: I think we should modify the reproducer for the various possibilities that we have [15:57] right, but hacking the d-bus api directly would take like 30 minutes to try [15:57] rickspencer3: i. e. (1) direct d-bus), (2) use mutexes to isolate calls [15:57] well pitti seems to say dbus will not like that by experience [15:57] rickspencer3: the reproducer script is nice because it's much faster to hack on than gwibber [15:57] asac: for testing, you can copy every files (but netbook-launcher) containing "une" in the path and replace them with "une-efl" (/etc/xdg-efl mostly and gconf related stuff) from the ubuntu-netbook-default-settings package [15:57] (3) batch the "get_password" calls before the threads start [15:58] pitti, yup [15:58] asac: then, start the UNE 2D session [15:58] rickspencer3: right, forgot that [15:58] ok, who wants to try (1)? [15:58] gwibber still uses multithreading? thought that was fixed this cycle ;) [15:58] (ignore me) [15:58] asac, it doesn't use multithreading, it uses multithreads which spawn multiple parallel processes [15:59] could using the async keyring calls be worth a look too? [15:59] rickspencer3: so, assuming that (1), (2), or (3) works, these are by far my most preferred solutions [15:59] rickspencer3: anythign else is crackful or way too risky IMHO [15:59] +1 [15:59] much agreed [15:59] james_w: async d-bus calls, you mean? [15:59] I think (3) is a good fallback [15:59] the sync ones share context and block on it apparently, but doing this ourselves could work around that [15:59] that's the approach that other apps took to work around this [16:00] pitti: or just the ones wrapped by libgnome-keyring. It currently calls _sync versions [16:00] james_w: I'm not that fancy rewriting libgnome-keyring, TBH [16:00] we don't know which other apps it can affect, or what we screw up [16:00] pitti: it already has theM! [16:00] oh! [16:01] james_w: yes, definitively [16:01] hello, what is the way to accept some package to be installed for rtl language? [16:02] like mlterm for rtl support in terminal? [16:02] I didn't quite track that, so james_w is going to try (2)? [16:02] https://bugs.launchpad.net/vte/+bug/263822/ [16:02] Launchpad bug 263822 in vte "RTL (right to left) support in terminal (BiDi)" [Low,Triaged] [16:02] rickspencer3: I think james_w's proposal is quite the opposite of (2) .. it makes them "more" async :) [16:03] oh [16:03] I think james_w's suggestion is what I would try first there [16:03] you mean make the keyring asynchronous so threads don't block when they call into it [16:03] ? [16:03] I'm here [16:03] that seems rather bold [16:04] Hi Nafai we are discussing how to solve the problem with gwibber, please read the scroll back [16:04] I remember having had problems with that, too [16:04] rickspencer3, libgnome-keyring has asyncs calls [16:04] ok [16:04] you don't have to make those, just to use those [16:04] i. e. sync calls which block the mainloop from continuing, which is required to finish the call, etc. [16:04] seb128, sorry to be dense ... is the suggestion to use async calls within gwibber? [16:04] hey Nafai [16:04] rickspencer3, I think so yes [16:04] rickspencer3: yes [16:05] hmmmm [16:05] the sync ones share context and block on it apparently, but doing this ourselves could work around that [16:05] that seems rather easy, yes [16:05] I would start by trying that [16:05] at least worth a try in the repro script [16:06] so (4) replace value = gnomekeyring.find_items_sync() with find_items_asynch() [16:07] nope, that seems to use a lot of CPU as well [16:07] :-( [16:08] no easy answers [16:08] I'll try mutexes now [16:08] i. e. (2) [16:08] is it possible that libgnome-keying just uses a lot of CPU time? [16:08] james_w, no [16:08] empathy has no cpu use issue [16:08] neither does evolution [16:08] james_w, it pegs one core forever [16:09] right [16:09] just checking :-) [16:09] rickspencer3, the question was rather to know if gnome-keyring is just buggy and does that whatever you do [16:09] which it's not the case [16:10] since we have other desktop components using it without issues [16:10] james_w - so, my theory from yesterday is probably not the issue then (if you tried with an async call) [16:10] seb128, well, not actually true [16:10] desktopcouch had the same issue [16:10] but using the async call from a separate thread has it's own issues [16:10] so they worked around it [16:10] rickspencer3, the all use multiprocessing though? [16:10] right === al-maisan is now known as almaisan-away [16:11] (it adds an event to the default context, so the callback you pass to the async call will execute in the main process) [16:11] so it means gnome-keyring used in that context has issues [16:11] well, tbh, I don't know for certain if it was "processes" verses "threads" [16:11] it doesn't mean gnome-keyring is buggy [16:11] seb128, right [16:11] correct [16:11] I think these are just incompatibilities [16:11] well it's just safe to be used in those contexts [16:11] which apparently dbus is not either [16:12] anyway Nafai done reading scrollback? [16:12] yeah [16:12] ok [16:12] so ... [16:12] ok, mutexes don't help either [16:12] I think in gwibber we'll end up with: [16:12] (3) batch the "get_password" calls before the threads start [16:12] this will mean I will ask you to write some code for this [16:13] ok [16:14] that does seem to be the best solution for the time which we have [16:14] Nafai, do you have the bandwidth to focus on this 100% today? [16:14] I'd like to see a branch that we can start testing this tomorrow [16:14] strace shows that it's constantly poll()ing [16:15] which returns with "I have data" [16:15] but it doesn't seem to fetch it [16:15] I could, I just need to make sure I pass what I've seen with the bug I'm looking at off to the dx guys since it seems to be in the app indicator code itself [16:16] james_w, rickspencer3, seb128: no luck with mutexes, sorry [16:16] yeah [16:16] pitti, I believe we are retreading ground that kenvandine has already been over [16:16] Nafai, the fallback icon bug is a minor one [16:16] it's only fallback for people not using indicators [16:16] yeah [16:16] (not that we shouldn't analyze it) [16:16] you can just ignore it for lucid [16:16] ok [16:17] in the end, I bet it's the old dbus-glib problem [16:17] you have one main loop, and a different thread which wants the data [16:18] Nafai, pitti, seb128, james_w, fwi, this worked fine: http://pastebin.ubuntu.com/410585/ [16:18] that's the (3) approach [16:18] so I think having the main thread collect the account passwords and store them in mlock()ed memory will work best [16:18] +1 [16:18] rickspencer3: right [16:19] I propose we focus today on getting gwibber reading the passwords working without issue [16:19] rickspencer3: I think that'd be the only rock solid an unintrusive (on a global desktop level) solution [16:19] then tomorrow figure out what to do when users change the passwords [16:19] but nevertheless it was interesting to check the alternatives [16:19] pitti, agreed [16:19] the analysis was useful [16:19] and not too time consuming [16:19] rickspencer3: at worst they'd have to restart gwibber? [16:19] exactly [16:20] well, gwibber-service, but yeah [16:20] oh, rather, restart gwibber if the account which they are already logged in to disconnects [16:20] pitti, seb128, Nafai, james_w - are we all agreed that Nafai should start down path (3) today? [16:20] changing passwords wouldn't disconnect running clients, I suppose? [16:20] rickspencer3: +1 [16:20] +1 [16:20] +1 :) [16:20] the dbus-glib threading problem is known upstream for years [16:21] I don't think we'll find a solid solution within days [16:21] pitti, right, all the easy answers have been tried [16:21] I should work off of gwibber trunk, right? [16:21] this seems SMOP [16:21] Nafai: Qapla'! [16:22] :) [16:23] pitti: I admit it's been a while since I've done a lot of C, so I'm not familiar with mlock(); is this available from Python? [16:23] Nafai: hm, doesn't seem so :( [16:24] Nafai: I propose you write a stub function mlock() which does nothing [16:24] Nafai: and then we can try and write somethign using ctypes [16:24] ok, sounds good [16:25] * Nafai dives in [16:29] rickspencer3: thanks for winpdb hints, it's really a time saver (even regarding to pdb) :) [16:29] didrocks, nice [16:32] yay for quickly debug :) [16:33] :) [16:33] (it's more "debugging quickly" now TBH :)) [16:33] and "$ quickly debug quickly" isn't automated :) [16:59] I'm out for some testing, sport and then dinner [16:59] see you later [18:14] out for lunch and a rest and then back to the gwibber fixes [18:15] I'm not convinced we are looking at the right cause for the keyring problem [18:16] you don't need multiple processes to trigger it [18:16] running with Pool(1) (which should give a single process in the pool) shows the issue [18:17] and from the moment the child writes the secret out until the parent kicks of the new process the parent is busy looping, polling a couple of fds that I think communicate with the child [18:18] I realise that desktopcouch had the same symptoms, but it's possible we are looking at two different causes [18:18] however, what is stopping me from declaring it to be unrelated to the keyring is that I can't reproduce with the child just doing a sleep [18:19] which leads me to believe that libgnome-keyring is stopping the child from exiting cleanly somehow [18:24] james_w, I don't think there is any doubt that we are focused on a workaround at this point [18:25] but we are too close to release to not have a workr around in place [18:25] and too close to release to start mucking with libgnome keyring internals [18:25] but knowing the root cause would be a dramatic improvement in our state of affairs [18:42] but yes, it appears that chriscoulson is correct. The two processes share a GMainContext, and so share the pipe that they use when you init threads. When the child process exits it obviously leaves the context in an invalid state, because it just continually wakes, leading to the high cpu usage. [18:43] if you don't call g_thread_init() then you don't get the pipe or the helper thread that polls it, so you don't get the issue as Ken found (but it's not the right answer) [18:50] making them real processes, rather than the multiprocessing ones would fix that, but the gwibber tasks look too dynamic to make that easy enough to do [18:56] james_w, do you think that is a reasonable refactoring to do in 10.10? [18:56] It depends how Ryan wants to play it [18:56] or is it even worth investing some time right now to see if that will work [18:57] in 10.04, I mean [18:57] ? [18:57] oh === almaisan-away is now known as al-maisan [18:57] maybe, I haven't dug in to the code sufficiently to see how much work would be required [18:57] one thing about Ryan's code is that it is pretty centralized [18:58] if you look in dispatcher.py, there is a MapAsync class that does all the work [18:58] yeah [18:58] it's the operations that I didn't research though [18:58] mmm [18:58] yeah, I didn't find that easy to understand [18:59] in other words, I didn't understand that part ;) [19:00] I'm still looking at multiprocessing though [19:00] I don't understand how it is sharing so much state [19:02] break time for me [19:02] bbl === MacSlow is now known as MacSlow|afk [19:24] hmm, multiprocessing just does a single fork, meaning that the children will inherit the open fds of the parent, including this thread fd, that could be the reason [19:32] heya [19:38] there we go, a real minimal test case: http://paste.ubuntu.com/410667/ [19:38] no keyring, no threads, just threads_init(), multiprocessing and unclosed fds [19:41] so, a proper fix would have the called functions create a new GMainContext and use that, but I don't think that many things support that === Amaranth_ is now known as Amaranth [19:42] and I doubt that g_main_context_push_thread_default is supported enough to be a substitute [19:48] and it seems you can't call it from python anyway [19:48] right, enough of that, time for dinner [20:17] is it just me does LP has a bad day today? oops, oops, oops [20:30] mvo, yeah, ... [20:52] I'm not sure if there's a better channel for NetworkManager questions, so I'll ask here. [20:52] Is there any way for a program to tell NetworkManager to use a different DNS server? [21:03] does anybody use a B+W laser printer at home with Ubuntu? (and could recommend one that works reliably) [21:03] * pitti has used a Samsung ML-1610 for some years, with quite good results [21:04] not me [21:04] pitti - thanks, i'll look at one of those [21:05] chrisccoulson: Does it have to be b/W? [21:05] heh, i bet hardly anyone uses black and white printers now ;) [21:05] soren - it doesn't have to be b/w [21:06] chrisccoulson: I'm quite happy with my Konica Minolta Magicolor 2530 DL. [21:06] but it should be relatively low-cost to maintain (I have a photo printer, but the ink cartridges for that are incredibly expensive, and it's no good for printing lots of pages) [21:06] soren - thanks [21:06] chrisccoulson: It's served me quite well for.. hmm... 4 years now, I think. [21:06] chrisccoulson: Not too expensive, and they actually went through the trouble of writing linux drivers for it. [21:07] excellent, that sounds good [21:07] chrisccoulson: (which suck, but there are other ones (not developed by Konica) that work well) [21:17] the LEXMARK X264dn looks quite nice actually (and it's available in a store a couple of miles away from me) [21:17] it does scanning too :) [21:17] http://paste.ubuntu.com/410710/ [21:18] does it look like a libusb or libmtp bug? [21:18] libusb I guess [21:18] I never know how to read the 2 parts in valgrind logs [21:18] the second one is the allocation and the first one the error? [21:19] seb128 - yeah, that's how interpret it too [21:20] i think that looks like a libusb bug [21:20] thanks [21:21] pitti, seems you have an account on the libusb bug tracker? [21:22] xchat still crashing on exit because of the indicator thing (bug 549972) [21:22] Error: Could not parse data returned by Launchpad: list index out of range (https://launchpad.net/bugs/549972) [21:23] fta, you are welcome to send a patch for the issue or to not use the indicator [21:23] ok, i will disable it then :( [21:51] james_w, still around? [21:52] yup [21:52] Nafai, ? [21:52] ok, so I just changed dispatcher.py [21:52] ok [21:52] I made MapAsync not be a thread [21:52] did that fix it? [21:52] maybe [21:52] wait, prolly not [21:52] hold on [21:53] dammit [21:53] it survived several refreshes [21:53] but on like the fourth one it pegged again [21:53] never min [21:53] d [21:53] * rickspencer3 cries a little [21:53] :( [21:56] rickspencer3: did you see my reproducer? [21:56] is it the one that we were using this morning? [21:57] if so, then yes [21:57] no [21:57] oh [21:57] there we go, a real minimal test case: http://paste.ubuntu.com/410667/ [21:57] no keyring, no threads, just threads_init(), multiprocessing and unclosed fds [21:57] interesting [21:57] I'm pretty sure that's equivalent [21:58] I'll try putting in a callback or something in the child in a minute [21:59] wait [21:59] so it occurs to me then [22:00] interesting [22:00] so in ken's reproducer [22:00] if I make MapAsync not be a thread [22:00] and delete threads.init() [22:00] it doesn't peg [22:00] let me try a few times [22:02] rickspencer3: threads_init is one of the critical parts of the issue [22:02] Ken found that it stopped it hanging the other day [22:02] james_w, isn;'t that because MapAsync is a thread? [22:02] so now if MapAsync is not a thread, why init threading at all? [22:03] but it's broken, so not a viable solution or workaround [22:03] well, yeah, I said minimal reproducer, not sensible one :-) [22:04] but you aren't going to get very far pulling the threads out of gwibber I fear [22:04] how many threads are there in gwibber? [22:04] let me look [22:04] well, one for every MapAsync [22:05] right [22:05] note that the implementation in the new reproducer *blocks the main thread* [22:06] but I made MapAsync *Not* a thread [22:06] it's still pegging though [22:06] and still had the timeouts? [22:06] meaning you made it not a thread, keeping the behaviour that allows you to have timeouts, and not blocking the main thread? [22:06] Dispatcher is itself a thread :( [22:07] if so, then that's a fine way to proceed, but I don't see how to do that without major surgery [22:07] james_w, all the thread does is spawn processes [22:07] I don't even know what value have MapAsync a thread brings [22:07] I guess it brings a bit more parallelism [22:07] it allows you to timeout the child processes [22:08] but dispatcher is itself a thread [22:09] making dispatcher not a thread seems a bit more invovled [22:09] right, so it sounds like removing threads from gwibber is going to be difficult [22:09] well, dispatcher is the only other thread [22:09] we could make it a subprocess [22:09] note that we shouldn't stop Nafai down his path [22:09] ok, good [22:09] cause I'm still working on that path [22:10] Nafai, ignore this conversation and get your merge proposal ready ;) [22:10] * Nafai nods [22:10] james_w, the gui is also threaded [22:10] there's gwibber/microblog/util/couch.py:class Monitor(gobject.GObject, threading.Thread): [22:10] do you think that will be an issue? [22:10] didn't see that one [22:11] if there is more than one thread in the gwibber-service process then you have to call gobject.threads_init() [22:11] the gui is not in gwibber-service [22:11] if you call the function and then use gobject based stuff with multiprocessing you get the bug [22:11] whichever process has the hang [22:11] the high CPU I mean [22:11] that's gwibber-service [22:12] so would it be feasible to turn dispatcher and monitor from threads into processes? [22:12] I've worked with threads and time outs, but not processes [22:12] possible, yes [22:12] I assume [22:13] realistic, maybe not [22:13] Hello, what has happened to guile-gnome2-* packages ? [22:13] what does gwibber-service do? It's the bit you call to send messages etc? [22:14] yah [22:14] well sends and receives messages [22:14] stuffs them into desktopcouch [22:14] rips a notification too, I think [22:15] right [22:15] so, Dispatcher is a thread, I'm not sure it has to be yet === bjf is now known as bjf-afk [22:18] I'm truing it as a multiprocess.Process [22:18] yeah, it has no run() method [22:19] it seemed to work [22:19] at least it retrieved new messages [22:20] right, so the reason MapAsync is a thread is to allow it to process multiple requests in parallel, and also to implement timeouts on them [22:20] however, we can do that in a subprocess as well [22:21] it does mean that gwibber could be quite the resource hog if it is busy :-) [22:21] right [22:21] but less than 100% probably ;) [22:22] so Dispatcher is dbus object right? [22:22] doesn't it just sit around until it gets called? [22:25] yeah [22:25] my changes seem to have broken it [22:25] no 100% CPU, but nothing working either :-) === al-maisan is now known as almaisan-away [22:28] well, it's working for me [22:28] there is no more gobject.threads_init() [22:29] but yet I am still pegging the cpu :/ [22:29] let me make sure I'm doing this right [22:32] rickspencer3: I've got it working [22:32] however, there's one thing that concerns me about it [22:32] kewl [22:32] only 1 thing? [22:32] that's good progress ;) [22:32] that I had to make "daemon = False" on a bunch of stuff [22:32] so it will leave stale processes around [22:33] mm [22:33] even if you quite from the GUI? [22:33] could we add a bit of clean up code there? [22:33] yeah [22:33] but tracking all the paths won't be that easy [22:34] or it may just all work :-) [22:34] heh [22:34] http://paste.ubuntu.com/410733/ [22:34] so you changed all the threads to processes? [22:35] just the couchdb one [22:35] itneresting [22:35] oh, and MapAsync [22:35] if you have a hammer... :-) [22:36] the couch monitor appears to actually want to be async [22:36] right [22:36] james_w, can you push a branch I can pull? [22:36] I can test it out here [22:38] or I can just revert and apply your patch I suppose [22:39] running now [22:43] the people and groups I follow are always annoyingly quiet when I am testing gwibber [22:46] lp:~james-w/gwibber/fix-threading [22:49] rickspencer3: refresh. :D [23:13] sweet [23:14] this may have been easier than I thought [23:15] Nafai, are you making progress on your branch? [23:15] yes, I have a first pass for others to test, I'm about to push it to launchpad [23:18] lp:~nafai/gwibber/gnomekeyring-fix [23:25] Nafai: does it have much startup time impact? [23:26] Not sure, I'll have to measure it against the previous one. There is a little spike in the CPU at first, but then the CPU goes down [23:27] you could use multiprocessing to distribute the work across a few processes rather than doing it all sequentially ;-) [23:28] haha [23:28] james_w ... your patch seems to be working, except I'm not sure notifications are [23:28] it's the battle of the patches! [23:30] hmm, what are the chances that libnotify uses threads? [23:31] heh [23:31] Good morning. [23:31] james_w, I am sure libnotify is quite solid code [23:31] I could just be missing them [23:31] Hello TheMuso [23:32] rickspencer3: no, I see it too [23:32] wow, I planned for being totally pinned down by the default search provider announcement [23:33] * TheMuso is just seeing that announced in various places. Interesting. [23:35] Morning all. [23:35] hi RAOF [23:35] Hey RAOF [23:35] Good gwibber morning to you, too! [23:35] rickspencer3: Had a chance to try out my branch? [23:36] It's gwibber day for us here :) [23:36] Nafai, no [23:36] will do right now [23:37] ok [23:37] seb128: Re: using gnome-keyring's DBus interface - I had a look at that for gnome-keyring-sharp, and I don't think it's ready yet. There's no introspection data, the last mailinglist thread I found said “not finished yet”, and most of the calls from libgnome-keyring go to org.gnome.keyring.ShamefullInternalInterface :) [23:37] RAOF, hey, ok, I was not sure about that [23:38] Nafai, where's the branch? [23:38] james_w, fwiw, when I quit your gwibber, all the gwibber-services process went away [23:38] seb128: Just thought I could spare you some time if you wanted to go looking :) [23:38] cool [23:38] rickspencer3: found the notifications issue [23:38] Also, org.gnome.keyring.ShamefullInternalInterface is funny :) [23:39] lp:~nafai/gwibber/gnomekeyring-fix [23:39] Nafai, just run gwibber-service and gwibber? [23:39] yeah [23:40] seb128, I think we have at least 2 viable options for fixing gwibber now [23:40] rickspencer3, I've been reading discussions and seeing that, nice [23:41] Nafai, I started gwibber-service and started getting notifications [23:41] so that's a good sign ;) [23:41] :) [23:42] Nafai, so far, wfm [23:42] yay [23:42] Nafai, have you handled the case of when a user changes their password? [23:43] not yet, but I can [23:43] well, I guess we'll need to [23:43] * Nafai nods [23:43] I suppose the UI you could just shut down and restart gwibber-service [23:43] well, not "from the UI" but from the code for the settings UI [23:44] awesome clarity on my part [23:44] Nafai, maybe I spoke too soon [23:45] spike in CPU? [23:45] beam.smp seems awefull busy [23:45] it's not pegged [23:45] but mean.smp is at like 81% and gwibber service about 30% [23:45] they seem to be sharing a core [23:45] and between them pegging that core [23:46] my approach isn't going to work without some more effort [23:46] you can't use gobject signals across processes, and multiprocessing doesn't provide an equivalent [23:47] james is that for the notifications integration? [23:47] yeah [23:47] and possibly other things [23:48] james what about good old pipes? [23:48] well, they don't work like signals [23:48] without, like, threads or something [23:49] we want to use the glib mainloop [23:49] to get woken up when a new message appears in couch [23:49] we can put the messages in a queue when we see them on couch [23:49] but we the either need to poll, or use a thread or something to watch it [23:49] we could throw another process at it [23:52] this reminds me of i956 graphics in Jaunty [23:53] Nafai, it's odd that mean.smp is spiking for me [23:53] I thought that was a desktopcouch process [23:53] yeah, I didn't change anything to increase couch access [23:56] even if you did, they fixed it I thought [23:56] Nafai, is it not spiking your CPU? [23:56] other than a bit on startup, no [23:57] hmmm [23:59] hello hackers