[00:12] jam: pqm was a customized branch for launchpad specifically. [00:12] jam: It had changes that were only relevant to Launchpad. [00:14] jam: I have a feeling mwhudson didn't actually look over your merge code. [00:15] Since it was immediately obvious to me that some of those things should not have been merged back into the main loggerhead. [00:15] jam: It's also slightly mysterious why certain things were there that weren't on experimental, like HACKING. [00:16] jam: It's possible that when doing the merge you restored files that were removed on experimental, since pqm was based on the stable branch, not on trunk. === Ursinha is now known as Ursinha-afk [00:30] mkanat: this is part of sorting out th emess [00:30] lifeless: Sure. [00:30] lifeless: I'm sure that jam and mwhudson will be able to figure it all out. [00:33] I actually noticed the problem immediately when it was posted, but I'm not on contract anymore and I figured that somebody would notice it too. [00:33] Once this particular merge is handled it should be fine from here on out. [00:34] jam: BTW, I noticed that you've been keeping up the tests now, which is so awesome. :-) [00:35] jam: That was exactly what I was going to do next if I'd had a few more hours. :-) [00:39] hi mkanat, lifeless, jam [00:39] Hey poolie. [00:52] I've left ~loggerhead-team for now--if anybody has specific questions that they want my feedback on, feel free to subscribe me directly or request review from me directly. [01:00] I'm stuck! [01:01] * palhmbs puts his hand up... how do I get my bzr branch uploaded to launchpad.... bzr push lp:~john.doe/+junk/myproject -- just says bzr: ERROR: Invalid url supplied to transport !! [01:01] palhmbs: You need a project first. [01:02] palhmbs: Then it would be like lp:~john.doe/myproject/trunk [01:02] I have created a PPA -- do I -- bzr push lp:~palhmbs/~palhmbs/+archive/ppa-for-gtg ?? [01:02] No, +junk should work [01:02] palhmbs: branches and PPAs do not directly relate [01:03] ah - I see... [01:03] so I have to set a location for my branch... under .bzr ? [01:04] 'bzr push lp:~palhmbs/+junk/anythin' should just work, assuming you have registered a SSH key with launchpad [01:04] * palhmbs has tried using groundcontrol... which got me logged in, but no further [01:04] palhmbs: does "bzr plugins" list the "launchpad" plugin? [01:04] spiv, yep - launchpad 2.2.1 [01:05] palhmbs: Could you try 'bzr push bzr+ssh://bazaar.launchpad.net/~palhmbs/+junk/something' ? [01:06] palhmbs: is that the full text of the error? [01:07] I've even wrote a ~/.ssh/config -- to help identify [01:07] palhmbs: that error suggests to me that you have some sort of typo in your URL, e.g. if I typo my username in the URL I get 'bzr: ERROR: Invalid url supplied to transport: "lp:~spivv/+junk/hmm": No such person or team: spivv' [01:08] spiv, no -- fulltext is: bzr: ERROR: Invalid url supplied to transport: "lp:~palhmbs/ppa-for-gtg/trunk": No such project: ppa-for-gtg [01:08] I did try -- bzr push sftp://palhmbs@bazaar.launchpad.net/~palhmbs/ppa-for-gtg -- but got -- bzr: ERROR: Permission denied: "/~palhmbs/ppa-for-gtg": [Errno 13] mkdir failed [01:08] palhmbs: ah, that's your problem: "No such project: ppa-for-gtg" [01:09] so um, where does it go when you push to +junk ?? [01:09] palhmbs: when you push to +junk it goes to +junk [01:09] because bzr push bzr+ssh: -- is working... :-0 [01:10] palhmbs: you'd also be able to use "lp:~palhmbs/+junk/something" I'm sure [01:10] palhmbs: "+junk" is basically a special name for "no associated project" [01:10] thanks - right np [01:10] palhmbs: otherwise that part of the URL has to be the name of an actual project on Launchpad [01:12] and I have to package specially for a PPA... [01:12] I see... I think -> b <- thumbs up [01:15] ah well - my code can live in junk for awhile. [01:20] yes, i have to admit i went by the description more than the diff for jam's branch [01:45] I think there's a revision in my repository that *should* be the head revision for the current branch, but isn't. Can anyone remind me how to locate it? [01:48] jbowtie: bzr heads --dead [01:48] which is in bzrtools [01:51] mwhudson: thanks, I don't have bzrtools installed on this server, is why I couldn't find it. [01:51] np [01:56] OK, I do have a dead head, can I reattach it? [01:57] if you already have a branch that should have that as a head, i think bzr pull -r $dead_head in the branch should be all it takes [02:02] mwhudson: Hmm, didn't work. Looks like I will have to investigate further. [02:03] jbowtie: what failed? [02:03] maybe you need --overwrite or something, or maybe you should do 'bzr init new-branch; cd new-branch; bzr pull -r revid:$dead_head' [02:04] ah, i forgot the "revid:" bit before [02:07] mwhudson: Trying with overwrite; I knew enough to put in "revid:" [02:09] mwhudson: It's trying to pull from the parent branch in a foreign vcs instead of pulling the existing rev from the repository. [02:09] oh [02:09] ! [02:10] jbowtie: pull -r revid:$deadhead . [02:10] that . is important :) [02:10] Brilliant, that did it. [02:11] good! [02:15] Interesting, there are two other dead heads that are missing from the branch history. I might need to write a splice command to insert them where they belong. [02:25] hmm... [02:25] I want to add an existing branch as a pipe in a pipeline [02:25] not so easy it seems [02:35] thumper: probably easiest to move the branch out of the way, add the pipe, and then move the branch back? [02:35] mwhudson: I just did add-pipe oldbranch-copy, then pulled the other branch into it [02:36] I really should file a bug on pipelines [02:36] ah righ [02:36] t [02:36] yeah [02:42] bug 716826 [02:42] Launchpad bug 716826 in bzr-pipeline "Should be able to add an existing branch to a pipeline" [Undecided,New] https://launchpad.net/bugs/716826 [02:45] Is there a document I can read which outlines bzr's architecture concerning unicode and bytestrings? [02:46] e.g. is revision.message supposed to be a utf8 bytestring or a unicode object. Likewise file-ids. etc. [02:46] * maxb is trying to rescue bzr-xmloutput [02:48] maxb i think this is discussed in HACKING [02:48] generally, ids are utf8 byte strings [02:48] (because they are normally opaque) [02:49] messages, filenames, etc should match the general python advice of converting from bytes to unicode on entry/exit of the program [02:51] ah.... I grepped doc/developer/ and found not much :-) [02:55] jam: I think I may have fixed the spam on proposals to lp:loggerhead [02:55] jam: please let me know if you get another === oubiwann_ is now known as oubiwann [03:27] lifeless: I got one about 3 hours ago, but that predates your message from 30min ago [03:28] yeah, I changed it 30 minutes ago [03:28] it may be incomplete [03:28] at which point I'll be asking thumper [03:28] and then following htat reading code t figure out wtf the rules are [03:28] * thumper looks up here [03:48] lifeless: just got a rejected message as of 1min ago [03:48] bah [03:48] what list ? [03:49] launchpad-bugs-owner@lists.canonical.com [03:50] looks like it was trying to send to "launchpad-bugs@lists.ubuntu.com" [03:50] X-Launchpad-Message-Rationale: Subscriber @loggerhead-team [03:50] ~launchpad [03:50] sigh [03:50] what branch [03:52] lifeless: that was trunk-into-experimental, so the target should be ~loggerhead-team/launchpad/experimental [03:52] I don't know about others yet [03:52] though I'll be proposing something tonight [03:52] they need to be configured individually [03:53] right, changed the subscription for loggerhead team to 'no email' [03:53] mmm [03:53] actually, I'll try a direct sub + no email on that [03:53] this is a fraking annoying list config [03:54] fingers crossed [03:57] mwhudson: hi [03:57] mwhudson: what stops us using loggerhead as an egg? [03:57] lifeless: probably nothing [03:57] does lp import it as a bzr plugin, or as a top level item? [03:57] top level currently [03:58] cool [03:58] ok, we might want to do that soon [03:58] otherwise my answer would have been different :-) [03:58] yeah, should be easy [04:02] jam: ooi, why would PQM be good for lp:loggerhead (compared with pretty much all the other bzr plugins in Launchpad not using it) ? [04:02] maxb, what do you mean? [04:02] maxb: because *I* want it? [04:03] poolie: none of the bzr plugins use a bot to manage trunk [04:03] if you want to set one up i'd rather we try this on tarmac [04:03] Indeed. I am just curious as to the motivation for doing loggerhead differently [04:03] poolie: well, I don't want to maintain it.. [04:03] or have it running on my personal hardware, etc. [04:04] I certainly don't want to have to be online for people to land things [04:04] and you feel you'd have to maintain it if it was tarmac but not pqm? [04:04] no, i don't think you should either [04:04] and i think enforcement of the test suite would be good [04:04] poolie: does canonical have Tarmac running in the DC somewhere? [04:04] yes, i believe other teams are using it [04:04] u1 iirc [04:04] since I've poked on the project, it was always run on personal hardware [04:04] but that was a while ago [04:05] lifeless: so far, I can't tell the colorscheme difference between old-trunk and pqm, I'm still trying to figure out the screeshots you would want [04:05] looks pretty identical to me [04:06] stupid, that's because I reverted it to experimental's tip, where I had already merged the trunk updates.... [04:06] stupid stupid [04:07] lifeless: pqm's loggerhead uses orange, Experimental uses blue [04:07] for the menus at least [04:10] so, I'd like someone - curtis perhaps, or huwshimi, to be briefed on the situation, and make a recommendation. === Meths_ is now known as Meths === Meths_ is now known as Meths [06:01] jam: does the raw controller output the byte content directly, or does it htmlise it just without annotation ? [06:02] lifeless: raw content [06:02] no html [06:02] same as /download but not Content-disposition: Attachment [06:02] in which case thats an experimental only thing, right ? [06:02] its not in trunk yet [06:02] lifeless: I believe so [06:03] cool [06:03] I won't leap on it in a panic then :) [06:03] lifeless: thats the xss concern? [06:04] yes [06:05] I know there is a similar answer to lps, but we need to write the glue - which includes adding a API for allocating the time limited tokens and gluing that into the Application [07:32] hi all ! [07:37] Hi, [07:37] more questions today. [07:38] When converting from SVN, can I get tags converted bzr tags rather than branches? [07:39] exarkun@divmod.com-20110209125926-8d98psdzhqru0vrs [07:54] mr-russ, i think bzr svn-import can/will do that? [07:55] K, I used svn2bzr.py and it's not created a shared repo or tags that do what I want. [07:55] will look further at svn-import. [07:55] What is the implication of non-determinsic revisions? [07:55] I got a little worried when reading that in the docs as I don't know the implications of it. [08:00] svn$ bzr svn-import civian [08:00] Using repository layout: trunk0 [08:00] bzr: ERROR: exceptions.TypeError: fetch() got an unexpected keyword argument 'needed' [08:00] ?? [08:01] that looks a lot like an out-of-date plugin [08:01] please file a bug with the traceback from .bzr.log and paste the number here [08:01] just installed against lucid. [08:01] or just update bzr-svn [08:01] will file bug now. is there a fast way from command line to do it? [08:02] it fails because I wasn't importing into a repository. [08:02] which it didn't complain about. [08:24] ah, well, that's a bug worth filing [08:24] but lucid's a bit old, and it might be fixed by now [08:24] there's a ppa with newer builds of bzr and plugins [09:29] Hi all :-) [09:29] It seems that bzr diff --using "wdiff -n" ceased working recently… Is that known? [09:30] It apparently tries to run a command called "wdiff -n", rather than running wdiff with a -n option. [09:31] strace shows: execve("/home/roland/bin/wdiff -n", ["wdiff -n", "/tmp/bzr-diff-Gf9RoE/old/Makefil"..., [09:31] Lo-lan-do: not sure - can you file a bug? [09:32] Sure [09:57] I migrated from svn, my tags are now showing in bzr tags; as TagName ? [09:58] I thought, there are not version numbers, so the tag is useless. I'll delete those tags. [09:58] when I delete a tag and try and commit, it tells me nothing has changed. How do I commit and push/pull tag changes? [09:58] bzr 2.1.x lucid installation [09:58] mr-russ: you can use them, but since they have no relation to the curretn revisin tip we can't print a revision number [09:58] mr-russ: tags are independent of commits in bzr [09:58] really. [09:59] after a tag has been deleted there's no need to do a commit [09:59] how to I keep tags in sync between people. [09:59] get push the tag delete. [09:59] How do I push the tag addition or deletion, as push says, no revisions to push. [10:01] https://lists.ubuntu.com/archives/ubuntu-mobile/2008-March/001625.html [10:01] push will actually push new tags even if there were no revisions pushed [10:01] hopefully that comment is true. [10:02] Not exactly noob friendly though. [10:02] yes, the push ui should be clearer if it actually updated any tags [10:03] another question about my ? tags. How do I use them. If I bzr update -r tag:Release_1_1 I get; [10:03] bzr: ERROR: branch has no revision svn-v4:deb830e7-bb10-0410-bcbb-ea420f43d34b:tags/Release_1_1:16 [10:03] bzr update --revision only works for a revision in the branch history [10:04] jelmer: You said I could use them, however I'm not sure how to. [10:06] e.g. 'bzr branch yourbranch -rtag:Release_1_1 newbranch' [10:06] depending on how the branch was cloned it might not have copied all the tag contents though [10:06] svn-import should have copied all the tag contents [10:07] yeah, but I put that on a remote shared repository. I think branched trunk. [10:08] $ bzr branch . -r tag:Release_1_1 ../civian-1.1 [10:08] bzr: ERROR: The branch . has no revision . [10:08] so trunk doesn't have the tag revision information? [10:08] I think I was better off when not attempting to import from svn. [10:10] mr-russ: svn-import will import all the tags, and there's an open bug about 'bzr branch' importing all the tags even if they're not pointing at revisions in the branch itself [10:11] okay. I might just delete them as they are confusing and move along. [10:11] if you're doing a conversion, I'd recommend svn-import [10:11] if you're just trying to contribute to an existing svn branch, bzr branch [10:12] I ran svn-import to convert a repository. Put that repository using scp on another server. then did bzr branch remote_location; bzr tags [10:12] and have the ?'s [10:13] interesting. delete tags, bzr push. tags gone. bzr pull, tags back. [10:14] heya [10:14] * bialix looking for vila [10:15] bonjour vila [10:15] hey bialix ! [10:15] I have question about our internal config machinery [10:16] .me all ears [10:20] bialix: I'm still holding my breath, don't be too long ;) [10:20] * fullermd waves vila around by the ears. [10:20] ouch [10:20] I'm not *that* small anymore you know ! [10:20] Well, it's probably more comfortable than bialix jamming our internal config machinery into them... [10:21] sorry [10:21] phone call [10:21] haa, ok, np [10:21] * vila breathes again [10:22] * vila goes to polishing config rough edges a bit more to ease with ears [10:22] Bug 716384 [10:22] Launchpad bug 716384 in QBzr "size of qdiff windows invoked from qcommit (pending merge) is default" [Undecided,Invalid] https://launchpad.net/bugs/716384 [10:22] vila: in qbzr.conf I have such line [10:22] diff_window_maximized = True [10:22] in qbzr/lib/utils.py we trying to read it [10:23] is_maximized = config.get_option(name + "_window_maximized") [10:23] the bug is: [10:23] first time the option read as u'True' (unicode sting) [10:23] second time the option read as bool True [10:23] why? [10:24] O_o [10:25] The machines... they're taking over! [10:25] err, short answer will be use get_user_options_as_bool [10:25] vila: you mean always use another method? [10:26] bialix: I mean stop relying on configobj, use bzrlib.config ;) [10:27] bzrlib.config does not have the method to delete options [10:27] or it has now? [10:27] bialix: more half-seriously, configobj can be weird, I can't answer precisely, that may be a configobj bug, but you could probably avoid it using bzrlib.config [10:27] it has now [10:28] well, not all cases are covered but the ones you use should be (not all sections can be reached now I think) [10:28] I need Gary to talk about [10:28] err, looking at the code, even sections are supported [10:29] so the missing bit is probably only in 'bzr config' actually [10:29] i..e: you don't have to care [10:29] 'bzr config' doesn't support qbzr.conf either anyway [10:31] by the way, if you move to bzrlib.config only, the long term plan is that qbzr options should be supported by bazaar.conf, locations.conf, branch.conf, zoo.conf by prefixing them by 'qbzr.', i.e. qbzr.log_window.size and the like [10:32] or even qbzr.log.window.size or whatever [10:32] not sure it makes sense to have branch specific window locations though [10:33] щл [10:33] ok [10:33] but at least you'll get the opportunity to decide and won't need to handle an additional config file anymore [10:33] thank you vila [10:33] I need to talk with Gary first [10:34] it may be better to not put gui sizing caching in bazaar.conf [10:34] he has changed our internal config machinery a lot in the recent times [10:34] it irks me that bzr-gtk does [10:34] maxb: it's not actually [10:35] as this makes sharing a bazaar.conf between machines messy [10:35] btw vila, if configobj so weird as I think what if the same bug will be hit by bzr core with reading bool option twice? [10:36] ah, I see [10:36] bialix: well, get_user_option_as_bool with return either a bool or None, but never a string [10:37] you have explicit check that incoming value is a string in bool_from_string [10:37] actually that method returns either object itself (bool) or convert from string [10:37] maxb: yup, that's one thing that should be considered. The idea is that you define ConfigOptions specifying in which files they can appear [10:38] I'm going to adopt that function only for now [10:38] bialix: use the one from ui and you'll be fine until you migrate to bzrlib.config [10:38] ok [10:38] many thanks [10:39] even talking to wise man help to understand the problem and solutions [10:40] maxb: deciding in which file config options should be allowed become trickier when remote branches or repos are involved (not to mention bazaar.conf and locations.conf on a smart server...) [10:41] maxb: and that's ignoring the side-effects if both smart and a dumb server are used for the same branch (with config files access allowed for the smart server but not for the dumb one...) [10:51] vila: ok, another problem [10:51] it seems configobj can't store to config bool value [10:52] do you have set_option_as_bool in bzrlib.config? [10:58] configobj -> :-/ [11:03] Hi poolie - thanks for the ~maxb/bzr/make-lp-mirror-work review - was that "good, I'll PQM it later when I have a moment" or "good, find someone on IRC to PQM it" ? [11:08] Speaking of qbzr, what's up with the fix on bug 715067? Shouldn't it fall back to bzrlib? [11:08] Launchpad bug 715067 in QBzr "No module named configobj error with debian patched bzr-2.3.0" [High,Confirmed] https://launchpad.net/bugs/715067 [11:08] hi jam [11:09] vila: bzr config --scope <-- ??? [11:09] what scope could be? [11:09] fullermd: yes, it should [11:09] maxb: I think poolie is off for his evening, I can have a look at landing it [11:10] actually it should use copy from bzrlib first [11:11] bialix: afk abit, will answer later [11:12] spiv: still there? [11:13] vila: np [11:17] bialix: so, set_user_option is enough, we store only strings and there is probably a '%s' somewhere in configobj for turning bools into proper strings [11:17] vila: apparently it's not [11:18] I mean configobj lost boolean options for me [11:18] bzrlib.config [11:18] ok. I understood you [11:18] already sent mail to Gary asking [11:19] the idea is that only strings are handled in files, get_user_option_as_xxx just convert for convenience, every{thing,one} else should deal with strings and only strings [11:20] unicode even, stored as utf-8 in config files [11:20] the idea is perfect, but the reality is not [11:22] * bialix is not happy [11:25] jelmer: sort of [12:52] Hello! I first added accidentally some files to my bzr repo and then I did bzr revert and added right files and committed. But thing is, that I really didn't know what revert does... So all the work I hadn't changed was gone from working copy... Is there any way to get them back? [12:53] Miika--: revert should have created backup files for all the files it reverted [12:53] Look for the *.~1~ files [12:55] Oh, thanks a lot. Everything ok. [12:57] maxb: hi [12:57] hi [12:58] maxb: One of the points of the daily builds is to catch the test failures, I'd rather not mask them by running the tests in a UTF8 locale [12:59] jelmer: bzr-xmloutput's encoding behaviour is pretty broken internally. As far as I can tell, the entire plugin is only sanely usable in a UTF-8 locale at all. It needs a major internal overhaul for sane encoding behaviour [13:00] maxb: if it's really that bad I think we should probably not ship it at all, or at the very least it would've been nice to discuss this change upfront [13:03] The reason I felt comfortable directly committing the change was that I believed that there was absolutely no possibility of the testsuite passing otherwise - was I wrong in that belief? [13:03] hi, I want to write a python script that uses a bzr plugin internally... is there an easy way to access a plugin's code, as that resides not in the standard python path? [13:04] I was thinking of using some utility of bzrlib to get to the plugin maybe? [13:04] maxb: that's not wrong, but the goal is to actually fix the test failures rather than hiding them [13:05] Agreed - I wouldn't have done that to mask test failures, I only thought it a reasonable course of action because the actual non-test plugin code is just outright broken in non-UTF8 locales, so at least this makes the tests test the current capabilities of the plugin [13:06] pindonga: import bzrlib.plugin; bzrlib.plugin.load_plugins(); import bzrlib.plugins.myplugin [13:07] maxb, great! thanks [13:09] maxb: Fixing the plugin for non-utf8 locales isn't impossible, so it would've been nice to discuss this. [13:12] maxb: Anyway, not to take away from all the other nice work you've done on getting the daily builds working again. [13:12] maxb: Are you going to forward the bzr-dbus patch upstream? [13:13] jelmer: Understood. Again - the only reason I even considered this committable was because I thought I was taking the packaging from a state of being completely unbuildable on any buildd - and thus I couldn't possibly be making things worse, since I *believe* it could never build before. [13:14] Have the bzr-xmloutput tests ever passed on a buildd before? [13:15] maxb: no, which is exactly why I didn't mind that they were failing - bzr-xmloutput simply wouldn't land in the daily builds PPA until the plugin was fixed [13:16] maxb: Are you going to forward the bzr-dbus patch upstream? --- whoops, I pushed it but forgot to merge-propose. Done. === oubiwann is now known as oubiwann_ [13:20] maxb: r=me [13:21] Regarding the bzr-xmloutput tests - since it's present in ubuntu and debian, I think it's a net improvement to be able to run the tests on build in a forced UTF8 locale than not being able to run the tests on build at all [13:21] But yes, it's not a good final state to remain it. [13:22] * maxb --> lunch [13:27] maxb: why the extra PYTHONPATH override in bzr-dbus' debian/rules / [13:29] 'morning jam [13:56] jelmer: hi almost-PP ;) I'm not sure jam is up yet, there have been random reconnections for a couple of hours [13:57] jelmer: slightly pointless here, I suppose. It's there because I copied the concept from something I was working on for bzr itself, where it lets the compiled extensions be loaded. [13:58] maxb: ah, ok [13:59] Yeah, who in his TZ would be up at this time of day? :p [13:59] * jelmer has learned to stop looking for a correlation between location and timezone [14:00] vila: heh, ok [14:02] fullermd: between you and jelmer, I long ago stopped trying to correlate presence here and TZs [14:02] hmm, I should have included myself in this list ;) [14:04] Nah, _we_ never tell you anything. Why should you? [14:05] I don't need anybody to listen to when I talk here ? Is that what you're saying ? [14:06] Eh? Who said that? [14:07] Did somebody say something? [14:10] jelmer: hello! I'm reading a debian changelog: [14:10] [ Jelmer Vernooij ] [14:10] * Cherrypick fix for compatibility with python2.7 >= 2.7.1-2. LP: #693880 [14:10] * Switch to python-support. Closes: #568462 [14:10] * Add missing build dependency on python-configobj. [14:10] * Make dependency on python-testtools versioned (>= 0.9.5). [14:11] * Re-remove included elementtree and configobj. Closes: #555343, #555336 [14:11] ... [14:11] -- Jelmer Vernooij Fri, 21 Jan 2011 22:08:19 +0100 [14:11] So in the debian version of bzr, bzr's configobj is removed. Is that "deviation" from the stock bzr expected to stay? [14:12] I'm asking, because it caught us: we have a plugin which does [14:12] "from bzrlib.util.configobj import configobj" [14:12] and it always worked, and it still works with bzr.dev or the normal bzr installs, but not with Debian's latest bzr... [14:13] We solved it by falling back to the system configobj if bzr's is missing, but I thought I'd ask... [14:13] eof [14:13] guilhembi: it's actually been there in the past as well, but because of a regression we still shipped it [14:14] guilhembi: we could import the system configobj to bzrlib.util.configobj, but one of the concerns is that the system configobj isn't exactly the same as the one that is shipped with bzr [14:15] jelmer: won't there be deviations over time: if bzr's configobj behaves differently from the system configobj, bzr will break on Debian...? [14:15] Or is there a plan to delete configobj from the stock bzr too, to be consistent everywhere? [14:15] guilhembi: we can verify it's sufficient for bzr - we run the testsuite to do so [14:16] ok... [14:16] guilhembi: I don't think there are any plans to remove it from stock bzr, but we should probably make it private [14:17] I was going to try to insert some sort of compatibility, but it turns out it's not trivial to alias a python module under a different name. [14:19] You can make it work, I think, if you're willing to assume everyone uses "from bzrlib.util.configobj import configobj", but you can't make it fully compatible such that "import bzrlib.util.configobj.configobj" works as it did before the removal [14:46] jelmer, vila: Well, I did reconnect to IRC, but I wasn't really online yet. I think my son was playing with my laptop while I was sleeping. [14:47] haaaa, this explains all these branch deletions then, I was wondering... [14:47] jam: morning :) [14:48] maxb, guilhembi: On Debian and Ubuntu we plan on using the system configobj if possible. I believe we just didn't want to require people running from source to have it installed. (We did the same for ElementTree a long time back.) As for divergence... that is why we run the tests as part of the build process now. [14:48] vila: oh noes! my super-important-but-not-backed-up work [14:48] vila: I guess it's bzr revert for me [14:48] :) [14:49] jam: I think the problem here is more that by placing copies within bzrlib.util, they become part of bzrlib's API in the perception of plugin authors [14:53] maxb: indeed, in the latest qbzr: [14:53] ./lib/util.py:from bzrlib.util.configobj import configobj [14:53] (http://bazaar.launchpad.net/~qbzr-dev/qbzr/trunk/) [14:53] that will break on Debian, unless Debian has a custom qbzr? [14:54] Debian has a patched qbzr, but the qbzr devs are also fixing it upstream [14:55] Yeah, right now it's fixed so it doesn't work on my non-Debian system :p [14:55] fullermd: what's a non-Debian system ? :P [14:56] jelmer: It's a thing with up to date software :p [15:05] hi! when bzrgtk is installed, is there a way to detect from a pre-commit hook of another plugin whether this was a gcommit or a commit ? [15:07] ssandberg: not really - why would you want to? [15:07] ssandberg: I mean, you could inspect the stack.. [15:07] jelmer, the plugin needs to display a message. would be nice if the message was a dialog for gcommit and a text for commit === Ursinha is now known as Ursinha-lunch [15:12] maxb: everything in util is 3rd party code, hence the 'util' section. So the general recommendation is to do stuff like "try import foo except ImportError: import bzrlib.util.foo" or something along those lines. [15:12] (possibly reversed) [15:13] Right, but is that actually stated as a mandatory rule of bzrlib api compatibility? === rubbs_ is now known as rubbs === tchan1 is now known as tchan === bac` is now known as bac [15:41] hello [15:41] just another vote for fixing that thing where merging branches that delete directories that contain build artifacts causes conflicts. [15:43] jml: you haven't paying attention to bzr.orphan_policy=move don't you ? [15:43] s//been/ [15:44] err, bzr.transform.orphan_policy=move [15:44] vila: no. it's been a long time since I've read NEWS file, and I don't recall seeing it mentioned in release announcements. [15:44] jml: it's off by default :-/ [15:45] jml: I thought you were subscribed to the relevant bug and every day since I landed the fix I waited for your feedback ;-( [15:46] vila: I saw that it had been split into two bugs and lots of talk about possible ways of fixing but nothing about it actually being fixed. maybe it slipped by. [15:48] hmm, I don' remember the details... oooh, now that you mention it, yeah a more complete solution has been asked for, but for your particular case, the config option should do [15:48] jml: as always, bugs and feedback welcome ;) [15:48] jml: and sorry for not telling you more directly, I didn't realize you missed it [15:48] vila: np. === beuno is now known as beuno-lunch === Ursinha-lunch is now known as Ursinha [16:38] jelmer: I didn;t dream after all: bzr-builddeb 2.6+bzr518~lucid1 [16:39] vila: ah, the daily builds have 2.6 :-/ [16:39] yeah, so the upstream should too no ? [16:40] jelmer: and sorry for not pointing you there yesterday, Alzheimer... you'll see... pain... [16:40] no, the daily builds debs have it completely wrong - they claim to be /post/-2.6 [16:40] vila: hey, you're talking to the guy who probably actually set it to 2.6 in that recipe... [16:40] lol [16:41] thanks, I feel better ;) [16:43] grr, no whoami set, grr [16:43] vila: What, and bzr let you commit without a whoami set?? [16:43] hehe, no indeed [16:44] but in this particular case I don't want to set one... err... let me explain :) [16:44] on my local package importer I don't want a whoami set in bazaar.conf, except that I'm fixing a bug and I need to commit... [16:45] and I don't think I can set one in branch.conf... let's try locations.conf [16:46] Yes ! [16:46] [16:47] hehe [16:47] jelmer: point is (playing the devil's advocate), the actual behaviour suits me :) [16:48] vila: would it have been sufficient if it just warned? [16:48] if we add a warning, we may think about adding an option for restoring the *actual* behavior [16:48] in that precise case no [16:48] I guess we can have a tri-state option ("strict", "guess", "warning") that defaults to "warning" ? [16:48] I want to stay without a default whoami because I'm paranoid here, I don't want to commit anything so I won't push anything to lp [16:49] but that's one a good reason to keep the actual behaviour as the default one, hence the option mentioned above [16:50] jam: hi [16:50] jam: I'm digging into my lazy hooks work again, and am wondering if your comments on lp:~jelmer/bzr/lazy-hooks-pt1 were perhaps intended for lp:~jelmer/bzr/lazy-hooks ? [16:53] jelmer: possibly === beuno-lunch is now known as beuno [17:24] jam: did you get some feedback on the forked server ? [17:24] vila: I've put up a lot here: https://wiki.canonical.com/IncidentReports/2011-02-11-Codehosting-Forking-Service-Down [17:24] from what I can glean from the logs [17:25] but there is a 30-min gap where we don't have any logs... :( [17:25] and things are fine before it, and failing after it [17:25] the forking service itself was up and running and still servicing connections until it was stopped [17:25] so it might be bugs in the Twisted code I wrote [17:25] by the time it started failing (that I can see) it seems that Conch was out of file-handles [17:25] ha, right, so, AIUI, there was some 'no more fd available' at some point [17:25] maybe we have a handle leak in there [17:25] yup [17:26] vila: well, there were a lot of "no random entropy source available" which could have been masking no-more fd [17:26] but there was one no more fd at some point [17:26] right, that was the piece of info I wanted to make sure you had [17:32] vila: any idea why os.urandom would be failing? [17:33] I was trying to check the Python source code, but it looks to me like "urandom" is only available for #MS_WINDOWS and #__VMS, but that doesn't make any sense, since I see it on babune [17:33] O_o [17:33] but the code tries os.urandom before it tries to open the file [17:34] /dev/urandom exists here indeed [17:34] vila: so, in "os.py" if there isn't a built-in random, it creates one by opening /dev/urandom [17:34] built-in urandom [17:35] however, that also doesn't make sense, since Babune says it is a builtin function [17:35] ah wait, that is locally, let me check babune again [17:35] it is the native one [17:35] which opens the file [17:36] vila: so... if open() is failing, then you will, indeed, get secureRandom failures [17:37] now the question is how do you find those... [17:38] jam: IMHO you'd better check on the code hosting host, it probably runs lucid for one so babune may not be the best reference [17:38] hosting host... === pickscrape__ is now known as pickscrape [17:59] vila: I just checked the python source code. I'm not worried about it, I doubt it changes much [17:59] /usr/lib/python26/os.py [17:59] Implements 'urandom' in pure python by opening /dev/urandom [18:06] bzr 2.3.0 is still in the upload queue :-/ [18:07] what;s the process from there ? Is it automatic or should someone approve something ? [18:07] vila: which upload queue? === jelmer_ is now known as jelmer [18:07] https://launchpad.net/ubuntu/natty/+queue?queue_state=0&queue_text=&start=30 [18:09] I think it needs an archive admin to look at it [18:09] uhm [18:09] I think it needs be looked at by an archive admin [18:12] * vila summons archive admins [18:12] * vila needs more goats [18:13] hehe [18:15] I've got a chicken with a mean temper; is that close enough? [18:17] fullermd: what ? You're supposed to be my goat official provider remember ? [18:17] nokia/microsoft and now no more goats >-/ [18:18] I can live without a mobile phone but... [18:19] maemo was great in that it could run bzr-gtk out of the box :) [18:19] Sadly, work has got my goat. [18:21] wow, you mean you work with no goat at all now ? Scary... [18:22] Well, wandering around bleating about it won't help anything, so... [18:23] vila: I'm trying to add a function somewhere that returns an old bzr format (e.g. one that uses old style locking, or doesn't support stacking) [18:24] vila: and I'm not sure where to put it. bzrlib.tests.TestCase already has enough stuff on it. Would it work as a fixture? [18:24] jelmer: whatever you chose, make sure it's well hidden ;) [18:25] fixtures sounds like a better place than test case, especially if you prefix it when you use it ;-D [18:52] vila: did you see my comment about the contact address for udd? [18:52] no ? [18:53] vila: it still mentions james as the contact address in case of broken imports at the moment [18:53] vila: s/it/the web page/ [18:54] hmm, right (how did I miss that 8-/) [18:54] s//#bzr on freenode / ? [18:54] vila: in the MP [18:55] ooh, I see your comment now, I often have a hard time when you don't leave a blank line ;-/ [18:56] but do we want to put a real email there ? [18:56] I thought james_w put his name (instead of his email) to avoid spam ? === deryck is now known as deryck[lunch] [18:57] vila: Perhaps we could just mention the list, or the bug tracker [18:57] I'll try to remember to leave a blank line next time :) [19:00] jelmer: the bug tracker is now mentioned, I was about to put an URL for the list, but the page contains the email, so i think I will just put the email ;) [19:00] wfm :) [19:05] Is there a document that describes bzr error codes? [19:05] It seems like 3 is used when there are no changes to commit AND when the bound branch is out of date with the master branch. [19:15] cody-somerville: IIRC we use three different exit codes - success, failure and success but e.g. differences (for bzr diff) [19:46] cody-somerville: we only really use 0, 1, 3 [19:47] cody-somerville: and I'm pretty sure we don't distinguish for those particular cases [19:48] Hi, I would contribute with bazaar translating the docs to spanish, where should I start for find the files, maybe on rosetta launchpad? [19:58] I'm pretty sure it's all in a branch somewhere; I don't believe the bzr project uses Rosetta. === Ursinha is now known as Ursinha-afk [20:41] Odd. [20:43] I just did an update of a branch that fetched a single small revision, that took 7.675s. Doing it again took 7.970s immediately after (tree is up to date). [20:43] most of that is probably ssh handshaking [20:43] + bzr invocation on the server side [20:43] we have an improvement in the works but it blew up when we deployed it last night [20:44] ah, cool. [20:47] cody-somerville: "time echo hello | ssh bazaar.launchpad.net bzr serve --inet --directory=/ --allow-writes" [20:47] that gives the baseline time for bzr to handshake to the server [20:48] hi lifeless [20:48] hi jam [20:50] lifeless: the symptoms all point to a file-descriptor leak, but I haven't been able to reproduce it yet. [20:50] jam: ouch [20:51] unreproducable issues suck [20:51] yep === Ursinha-afk is now known as Ursinha [21:17] lifeless: argh... 'make run_codehosting' dump the file handles I'm using. Spawn 20 connections, it goes up to 60, next connection, back down to 12,13,14, perfectly clean [21:17] jam: its using 3 fds per connection ? [21:20] lifeless: stdin, stdout, stderr, yes [21:20] jam: how long does it hold them open ? [21:20] . o O (A thread with its 3 subprocess file handles not join'ed ?.... ? ... ? 40% bet) [21:21] at the time the forking service was shutdown it claimed to have 138 children active [21:21] that is about 400 file handles [21:21] accounted for, yes. [21:21] did we get an lsof ? [21:21] lifeless: we didn't get any extra debug info, AFAIK [21:21] hmm, I'm pretty sure wgrant pointed to a graph with ~300 connections [21:21] I wasn't around [21:22] so [21:22] we have this live on qastaging [21:22] hammer that? [21:22] +1 [21:22] with hammer >> 300 [21:22] lifeless: I did a hammer of it when we were deploying it, running 10+ concurrent connections for ~10 hours and didn't see it [21:22] but yes, we can do more [21:23] vila: I'm checking https://lpstats.canonical.com/graphs/CodehostingCrowberryConnections/ now [21:23] jam: if it's related to some limits setting you may run 10 years if you're below [21:23] vila: sure, but getting 300 concurrent connections is way over what we've generally seen. 138 is high [21:23] it is certainly possible [21:24] lifeless: I can say that for "echo hello | ..." the file handles are closed ~ as soon as the process exits [21:24] our log files should tell us the concurrency we see [21:24] hmm, I think the graph was showing an average of ~260 [21:24] jam: hang on [21:24] lifeless: they do, but it is a bit tricky [21:24] vila: just waiting for lpstats to actually graph something [21:24] jam: why are the file handles kept open in the parent at all ? [21:24] lifeless: to ferry the content from the bzr process to the client [21:24] same as before [21:24] no more file handles than we used to have [21:25] just to a different process [21:25] ok [21:25] * lifeless is imaginging a design where once handed off the fds are only needed by the bzr-sftp service [21:25] less handshaking as well [21:25] jam: meh, me too, wth ? [21:26] lpstats has a linear-growth design [21:26] we're pushing its capacity [21:26] . o O (Or spwan a clone once you reach too many fds) [21:26] first thing I think is what jam is already doinig - reproduce [21:27] vila: or run multiple front end services load balanced across instances... ooh look, already working on that :) [21:27] :) [21:27] jam: well done ;) [21:27] lifeless: right. As for lpstats, not having intermediate filtered content is a bit of a pain. Just a denormalized table with pre-averaged samples by day or something would probably make a big difference [21:28] vila: https://lpstats.canonical.com/graphs/CodehostingCrowberryConnections/ link is cached now [21:28] spikes of active connections up to 360 [21:28] but the important ones *should* be Active Smartserver Processes [21:28] yup, same here, not the one wgrant showed me, 100% sure [21:28] which is pretty much always under 100, usually under 90 [21:28] or even average of about 40 [21:28] https://lpstats.canonical.com/graphs/CrowberryProcesses/20110211/20110212/nocache/ [21:28] I don't really know how those are computed, though [21:29] ~sure the fork server was killed at the peak [21:29] vila: the peak of 360 I see is back on 2011-01-29 [21:29] but I'm checking your graph [21:29] vila: the # of processes [21:30] there is ~200 baseline processes on Crowberry [21:30] indeed [21:30] so that is only 320 - 200 [21:30] or 120 new bzr processes [21:30] when this was occurring I couldn't even get 'bzr info lp: xxx' working [21:30] vila: well, some people could [21:30] jam: not 'bzr pull lp:bzr' [21:30] I saw connections made and finished [21:31] hmm [21:31] it depended when a connection would close so that handles would free up [21:31] and then get used by the next connection [21:31] jam: how well did it perform before it went bang, do we know ? [21:31] vila: there does seem to be an issue with child processes not terminating immediately. [21:31] at the time it was switched off, nobody in the #launchpad-ops mentioned a successful connection which was part of the decision to switch it off [21:32] lifeless: very hard to tell from this graph: https://lpstats.canonical.com/graphs/CodehostingPerformance/20110211/20110212/ [21:32] jam: I just give you my feeling, better check the irc logs... [21:32] the problem is the 23s spike drowns out the numbers [21:32] vila: sure. I'm just going through the disk logs and seeing a new connection come in, and successfully exit [21:32] I don't doubt that it could have been a 90% failure rate [21:32] looking at bzr-sftp.log [21:33] lots of "I can't open a new file" [21:33] I don't know what would have happened if we just restarted without disabling the forking code [21:33] then that's an additional data point, not all of my connections failed, the other only hung [21:33] ATM, I'm wondering if there is a failure condition that is leaving the spawned bzr processes still alive [21:34] jam: yeah, *I* would have wait a bit longer, but it's easier to say when your finger is not on the trigger [21:34] vila: what really bothers me is that the 30 minutes that are probably the most interesting, are just completely missing from the logs [21:34] somewhere between bzr-sftp.log.10 and bzr-sft.log.11 [21:35] I see the process get started, things get handled fine [21:35] jam: on the flip side, *I* wasn't expecting troubles either, so when they showed up... [21:35] and then 11:01 ish, they are all dying with no file handles available [21:35] vila: what also concerns me about: https://lpstats.canonical.com/graphs/CrowberryProcesses/20110210/20110212/ [21:35] is that the baseline has moved [21:35] even after restarting the machine [21:35] it was 200-240 [21:36] it is now 260-280 [21:36] jam: yeah, I encounter the same problem when my HDD died and they were no trace in the logs because.... well, the systeme couldn't tell me... [21:36] jam: blame the p-i ? [21:37] * vila hopes jam can connect my replies to his remarks :-/ [21:38] jam: I'm long EOD, take my thoughts as random inputs, I offer no guarantee on their technical merit ;) [21:38] vila: Well, they'd still be written to the other drive in your RAID, right? :p [21:39] fullermd: indeed not, and the more I think about it, the less I'm tempted by RAID as a substitute for good backups and admin mods versioning :-P [21:42] vila: serve different purposes. but certainly important [21:42] RAID won't save you from rm -rf / [21:43] backups don't save you from hardware crashes [21:43] especially hot-swap RAID [21:43] Actually, the one time I did that (intentionally; the box was being decomissioned), it blew away something the system needed before it got done. So rm -rf / saved me from rm -rf / :p [21:44] fullermd: hehe, doesn't feel the same when you really tried it ;) [21:46] jam: but yeah sure [21:46] my current experiment starts from the assumption that we crossed the point where you can archive what matters for... ever [21:47] fullermd: certainly, I can imagine it removing a kernel module that it wanted to read, etc. [21:47] so I have ~10 full backups of the important family data [21:47] vila: except how can you archive those 10 backups... wait [21:47] Well, I dunno what it ended up being. But it stopped cold before it finished the rm. [21:48] 'course, I've also induced hard "failures" by putting small pieces of metal at very high speeds through the drive. Not while it was running though; maybe I should try that sometime... [21:49] fullermd: err, how did you achieve the high speed then ? [21:49] fullermd: Or is it just a way to say you *throw* them ? [21:49] Extremely exothermic chemical reaction inside a small brass case. [21:49] :) [21:49] bra what ? [21:50] i.e., I shot it :p [21:52] hehe, indeed , for same value of throw ;-D [21:53] * vila off... really ;) [22:00] jam: Sorry, I was more concerned about getting codehosting back up. Did minimal gathering of what processes were around, and then restarted everything. [22:00] jam: Some connections did succeed. [22:00] wgrant: I understand [22:00] But then hung. [22:01] just hard to debug the next day with only so much logging [22:01] Most were dropped during kex. [22:01] Yeah. [22:01] There also seems to be 30 minutes of logs missing. [22:01] Possibly because it couldn't open the new one. [22:01] wgrant: dropping during kex because it was trying to open /dev/urandom and couldn't open another file [22:01] wgrant: possible. A bit odd that it succeeded 30min later when it was still failing to open files [22:02] jam: Really good timing, maybe? [22:02] wgrant: certainly possible [22:02] It does seem to hold open a log file [22:02] since there were lots of failures in the next log [22:05] Right. [22:05] I initially thought the quick rotation meant that the rsync had missed a log. [22:05] But it was confirmed that that was not the case; the log really is missing. === Ursinha is now known as Ursinha-afk [22:15] jam: FWIW things were already going wrong in the bit before the missing log. [22:15] wgrant: the previous log shows no failures [22:15] jam: I couldn't see anything relevant in the log, but the connection time graph showed that things were bad. [22:16] wgrant: AIUI the connection time graph is only computed every 5-10 minutes or so, so not very good granularity [22:16] but sure [22:16] Hmm. [22:16] I certainly could say that things were close to dying at the point, since it was unable to open the log file [22:16] We should get the actual data points. [22:16] True. [23:04] jelmer: I'm confused. Why is the bzr-builddeb-daily recipe set to a 2.5.1~ based version? [23:07] (Given that 2.6 is tagged and in maverick/natty/sid/wheezy [23:10] maxb: consistency with its changelog [23:11] maxb: we need to ping james_w about this