/srv/irclogs.ubuntu.com/2012/01/19/#bzr.txt

pooliehi all00:24
* fullermd waves.00:28
wallyworld_poolie: why isn't --forward the default for bzr log? normally one wants to see the last revisions and it's easier if the earlier ones scroll off the top of one's terminal and the latest ones are what's seen01:27
pooliei guess normally people run it with |less01:29
poolieor --limit01:30
poolieit would be a waste to print the whole history just so you see the last few bits, i suppose01:30
wallyworld_sure, valid points. but log is fast and for files with shortish histories, it's easier OOTB to just 'bzr log' rather than bzr log|less or bzr log --limit xx and the like01:31
fullermdBackward through less makes it easy to go as far as you need back without knowing in advance how far that is.01:49
fullermd's also why every other VCS back to RCS and probably beyond runs that way.01:49
wallyworld_fullermd: using less i can see how it is better. running without less in a terminal it is easier by far to use forward. so i just use an alias :-)02:09
wallyworld_trouble with using less through is that when you quit out, all the logs also disappear02:12
wallyworld_so you are forced to run log again to look at something else if you need to02:12
wallyworld_eg i often want to log at the log and use info from there to run another bzr command. but it's harder to do if i am forced to use less since i can't start typing the command and then look back at the log02:13
fullermdOnly if you're on Linux, or some other system with broken termcap   ;p02:15
wallyworld_them there are fighting words :-)02:16
wallyworld_i would have thought the vast majority of bzr users are on linux anyway :-)02:17
fullermdYeah, that's kinda what I do   8-}02:17
wallyworld_i am surprised that more folks on linux don't have the same issues as me with using less and bzr log02:18
fullermdIn fairness, I should note that I often use my 'flog' alias.02:18
wallyworld_yeah, it's easy to set up an alias; i just would have thought that the OOTB defaults would make the majority use case, and given the issues with less, i would have thought --forward would be the most desirable02:20
fullermdGenerally, it's only useful when you're specifying a -r anyway.  Otherwise you sit a long time watching 5 year old revs fly by.02:20
fullermd(or 20 year old revs, depending on the project...)02:21
wallyworld_true. i normally want to use it with -r02:21
wallyworld_but that's what --limit is for02:22
wallyworld_and my brain prefers to look upwards to see earlier revs02:22
fullermdYou could setup an alias to make log use --forward, and then have a blog alias or something to switch to backward.02:23
fullermd(my flog actually has --forward and --short)02:23
wallyworld_yeah, i've got all the aliases set up for me. i was just musing as to why the defaults are the way they are02:24
wallyworld_after all, anyone who doesn't work like me is clearly wrong :-P02:24
fullermdOh, so YOU'RE the one who stole my line.02:25
wallyworld_yep :-)02:26
fullermdRight.  That does it.  You're on my list.02:26
fullermdNot the top, sadly.  But I can slot you in right behind "the entire western hermisphere".02:26
wallyworld_where you from?02:27
fullermdWell.  The western hemisphere.02:27
wallyworld_hah02:27
fullermdThat just makes it convenient, see.  No long travelling   :)02:27
wallyworld_i like travel02:27
wallyworld_although it took 50 hours door-door to get home from budapest this week02:28
fullermdAnyway.  I don't think there was every any long public discussion about default direction.  But the (AFAIK, exceptionless) universality of future->past in every VCS suggests it's largely approved of.02:28
wallyworld_well they are all clearly doing it wrongly :-)02:28
fullermdIn general, of course.  But not in this case, 'cuz I'm happy with it   ;p02:29
wallyworld_well at least it can be easily configured to suit one's tastes, unlike certain other products that shall remain nameless02:29
fullermdPfui.  Other products are easier to configure.  You don't need to mess with aliases, you just write a simple little kernel module, and...02:30
ISKHey02:32
ISKI want translate the doc "Bazaar in five minutes". Who should I contact?02:34
wallyworld_poolie:  can you help? ^^^^^^^02:35
astraljavaHi guys. I've got a problem with a src tree I copied over from another machine. It's stuck on an older revision, when I do `bzr up`, it says it's up-to-date with rev. 1280, but on LP, I see that the repo is already up to rev. 1300. What do I need to change so that it sees the correct location?05:23
fullermdIf it's an independent branch, wouldn't you want to use 'pull' to update it relative to the branch on LP?05:26
astraljavafullermd: Yes, you are correct. That did the job. Thanks a lot!05:27
wgzpre-morning all07:03
vilahola people07:44
mgzmorning all!08:19
=== Quintasan_ is now known as Quintasan
LarstiQmgz: morning09:07
LarstiQvila: thanks for merging!09:07
vilaLarstiQ: my pleasure !09:07
LarstiQvila: do you have any hints on how to dig deeper into the hanging http requests?09:07
vilayup, let me scollback09:08
fullermdNo, he only handles the htpp requests...09:08
vilatsk tsk hhtp09:08
vilaLarstiQ: in case your read the log, I suspect you're re-trying a request that failed, we want the first failure as the server is not supposed to receive more than one request which is probably why it's hanging09:08
vilaLarstiQ: but talk to wgz/mgz too who did some experiments yesterday09:09
mgzI could suggest a few things, if you start by getting a minimal set of tests you can get the hang with,09:11
mgzthen we can do some of the debugging things vila tried with me yesterday09:11
vilamgz: any issues with the windows installer for 2,5b5 ?09:12
vilas/,/./09:12
mgznot tried it yet09:13
mgzneed to find out how/if bzr-svn is borked09:14
LarstiQmgz: -Dhttp / setting DEBUG in _urllib2_wrappers?09:18
LarstiQmgz, vila: I did a full run excluding a couple of tests, and that completed (failures=54, errors=8476, known_failure_count=28)09:19
LarstiQnext thing is to see if running those excluded tests by themselves hang all the time09:19
vilaIIRC, you identified a single tests that was hanging when retrying a request. The BadStatus server expects a single request so we know why it hangs. Why the first request failed is the interesting bit09:21
LarstiQright09:21
mgzLarstiQ: so, something like `./bzr -Oselftest.timeout=0 selftest -s bt.test_http` with the debug stuff set, then breaking in and getting the test log may be useful09:23
mgzalso, if you kept the log of that full run and have a few classes of failure/error from it, file bugs tagged pypy09:24
mgzI had a couple of commonly occuring ones yesterday09:24
* LarstiQ nods09:24
LarstiQmgz: I have some select(-1) too09:24
LarstiQmgz: but the vast majority seem to hit the limit for amount of open files09:25
mgzright, I get that too, so it's worth a bug09:25
vilajelmer: Are you working on #917733 or can I steal it ? I think I have a low-risk simple fix for 2.5 and I'm working in this area for trunk anyway ?09:26
vilas/?$//09:26
mgzhm... fd limits... I got massive mem usage, so we may need to check trunk to see if test cleanup is still working09:26
LarstiQhrmf09:30
mgzanother option is to hack in a gc.collect() after each test and see if that helps09:31
mgzbzr has too many cyclic objects09:32
LarstiQswitching DEBUG from 0 to 2 lets it complete09:32
LarstiQat least, when I run only TestBadStatusServer.test_http_has09:32
mgzprobably just slows it down enough to avoid a race09:33
mgztry with -s bt.test_http.09:33
vilawhich would imply that pypy introduced a new one :-(09:33
mgzor that refcounting saves us from other issues09:34
LarstiQmgz: now it hangs indeed09:34
vilaok, I bite, why are you talking about ref counting here, pypy changed something in this area ?09:34
mgzit doesn't refcount vila.09:34
viladifferent gc algorithm ?09:35
LarstiQvila: yeah09:35
mgzit has several different pluggable gcs, the main one is...09:35
mgzwhatever the name is for a gc that relocates objects09:35
LarstiQvila: http://doc.pypy.org/en/latest/garbage_collection.html fwiw09:36
vilaand you're suspecting that we run into a case where our tests succeed because an object is *not* gc'ed ???09:36
vila(our: cpython)09:37
mgzwe have a bunch of subtle assumptions about object lifetimes still, one of these may cause this issue, or it might be something else entirely09:38
LarstiQrunning _just_ `../pypy-1.7/bin/pypy ./bzr -Oselftest.timeout=0 selftest -s bt.test_http bzrlib.tests.test_http.TestPost.test_post_body_is_received` hangs too09:39
vilaLarstiQ: set a breakpoint in retry_or_raise and check the first failure09:39
vilamgz: The only part of the code matching this pattern I can think of is the smart server and its daemon threads... (Not involved here)09:40
LarstiQvila: hmm09:40
LarstiQvila: afaics it doesn't get to that point09:41
vilacan you get back to the BadStatus test hanging ?09:42
LarstiQvila: http://paste.debian.net/152791/ is all the output09:42
LarstiQvila: sure09:42
vilaDEBUG alone gives incomplete and possibly confusing output, you probably want -Dhttp and the magical thingy that allows such flags to get passed for selftest09:43
mgzhm, thinking about the fd limit again, if enough tests fail, that have self.branch or similar, they all end up in a list and will be kept for the whole run, so without refcount to close fds that could run us out.09:45
mgzthe general testcase cleanup seems to be working, but I could fix a few more cases09:46
LarstiQmgz: iirc the last time I only looked at blackbox tests because my hardware couldn't run more than that09:47
LarstiQmgz: it looks like at least some non-blackbox tests do things like file(foo).read()09:48
mgzLarstiQ: vila means `bzr -Oselftest.timeout=0 -Dhttp -Eallow_debug selftest ...`09:48
vilayeah, that ! :)09:48
mgzLarstiQ: right, and my change since then should have improved things somewhat09:48
* vila rings jelmer's alarm clock09:49
mgzvila: but that only adds stuff to the testcase log, so LarstiQ would also need to break into a hung test, go up till he gets back to the test case, then print self.get_log() to some file09:49
* LarstiQ gives -Eallow_debug to selftest instead of bzr :)09:49
mgzright, that :)09:50
vilahehe, one more hint that this worked at some point in the past...09:50
LarstiQvila: it doesn't hang with DEBUG higher than 0 by itself.  Not sure having pdb break in retry_or_raise will hide the race or not09:50
vilamgz: ha crap, yeah09:50
mgzLarstiQ: waiting for the hang, then doing ctrl+\ and using pdb should work09:51
mgzto see the log/symptoms at least, if not to observe the actual problem09:51
vilaLarstiQ: get rid of DEBUG then, I'm not chasing the race by itself but I'd like to know why it fails for the first request09:51
vilamgz: I'm not sure you can still get enough details about the first failure by waiting for the hang09:52
mgzby first failure, do you mean in a seperate test?09:52
mgzthe preceeding test was passing for me09:53
vilano09:53
LarstiQfirst http request failure?09:53
mgzthen the request will be in the log at least, if not in enough detail09:54
vilathe BadStatus hang occurred when re-trying a request (when LarstiQ first talked about it), I'm talking of the first http request against the server09:54
vilaLarstiQ: yup09:54
LarstiQvila: breaking in on the hang, going up the stack, retry_or_raise is called with first_try=True09:55
vilaso, what is exc_type, exc_val, exc_tb09:56
fullermdExcitement by type, excitement by value, and excitement by tuberculosis?09:57
LarstiQvila: <class 'httplib.BadStatusLine'>, 'HTTP/1.0 0 Bad status\n\r' (guessing at the whitespace), <traceback object at 0x0b8fad58>09:57
vilahehe09:57
* vila blinks09:58
LarstiQ\r\n according to the repr09:58
vila...09:58
mgzyup.09:59
vilahttplib.BadStatusLine is caught and... calls retry_or_raise without changing first_try ? O_o10:00
vilameh, scratch that10:00
LarstiQvila: well then it gets into  reuqest.connection.close(); response = self.do_open(http_class, request, False) on line 57510:00
vilayeah, misread10:00
LarstiQ(with a commented out pdb, so probably line 574)10:00
vilaright, so, my first intuition was wrong10:02
vilathe test *relies* on the fact that the request *is* retried10:02
vilabut the server asks for the connection to be closed so the second request should open a new connection ?10:03
* LarstiQ acts on a hunch unimpeded by knowledge of what he is doing10:06
fullermd"... unencumbered by the thought process..."10:06
vilaLarstiQ: is there an easy way for you to try this with a bzr based on a revno < 6000 ?10:10
LarstiQvila: bzr branch -r 5999 is simple enough, sure10:10
LarstiQfullermd: "niet gehinderd door enige kennis van zaken" is the original10:11
bigjoolscan someone check out this bzr failure in a recipe build please? https://launchpadlibrarian.net/90383865/buildlog.txt.gz10:17
LarstiQvila: backtracee seems the same10:18
LarstiQmgz, vila: so just before the breakin, it does  return self._sock.recv(buffersize, flags=flags), with buffersize=65536 and flags=010:19
vilabigjools: sounds like a known issue, but bzr-2.4.0 ?10:19
LarstiQI don't know what the semantics are supposed to be, but could it be waiting till it has enough data till it can return buffersize bytes?10:19
mgzbigjools: bug 91550510:20
ubot5Launchpad bug 915505 in Launchpad Auto Build System "bzr: ERROR: exceptions.AttributeError: 'cStringIO.StringI' object has no attribute 'split'" [High,Triaged] https://launchpad.net/bugs/91550510:20
vilahehe, he's even faster than me asking him :)10:20
mgzneeds python-debian update on buildds10:21
bigjools:)(10:21
bigjoolsgrar10:21
bigjoolsthanks10:22
mgzcould work around in bzr-builddeb, but then we'd just need a builddeb update insteat10:22
vilaLarstiQ: no, most of the responses are far shorter10:22
bigjoolsmgz: is someone working on rolling a new buildd?10:23
mgzLarstiQ: that recv is fine, it returns when it gets something, rather than looping and trying to fill the buffer like higher level read calls10:23
mgzbigjools: good question... probably not?10:24
bigjoolsmgz: I've upped it to critical.  I'll help push it through if someone can tell me what needs changing10:25
mgzLarstiQ: have you dumped the log from the hung test yet?10:25
LarstiQmgz: http://paste.debian.net/152798/10:26
mgzbigjools: looks like we don't have an rt for updating it yet10:27
mgzwill check with jelmer later today and get back to you.10:28
mgzLarstiQ, vila: I wonder if we can get log from the test http server too?10:31
mgzLarstiQ: I think the next thing that would be useful here is to file bugs10:33
mgzso we don't lose track of what we know about the issues10:33
LarstiQmgz: I'll try to do that now before lunch10:34
vilajelmer, mgz: https://code.launchpad.net/~vila/bzr/917733-cmdline-overrides/+merge/89216 up for review, blocking for tarmac AIUI10:34
vilatested manually with http://paste.ubuntu.com/809507/ which is a bit silly as the default ui is SilentUiFactory so no output is produced but it doesn't traceback anymore with the fix10:35
ggherdovHi all. has anybody tried to use bzr and kdiff3 in combination to preview merges, in the spirit of http://wiki.bazaar.canonical.com/qbzr/Blueprint/diffmerge ? how to do that?10:36
ggherdovI mean, ok for THIS and OTHER, but I would need to get BASE too (which is computed internally by 'bzr merge') to have input to feed to kdiff310:39
vilaqbzr supports external merge tools as far as I know10:40
vilaI don't know where this is documented though10:40
ggherdovvila: yes that's what I read everywhere, but i didn't find any practical example (in the cut-and-paste sense of the term :-)10:40
vilahttp://wiki.bazaar.canonical.com/QBzr/ExternalMerge#KDiff310:41
vilahmm, not sure it's up to date10:42
vilaggherdov: what bzr/qbzr versions are you using ?10:42
ggherdovvila: thx a lot. Actually interesting. How to get BASE ? bzr version: checking...10:42
ggherdov2.2.110:43
ggherdovqbzr: checking...10:43
vilawith versions recent enough, I think you just need to say you use kdiff3 and the command template is already included10:43
ggherdov0.1910:43
ggherdovok i'll give it a try. I am not familiar with the GUI, I always use cmd line, so maybe that's why I missed that.10:44
mgzyou need to update your bzr version really, a neater way of configuring was landed since then <https://code.launchpad.net/~doxxx/bzr/mergetools/+merge/40923>10:44
ggherdovmgz: thx. checking that.10:44
vilaright, mgz is always faster ;)10:44
vilabut I concur with the advice, my remark is based on this proposal (and probably some later tweaks)10:45
ggherdovthx guy, updating bzr. Actually this imply updating my obsolete fedora 14 to 15... gosh this issue is a fractal.10:47
bigjoolsmgz: thanks. If a new buildd is rolled, does it just need to pick up the latest python-debian?10:47
ggherdovguys*10:47
mgzggherdov: you could probably get the extmerge plugin working instead if updating bzr is hard10:52
mgzbigjools: not sure, will find out.10:52
ggherdovmgz: good hint. By the way, do you know the 'oldest' stable release that includes the new mergetools stuff you were pointing in lounchpad?10:53
ggherdovlaunchpad*10:53
mgzthe linked bug 489915 says fixed in 2.4b110:54
ubot5Launchpad bug 489915 in QBzr "[master] external diff/merge configuration needs serious rework" [High,Fix released] https://launchpad.net/bugs/48991510:54
ggherdovmgz: ok10:54
LarstiQmgz: filed bug 91862410:57
ubot5Launchpad bug 918624 in Bazaar "some test_http hangs under pypy" [Undecided,New] https://launchpad.net/bugs/91862410:57
LarstiQand nwo I really need to eat something10:57
mgzLarstiQ: enjoy10:58
ggherdovno way , fedora 15 has bzr 2.3 . extmerge is my only way to go.10:59
mgzuuu, I see, this is ugly, run_bzr really shouldn't be a public function11:00
vilamgedmin: well, tarmac will cry if we remove it, just found it imports it so I confirm that's how it triggers the bug (and that my fix covers it)11:06
vilait also calls ui.make_ui_for_terminal directly11:07
mgz?mg11:08
mgzha, not vi11:08
vilawhich reinforces the idea that importint bzrlib should provides sane defaults triggering the least possible amount of IOs11:08
vilas/importint/importing/11:08
mgzI take it that was targetted at me vila?11:09
vilaxchat bad habbit of forgetting my settings for completion is really... yes, was for mgz ;)11:09
vilamgz: landing on 2.5 ??11:14
mgzit's not an api change :)11:14
mgzseems odd to have all the new config pain for 2.5 but none of the fewer-writes benefit11:15
vilahmm, strictly speaking, that's true11:15
mgzI've got worse things that need to land on 2.511:16
vilathe annoying bit is that it means plugins won't have a beta test period for that so 2.5.0 can be more brittle that our stable-uber-alles users may expect...11:17
mgzplugins are always borked on our .0 releases anyway11:17
* mgz takes the cynical view :)11:17
* vila as RM feels he will have to accept this as a reality11:19
fullermdIf you release 2.5.-1 instead, things should work well with .0 a month or two later...11:19
vilaThat's a good option and I'd love it if installers builders follow this trend but we're not fully there yet. I'll try to make it clear in the 2.5b5 announcement11:21
LarstiQmgz: regarding 'ValueError: file descriptor cannot be a negative integer (-1)', the amount of tests and the precise tests that fail varies from run to run12:42
LarstiQmgz: should I file a bug with that info, and then say "might be a race, might be exhausting filedescriptors"?12:43
mgzif you can do a reduced run that fails with on select with -1 (should be possible, pick a test subset),12:44
mgzI'm pretty sure that's an independant issue from the fh exhastion12:44
mgzlikewise, any other failures on reduced runs probably warrant bugs12:45
mgzand an overall bug for running out of fds on the full testrun with pypy seems reasonable, though the exact tests that fail aren't relevent12:46
* LarstiQ nods12:49
LarstiQwill do12:49
jelmervila: hmm, has your cmdline_overrides patch landed yet?12:55
vila(almost there finishing lunch)13:00
vilajelmer: yes, on 2.5, any issue with it ?13:00
jelmervila: Sorry, PEBKAC13:02
pfarrellhi! I'm confused by how to specify dates in bzr cat13:04
pfarrellI have two revisions that happened at these times:13:04
pfarrellrevision 4 @ timestamp: Thu 2012-01-19 12:40:06 +000013:04
pfarrellrevision 3 @ timestamp: Wed 2012-01-18 17:58:31 +000013:04
jelmervila: actually, there is13:04
jelmervila: line 1087 uses config, but it's never imported13:04
pfarrelland I do bzr cat -r date:2012-01-19 <FILENAME>13:05
pfarrellbut I get revision 4, instead of revision 3!13:05
pfarrelleven if I do bzr cat -r date:2012-01-19,00:00:0013:05
pfarrellam I doing something wrong? or is it a bug in bzr?13:05
* vila blinks13:05
vilahow on earth did my test succeeded then...13:06
jelmervila: not sure :)13:06
jelmerpfarrell: that sounds like a bug13:06
pfarrellok, thanks13:07
jelmerpfarrell: if you have a moment, it would be great if you could file a bug report. what version of bzr are you using?13:08
pfarrell2.2.4-0ubuntu113:08
pfarrellin natty13:09
pfarrellyep, I'm just writing it now13:09
vilajelmer: ok, reproducced13:09
jelmerpfarrell: it might be fixed in newer versions, I can't easily reproduce it with current trunk13:10
pfarrellI wonder is it related to https://bugs.launchpad.net/bzr/+bug/13127313:10
ubot5Launchpad bug 131273 in Bazaar ""date" revisionspec not returning exact revision when revision time zone differs from local time zone" [Wishlist,Confirmed]13:10
vilajelmer: and fixed13:10
pfarrelljelmer: would you mind trying it on my specific repository, if I pm you the details?13:10
jelmerpfarrell: that might indeed be relevant. Are r3 and r4 in different timezones from you?13:10
jelmerpfarrell: sure13:10
pfarreller, no, it's all London time, I think13:11
pfarrellbut maybe the launchpad server is in another timezone ?13:12
jelmerit's located in London too (but its timezone shouldn't be relevant)13:15
pfarrellout of curiosity, where in London?13:20
jelmerI have no idea :)13:21
jelmervila: thanks!13:29
vilajelmer: will land when you leave pqm breathe ;)13:30
jelmervila: :)13:30
ggherdovHi all. About the extmerge plugin http://doc.bazaar.canonical.com/plugins/en/extmerge-plugin.html , something that wasn't clear to me at first: you run 'bzr merge /otherbranch/' and --then-- you call 'bzr extmerge /somefile/' , is that right?14:34
ggherdovI thought that extmerge was somehow a substitute of the 'bzr merge' command14:35
vilaggherdov: nope, the phrasing is indeed ambiguous on this page but this kind of tool just can't replace bzr merge15:24
vilajelmer: progress on urllib-verifies-ssl-certs,15:24
vilathe http tests don't hang anymore (they needed the right ssl.ca_certs) and I've fixed some more in test_https_urllib ;)15:26
vilarunning a full suite now15:26
vilaha, more hanging tests in per_transport, of course15:28
ggherdovvila: thx, i figured that out :-) Anyway: my first day with bzr extmerge + kdiff3, I am totally in love <315:31
vila\o/15:31
jelmervila: \o/15:33
vilaI missed handling the wrong retry_or_raise call, any cert exception should be propagated, never re-raised...15:35
vilashould inherit from connection error maybe ?15:35
jelmervila: it's an error that comes from the ssl module; perhaps we should just be always letting those thorugh?15:46
vilayeah, both15:46
vilaerr15:47
vilawaitasec15:47
vilawhat's the purpose of match_hostname then ?15:47
jelmervila: the ssl module verifies the certificate and then returns the certificate info15:48
jelmervila: match_hostname then verifies that the certificate has the same hostname as what we connected to15:48
vilaha right, sry, haven't followed the python imp closely enough, yeah, people complained in the past about the hostname not being verified15:48
vilagreat, tests are properly failing now15:51
vilaSSLError: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed15:51
vilanot super user-friendly, worth re-raising as a CertificateError instead ?15:52
jelmervila: not sure, do you have a good way of extracting a user-friendly message from the SSL error?15:53
jelmerI think printing the SSL error is probably nicer than just saying "Something went wrong in the SSL handshake"15:54
vilak15:54
vilawfm, can be refined later, my changes so far are pretty clear so it won't be hard to find the right place back15:54
vilaso, the config trick is really a hack that don't work for all cases, I think we want dedicated parameters (still defaulting to the config options) for all tests and provide a test_permutation like we do for pycurl15:55
vilayeah, and you already provide some context when they occur15:57
vilaso, 58 failures for a full test run so far15:57
lamontbzr: ERROR: exceptions.AssertionError: get_next() called when there are no chars left16:05
lamontwhat did we decide was the right answer when bzr st says that (2.3.4-0ubuntu1)16:05
vilalamont: isn't it a symptom of a broken dirstate file ? (more traceback can help)16:07
mgzlamont: `bzr repair-workingtree`16:07
lamontvila: I can beleive that.  how do I fix it?16:07
lamont bzr repair-workingtree16:07
lamontbzr: ERROR: unknown command "repair-workingtree"16:07
lamontI shall see if 2.4.0 has that16:07
vilahttps://answers.launchpad.net/bzr/+faq/94016:08
vilais the shortest I can come with, repair-workingtree uses a slightly shorter implementation IIRC16:09
lamontI need to make 2.4 install in my little silly world16:10
lamontvila: turns out that just branching and smacking .bzr/checkout over the top of the old branch seems to be sufficient to my needs16:14
vilalamont: right, and you can run 'bzr st' to refresh it16:14
mgzthis is nearly the exact same conversation we had last time16:17
jelmeryup :)16:19
lamontyeah.  it fell out of brain-cache16:22
vilajelmer: more progress... the *server* was hanging too because an exception was raised about an unknown ca17:09
vilaso, yeah, getting details from ssl errors is hard, python seem to just rely on openssl and that's where the errors are coming17:09
vilaI don't quite get why the server complains about the ca... but it does so only when the client do the handshake...17:11
vilait's a bit like: (client) oooh, this server is bad, (server) OMG a client said I'm bad !!17:12
vilawhat's the point ?17:12
vilaanyway, down to 22 failures and no more hangs17:12
jelmervila: \o/17:14
jelmervila: what are the remaining 22 errors?17:16
vila[Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed17:20
vilabecause the *transport* don't use the right ssl.ca_certs config option, mentioned earlier17:20
vilabut I wanted to fix the server hangs first (we're not supposed to encounter them anymore by the way...)17:21
vilanot sure I will be able to finish tonight but I know where to dig17:21
vilabasically the config should be used as a fallback as it requires disk resources which led to my own bazaar.conf being erased.. endless fun and some wtf moments :)17:23
jelmerhehe17:23
=== yofel_ is now known as yofel
vilajelmer: gotta go, only one test still failing: bzrlib.plugins.launchpad.test_lp_directory.TestXMLRPCTransport.test_direct_request(https)18:21
vilawill have to inject the right server and transport there, not the default ones18:21
* LarstiQ grumbles at blackbox tests leaving 120 open files19:55
wgzLarstiQ: I bashed all the non-test-specific ones I could find a while back19:56
wgzbut at that point there was no need to go through and edit tests to do file handling sensibly when refcounting works19:56
* LarstiQ nods19:57
=== deryck is now known as deryck[lunch]
pooliehi all20:06
wgzhey poolie20:18
LarstiQheya poolie20:18
wgzLarstiQ: so, the yellow here should correspond with your issues <http://float.endofinternet.org/xmlbin/dev_r6442_non_per>20:20
exarkunWhat kind of server-side hooks are available when not using the smart server?20:20
wgzif you click on one and it says 'unclosed file' that's a likely issue on pypy20:20
LarstiQexarkun: none?20:20
exarkunLarstiQ: Why the "?"?20:21
LarstiQexarkun: I'm not sure I understand the context20:21
wgzexarkun: everything that's not a smart server hook, but they get run on the local machine against the remote object20:21
jelmerexarkun: the nature of dumb servers make it impossible to do server side hooks20:22
jelmerhi poolie, wgz, LarstiQ, exarkun20:22
exarkunSay I'm developing an application in a bzr branch and I want to update the deployment of the application by pushing the branch to the deployment environment.20:22
exarkunShould I achieve the effect some other way?20:22
LarstiQexarkun: ah, that way20:23
jelmerexarkun: a smart server can do that for you, or you could have the client do it if you're not using a smart server20:23
LarstiQexarkun: specifically for that usecase there is bzr-upload20:23
LarstiQwgz: thanks! test_merge is not as yellow as I'd expect it20:24
exarkunI don't really know anything about smart servers, except I guess there is some special software implementing at least one kind (the one launchpad uses).  It seems like maybe I'd rather avoid having to deploy one of those.20:24
LarstiQexarkun: usually it's just bzr20:24
exarkunLarstiQ: Hm.  I probably need to restart a process on the server, so it uses the updated code, so I don't know if bzr-upload is sufficient.20:24
wgzLarstiQ: that's useful to know, implies an actual behaviour difference, what are the files you get leaked there?20:24
exarkunLarstiQ: Oh.  Maybe I misunderstood, then.  How do I know if there is a smart server or not?20:25
jelmerexarkun: all a smart server over ssh needs is having bzr installed on the remote side20:25
jelmerexarkun: if you're using bzr+ssh:// you're using the smart server20:25
LarstiQexarkun: if you can use bzr+ssh://20:25
exarkunOh, okay, well that's pretty easy then.20:25
LarstiQexarkun: (or well, you could do smart server over http, but bzr+ssh is the most common)20:26
LarstiQwgz: let me see about gathering that20:26
exarkunSo I can use the SmartServerHooks... Perhaps "server_stopped" is a good one to use for this use-case?20:26
wgzexarkun: or any of the other hooks, installed server side20:27
exarkunwgz: Oh20:27
exarkunAny of them, really?  Like "post_push"?20:28
wgzthat wouldn't be relevent if the server is being pushed to.20:28
wgzit would run when bzr on the server pushes to some other location though :)20:29
jelmerexarkun: something like the post branch tip change hook should work20:29
exarkunjelmer: Ah20:29
exarkunAny reason to prefer that over server_stopped?20:29
exarkun(it sounds nicer, I want to prefer but, but I don't know why)20:29
LarstiQexarkun: if nothing gets changed, no need to restart the process20:30
wgzpost_branch_change_tip is what's normally used20:30
wgzotherwise your code runs if someone does `bzr log bzr+ssh://...`20:30
wgzetc.20:30
exarkunAh, I see.20:30
LarstiQoh, that's a good reason too :)20:30
LarstiQexarkun: and it doesn't matter if it's push/pull/uncommit, same hook20:31
LarstiQwith a difference between those on _where_ the hook runs20:31
wgzjelmer: can you give LarstiQ any hints on debugging fd exhaustion issues?20:31
LarstiQwgz: I've got a list now20:32
* LarstiQ cleans it up20:32
wgzheh, my check for pypy not having the pythonapi was wrong20:35
LarstiQwgz: http://paste.debian.net/152865/ gathered from running "ls /proc/`pgrep pypy`/fd" once a second20:36
LarstiQwgz: ooh, the Unclosed file: bits are really spiffy20:38
wgzokay, niece fed, now it's my turn, will be back shortly20:38
=== deryck[lunch] is now known as deryck
mwhudsonjelmer: hey, you might know this21:31
mwhudsonjelmer: would you expect repo.revision_trees([revid, revid]) to return a 1 or 2 element list?21:32
jelmermwhudson: deux21:32
mwhudsonjelmer: has this changed recently?21:32
mwhudsonjelmer: per https://lp-oops.canonical.com/oops.py/?oopsid=OOPS-90422eb49bf1e605dc0161ef0b9f916d21:33
jelmermwhudson: hmm, it might have actually21:33
jelmerI don't think any of those changes are deployed on lp yet though21:33
mwhudsonindeed21:34
mwhudsonthat would explain why i couldn't reproduce the bug though21:34
jelmerI don't remember ever seeing explicit tests for that though21:35
jelmerit would be nice to add something that tests that.21:35
* mwhudson wonders if repo.revision_trees(['null:']) still explodes21:36
jelmermwhudson: I think it's repo.get_inventory() that explodes on null, revision_trees() hasn't for as long as I can remember21:37
mwhudsonjelmer: my survey says BZZT: http://paste.ubuntu.com/810091/21:38
jelmermwhudson: hmm, wtf?22:08
jelmermwhudson: ah, I think it's revision_tree() that does 'null:'22:09
mwhudsonjelmer: ah hah22:11
mwhudsonyes you are possibly right22:11
mwhudsoni guess there shoudl be some bugs filed out of this22:11
exarkungiven a Branch, how do I figure out where its checkout is?22:15
jelmerexarkun: branch.bzrdir.open_workingtree()22:18
jelmermwhudson: file away please :)22:18
lifelessexarkun: in general you cannot, because there may be many, and they may be anonymous22:20
lifelessexarkun: if its colocated, jelmer is correct. If that raises (NoWorkingTree), then it doesn't proove there is no checkout, just none colocated22:20
exarkunWhat's a "workingtree"?22:20
exarkunhttp://people.canonical.com/~mwh/bzrlibapi/bzrlib.html is half helpful22:21
lifelesseditable source code on disk + metadata22:22
exarkunat least it lists what classes and methods exist22:22
exarkunbut it's not actually enough information to use most of the APIs22:22
exarkunbecause I don't know what kind of object open_workingtree returns22:22
lifelessbzrlib.workingtree.WorkingTree22:22
lifeless(or subclasses)22:23
lifelesshttp://people.canonical.com/~mwh/bzrlibapi/bzrlib.workingtree.WorkingTree.html22:23
exarkunit would be nice to have more information in the API docs22:23
exarkunSo if there is no colocated checkout, then is there some way to find where the branch is?22:26
lifelesshang on22:27
lifelessyou started with 'given a Branch'...22:27
lifelesshttp://people.canonical.com/~mwh/bzrlibapi/bzrlib.branch.Branch.html22:27
lifeless'.base'22:27
exarkunwell, "filtered-138970476:///~/some-path/" is /like/ a directory22:30
exarkunis there an api in bzrlib that takes something like that and gives me an actual directory though?22:31
exarkunI'm guessing .base[22:] is not the brightest idea22:31
exarkunon the other hand maybe I don't care22:32
lifelessyou can poke under the hood if needed; what are you trying to accomplish ? [note that the api supports entirely in-memory branch objects and soft chroots as well22:32
exarkunit might be better to just create a new checkout every time22:32
exarkunThere's some code in the branch, I want to run it, I'm writing a post-push hook22:32
exarkunactually a post change branch tip hook I guess22:32
exarkunthanks, bbl22:33
lifelessso indeed22:33
lifelesspost-push on a server won't have a working tree at all22:33
lifelessand there is no guarantee that what was committed matches what is on disk (because of partial commits)22:34
lifelessso making a clean checkout will be much more repeatable22:34
lifelessbbl myself22:34
AuroraBorealisso23:17
AuroraBorealiswith the recent email about colocated branches almost being done23:17
pooliehi23:17
AuroraBorealisdoes that mean if we start using them, will we able to use them as 2a branches?23:17
AuroraBorealiscause it says it has to be a different format for the time being23:18
pooliewe are going to turn them on a way that doesn't require a bzr-upgrade flag day23:18
AuroraBorealisok so they are basically 2a branches23:19
AuroraBorealisand these colocated branches are NOT using a plugin? and should work with all the commands?23:20
jelmerAuroraBorealis: yes23:23
jelmerAuroraBorealis: although specifying them may still be a bit icky for some commands, because you need to specify a URL at the moment23:24
AuroraBorealiswill that be fixed by the time its final?23:24
AuroraBorealislike doing switch trunk2 instead of .bzr/branches/trunk2 or whatever23:25
jelmerAuroraBorealis: yes, that's the plan23:25
jelmerAuroraBorealis: it's not .bzr/brnches/trunk2, but rather "file:,branch=trunk2"23:25
jelmerAuroraBorealis: eventually it will just be 'trunk2'23:25
AuroraBorealisyeah, thats how it is in the plugin right now23:25
AuroraBorealiswhere are the branches stored?23:25
jelmerAuroraBorealis: .bzr/branches23:26
AuroraBorealisah ok23:26
AuroraBorealissame place23:26
poolieo/ jelmer23:26
jelmerAuroraBorealis: the format is different though23:26
jelmerhey poolie23:27
AuroraBorealisis it still a repository?23:27
AuroraBorealisthe branches folder or whatever23:27
jelmerAuroraBorealis: how do you mean?23:27
jelmerAuroraBorealis: if there is a repository, it's in .bzr/repository23:27
AuroraBorealisi'm still kinda new to how these work , so you can have a folder with multiple co-located branches but no repository?23:28
jelmerAuroraBorealis: just like you can currently have a folder with a branch but no repository.23:28
AuroraBorealisah. makes sense23:28
AuroraBorealiswill checking out a branch when your current working directory is inside a colocated branches folder, add another colocated branch?23:29
jelmerAuroraBorealis: I'm not sure if I follow. each folder can only hav ea single working directory23:29
AuroraBorealisyeah i know, but if you want to add another branch to your colocated branches23:30
AuroraBorealisnormally you just branch it and have the location be inside a shared repository, is it the same here?23:31
jelmerAuroraBorealis: sure, you can do something like "bzr branch lp:... file:,branch=colocatedthing"23:32
AuroraBorealisand that will put it under the 'colocatedthing' branch inside the folder?23:32
jelmeryep23:33
AuroraBorealisok! thanks =)23:33

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