/srv/irclogs.ubuntu.com/2010/08/26/#bzr.txt

james_wmtaylor: so, the failure that stops it extracting for me on lucid is the same problem that building has apparently, but instead of being an error it just silently carries on. I don't see how this ever worked though.00:29
james_wmtaylor: the way I see it, it calls tar with -k, which means "don't replace existing files when extracting" and so the updated file that is listed in include-binaries isn't written over the top of the file from upstream.00:30
=== Ursinha-afk is now known as Ursinha
jtvspiv: lifeless tells quite highly of your repo repair skills06:16
spivjtv: was just reading backlog from the other channel06:16
* jtv cheers him on06:16
jtv(btw got the Prague picture?  Women here have a tendency to point at you and ask questions when I show them my pictures)06:16
spivjtv: pastebin the contents of 'find . -type f .bzr/repository'?06:17
spivjtv: I did, thanks :)06:17
jtvspiv: not sure what it is you want me to find—that's not correct "find" syntax.06:17
spivAlthough I admit to being puzzled why you are showing my picture to various women ;)06:17
spivOh, thinko06:17
jtvspiv: it's just in the batch, I can't help it.  Some quite good ones.06:17
spiv'find .bzr/repository -type f'06:18
jtvGot a great one of elmo, like an ultra-modern version of a 17th-century Dutch painting.  But he doesn't like being in pictures so I'm not sharing widely.  :/06:18
jtvspiv: http://paste.ubuntu.com/483798/06:20
spivAnd pastebin 'bzr dump-btree .bzr/repository/pack-names'06:20
jtvspiv: http://paste.ubuntu.com/483800/06:20
spivjtv: ok, that definitely looks like you hit a pack-names update race.  The fix should be 'mv .bzr/repository/obsolete_packs/f16*.*ix .bzr/repository/indices/ && mv .bzr/repository/obsolete_packs/f16*.pack .bzr/repository/packs'06:25
spivjtv: which version of bzr?06:26
lifelessspiv: not going to roll forward ? or is there no .new file ?06:26
spivlifeless: nope06:27
jtvspiv: 2.2.006:27
spivjtv: drat, that should contain all the fixes jam has made in this area :/06:27
spivjtv: which filesystem?06:27
jtvext406:28
jtvit goes bad from time to time… wgrant has reported the same06:28
jtvCan I just cp -r to back up my repo?06:28
spivYep06:29
jtvWell, that's done.06:31
jtvAnd it seems to be working!  Yay!06:32
jtvThanks spiv, thanks lifeless  :-)06:32
spivjtv: Now the only question is what caused it :/06:33
jtvMy candidates are: a recent filesystem corruption and a race condition (the problem struck when I was pulling multiple branches in the same repo)06:34
wgrantjtv: It hasn't done that for a long time for me.06:48
wgrantSince maybe May.06:48
spivwgrant: that's roughly when jam's fixes landed, IIRC06:54
jtvthis is about the fs corruption I think, not the repo trouble06:55
wgrantFS corruption, yes.06:55
wgrantBlock device flakes out for a moment, kernel marks it read only, FS goes bye-bye...06:56
jtvFor me they seemed to go away for a while when I switched from the proprietary nVidia driver to nouveau, but now they're back.06:56
jtvOh, more trouble while running rocketfuel-update.  :-(06:56
jtvException AttributeError: "'NoneType' object has no attribute 'close'" in <bound method SmartSSHClientMedium.__del__ of SmartSSHClientMedium(bzr+ssh://jtv@bazaar.launchpad.net/)> ignored06:56
jtvException AttributeError: "'NoneType' object has no attribute 'close'" in <function terminate at 0xa3b895c> ignored06:56
jtvsorry, rocketfuel-get.06:57
spivThose are harmless warnings, there have been posts on the list about them.06:57
jtvok06:57
spiv(Perhaps utilities/update-sourcecode needs to be updated to call bzrlib.initialize()?)06:58
vilahi all !07:22
vilaspiv: any chance you can review my looms tomorrow ? You did notice you are the pp this week :-D ?07:26
vilamgz: pong07:35
vilajtv, spiv: bigkevmcd also had a corrupted repo yesterday, also on ext4 :-/ I asked him to file a bug (to track the config details) but I don't see it so far07:39
spivvila: yeah, I'll review07:40
vilayeah !07:41
spivvila: interesting... I wonder if bigkevmcd had a crash as well?07:41
vilaspiv: yeah, a reboot07:41
spivHmm!07:42
vilaspiv: an empty .pack file but dirstate and last-revision where mentioning the missing revision07:42
vilawhich can only be explained by a very very dirty fs flush...07:42
spivvila: interesting, quite different to jtv's symptoms then07:42
spivvila: which was pack-names referenced a pack that had been moved to obsolete_packs07:43
vilaspiv: I didn't follow jtv's crash, can you summzrize or point me to the right... ok07:43
vilaeeerk an impossible scenario too...07:43
spivNo temporary pack-names files lying around (although a couple of upload/*.autopack, not sure how recent)07:43
vilahmm, unless a pack-names file creation wasn't flushed (including creation of the temp one and its renaming...)07:44
vilatwilight  zonesque07:44
spivvila: right07:44
spivso concretely, the fs might guarantee that f = open('foo.new', 'w'); write(f, '...'); close(f); rename('foo.new', 'foo') is atomic in the face of a crash (as I believe ext3 and ext4 do by default now), but not guarantee anything about whether files created and renamed before that will actually hit disk before that.  So the (small) pack-names file might have its update committed, but the larger pack file might not be.07:49
vila...or somehow related to a journalling problem... It's hard to believe that an out-of-order error can happen for the updates of a single process though...07:50
vilahehe long mesgs tend to cross on the wire :)07:51
spivWell, in the face of a system crash, I don't think any guarantee is made about the relative order that files are written.07:51
vilabut journalling is supposed to protect against such scenarios...07:52
spivext4 defaults to data=ordered, which strictly speaking only guarantees that the file *metadata* is journalled.07:52
spivSearch for "* ordered mode" in http://lxr.free-electrons.com/source/Documentation/filesystems/ext4.txt07:53
vilai.e. dir content and that's exactly what failled...oh wait, *file* content vs *dir* content :-/07:53
vilaeerk, ordered is the default :-/ not journal07:55
* vila revises its beliefs :(07:55
vilaso the fs is not corrupted... I'm so glad :(07:56
spivAnd even if data=journalled it's not clear to me if that implies that changes to multiple files are necessarily committed in the same order as a (single) process that issues them.  That doc only clearly states than an individual file will be consistent.07:57
vilaspiv: if data=journal (and the journal is not lost somehow), then after a crash, the journal is replayed and all updates should be seen07:59
vilathat's the point of a journal or all bets are off07:59
spivvila: right, but the most recent changes might not be "committed" and lost, so the question of ordering still matters.08:00
vilaonce an update is committed on the main fs, the corresponding entries must be deleted from the journal or be defined in a way that allow them to become no-ops if they are re-played08:00
spivvila: also, see the auto_da_alloc option described at that URL08:01
vilaspiv: and we don't use fsync right ?08:03
vilaIt's a bit scary to be qualified 'broken' there, sounds like some fs optimizations are a bit user-hostile...08:05
spivvila: right, because it practice it is a huge performance hit because it tends to cause a system-wide flushing of buffered writes :(08:05
vilaEISHOULDNTHAVETOCARE08:05
spivvila: there have been some "entertaining" discussions on the topic of fsync/ext4/etc summarised on LWN in the last year or so08:06
spivvila: google for o_ponies if you like ;)08:06
vilahehe08:06
vilaAll I want is my rug back !08:11
=== Leonidas is now known as Guest60304
=== Leonidas_ is now known as Guest96662
CcxCZhi, I have question about repository layout/workflow, can anyone advise?09:19
CcxCZI have two projects which share common source files. What is the best way to keep it all versioned and make it easy to backport changes from one project to another?09:22
vilaCcxCZ: the easiest way today is to handle 3 separate projects: project A, project B and project common09:27
vilaCcxCZ: 'nested trees' is the planned feature you really want here09:27
vilaCcxCZ: with nested trees you will be able to "nest" project common in both projects and cleanly merge changes made by one project or the other09:28
CcxCZvila: isn't it supported by 2.2?09:30
vilaCcxCZ: no, at best it will be supported or alpha in 2.309:30
CcxCZ:[09:31
CcxCZvila: thanks for info09:31
vilaCcxCZ: depending on the volume of shared files and changes, there are some ways to address your need today but nothing trivial :-/09:32
spivHuh, for some reason --lsprof-file foo.callgrind has given me a callgrind file where most of the calls aren't connected to each other :(09:34
vilaspiv: stop doing things behind callgrind back !09:35
spivvila: I didn't think I was!09:37
CcxCZwhat's best tool to migrate from svn?10:03
vilaCcxCZ: bzr-svn allows you to work with bzr while still connecting to an svn server10:09
maxbI think in most cases, bzr-svn is also the best tool for a one-shot migration10:10
CcxCZI think it required some specific repository format which was bothersome10:15
CcxCZI'm going to try svn2bzr.py now10:15
knittlwhere can i find docs on compiling bazaar?10:19
knittlbzrlib/_static_tuple_c.c:35: fatal error: _simple_set_pyx_api.h: No such file or directory10:20
jelmerCcxCZ, it only requires a specific repository format if you're using bzr < 2.010:21
jelmer(which you probably should not anyway..)10:22
vilaknittl: just try 'make' in the source directory10:25
vilaknittl: you need pyrex and a C compiler10:25
knittlvila: make? i did setup.py install10:25
knittli might be missing pyrex10:26
knittlwhat's the package's name in ubuntu?10:26
vilaknittl: why do you want to run setup.py if you're using Ubuntu ? There is a ppa with the latest stable versions and if you want to run from sources you shouldn't need setup.py10:27
knittlbecause setup.py is usually the right way for python apps10:27
knittland i need to run from source10:28
maxbCcxCZ: svn2bzr.py? Hasn't that project been dead for three years?10:28
vilaknittl: then run from sources, using setup.py will only make your life harder10:28
vilaknittl: python-pyrex10:28
knittlwhat is setup.py used for then?10:30
vilaknittl: *installing* from a release tarball for platforms that doesn't provide binary packages :) If you encounter a problem using it, please file a bug so we can track it10:31
vilaknittl: but if you want to run from sources, you don't need it (or you will have to run it each time you modify the sources)10:32
knittluhm ok. let's try make10:32
maxbWell, that's not entirely true. You only need to re-run it when you modify compiled bits10:32
vilaknittl: all you need to run from sources is to make the 'bzr' script appears in your PATH10:32
maxbAnd "make" is just a trivial wrapper around setup.py10:32
knittlwell, run everytime sources change is normal routine for selfcompiled apps10:32
vilamaxb: I was talking about setup.py, not make10:33
knittlno target install10:33
knittl:-/10:33
vilaknittl: 'make' not 'make install'10:33
knittli did make. and then i wanted to install10:33
vilaknittl: ghaaa, sorry. 'make' will build the extensions in the *source* dir, you can then run from here, no need to install,10:34
knittlbut i want to install it systemwide10:34
vilaknittl: if you really really want to install, then yes, run setup.py10:35
knittlthere we go …10:35
vilaknittl: why not use the version provided by either Ubuntu or one of the ppas described at https://edge.launchpad.net/bzr ? Just curious...10:36
vilaknittl: some plugins requires that the dependencies are kept in sync and is not a trivial task (/me looks at maxb ;)10:37
maxbIt's not that hard, either, though10:37
knittlrunning comparisons of different dvcs (latest version from source)10:37
maxbI can understand wanting to check out how difficult a self-build is, to not be beholden on packagers10:38
vilaknittl: then I'd strongly recommend using https://edge.launchpad.net/~bzr/+archive/ppa , it's recent enough to make no differences with bzr.trunk except that the later may drive you into dependencies problems that will be totally irrelevant to a dvcs comparison...10:39
knittlhmm10:40
vilaknittl: anyway, these are the options, use whatever you see fit10:40
knittlbut it's only rc?10:40
vilaknittl: nope, see this channel topic, I'm pretty sure all installers are already up-to-date (minus the OSX one ?)10:41
knittlwhat's special about the channel topic?10:41
vilaknittl: so the official announcement will occur RSN but the sources have been frozen already10:41
vilaknittl: it says: bzr 2.2-final has gone gold10:42
vilanot rc nor beta anymore10:42
knittlyes. but current trunk is 2.3.0, isn't it?10:42
vilaknittl: no, it's trunk but will become 2.3 in ~6 months10:42
knittlyeah. but it's not 2.210:44
knittlwhatever, i'll have a look at the ppa as well10:44
vilaknittl: indeed, it's not 2.2 and as such is not as stable as 2.2, my point is just to warn you about that. While bzr.dev have a few bug fixes/memory consumption optimizations, I don't think that's worth the risk for a comparison if this means you get a bad user experience (and hard to reproduce problems, trunks of bzr and plugins may change quickly especially just after a release)10:48
vilaknittl: on the other hand, I'm not aware *today* of any problem in this area...10:49
knittli'm not comparing usability10:49
vilaknittl: ok, feel free to ask any questions anyway10:51
knittli sure will. thx :)10:51
=== Guest96662 is now known as Leonidas
CcxCZhow do I remove project from shared repository?11:06
maxbDo you mean branch, not project?11:08
CcxCZyes11:09
maxbCcxCZ: You can just delete the branch from disk. Unfortunately there's no way to make bzr purge the data in the repository which is now unreferenced11:30
=== FryGuy_ is now known as FryGuy-
CcxCZso, the best way to clean shared repository is to make new one and re-branch all branches from the original one11:34
maxbIf you really need the diskspace, yes11:42
kiwinotequick bzr question if anyone knows. I mistyped a branch name, hence merged with a non-existent branch, this didn't time out, so I ctrl+z'ed it. Now I get errors about the dirstate lock not being available. Ideas?11:56
Glenjaminhi guys11:57
Glenjaminis there any way to tell the merge command to ignore certain files?11:57
CcxCZGlenjamin: you can use --interactive12:00
Glenjamini was hoping for a middleground. I've got a branch which is going to be hanging around with a few changes from trunk - and i'd like be able to merge fiex back upstream without messing around a lot12:04
Glenjamini guess merge -c is probably my best bet12:04
guiQthi! how can i add files that are outside the working tree?13:08
vilaguiQt: 'bzr add file' unless they are really *outside* of the working tree as in 'above the root of the wt' in which case, you can't13:12
guiQtbut using bazaar explorer, i can't even see files outside the working tree... :-(13:15
guiQtthat's the reason of my question13:15
GlenjaminguiQt: Under the working tree section, there's a drop down box to the left of "Filter:"13:20
Glenjaminwhat does it say?13:20
guiQtUnignored13:21
CcxCZI think he really means outside the wt13:21
Glenjaminselect "All"13:22
Glenjaminor "Unversioned"13:22
guiQti have several project directories and a shared folder. they're all siblings. how can i add files belonging to shared folder?13:22
Glenjaminah, i see13:22
guiQtyes, shared is above the root of each project13:23
Glenjaminthen the previous answers were more accurate - you can't add files that are actually *outside* the working tree13:23
guiQtbut what is the best strategy for such a case?13:23
Glenjamini believe there's a feature called nested trees in development, that works in a broadly similar way to svn:externals - but i don't know how complete it is yet.13:24
guiQti'm new to versioning systems and i supposed this pattern was frequent: several projects sharing common libraries13:26
Glenjaminyes, you'd normally version the common libraries separately13:27
Glenjaminand essentially treat them as their own project - which the other projects depend on13:27
guiQtso do i till now!13:27
Glenjaminwhich language are you using?13:27
guiQtc++ (qt)13:28
Glenjaminah, i'm not really familiar with handling dependencies for C++13:28
CcxCZguiQt: what's the problem versioning it separately?13:29
CcxCZwith*13:30
guiQtwhen exporting the project13:31
guiQti'd like to have all my files togheter13:31
guiQtnot each project uses all shared files13:32
guiQtnot a problem at all, only a matter of redundancy13:33
CcxCZI'd write an export script for each project, exporting only necessary files13:33
CcxCZif you mean export as in bzr export (without history)13:34
guiQtexactly13:34
guiQtok13:35
guiQtthank you so much for the talk. see you again. ;-)13:35
CcxCZglad to help :-)13:36
=== Noldorin_ is now known as Noldorin
vilamgz: pong14:02
stub[Errno 11] Resource temporarily unavailable14:17
stubhttp://paste.ubuntu.com/483956/14:18
stubKnown issue with the new bzr from the PPA, or pebkac?14:18
stubpebkac14:19
stubSo that error can mean 'disk full'14:20
stubFreed disk and it is still stuck.14:25
stubhulp14:26
stubsorted. another window had a 'bzr diff|less' open.14:28
=== JFo is now known as JFo-swap
chxhow can i make bzr resolve by accepting all THIS files as valid?15:52
jelmerchx, I think "bzr resolved --take-this"15:53
chxweird, bzr help resolved didnt list that option15:54
james_wresolve/resolved15:54
chxyeah that probably needs 2.215:55
chxi only have 2.115:55
chxi guess revert15:55
james_wrevert .15:55
james_wwithout the dot it will forget you merged as well, which you don't want15:55
=== zyga is now known as zyga-dinner
=== zyga-dinner is now known as zyga
mgzvila: still around?17:01
vilamgz: not for long17:03
mgzwell, I'm yours till you need to be gone.17:04
vilahehe17:04
vilayou pinged me .. yesterday ?17:05
mgzah, yeah, two things about my current mp, probably should have just posted there17:05
mgz1) can I have your output with 2000 complaining tests, because I don't get nearly that many (and don't think I skip that much either)17:06
mgz2) how is bb.test_log fixable just with addCleanup?17:06
vilahmm, I'll need to re-run that17:06
mgzalso, if you need any of my results for your leak branch, I've got the full thing17:07
vilaI don't clearly see where the cycle is, but you should be able to break it in an addCleanup17:07
vilaif only by deleting the offending attribute17:08
vilaor setting it to None17:08
mgzright, that doesn't work, because it's on the closure over the instance17:08
mgzyou can't do much with cell objects.17:09
mgzand they're not terribly easy to get hold of.17:09
vilawaitaminute17:10
mgzthere might be some locals poking trick, but not one I know about.17:10
vilarhaa, what's wrong with lp ? I had all sort of random font sizes problems :-/17:10
mgzthey've changed some css, I see17:11
mgzmight have caused your browser confusion17:11
=== beuno is now known as beuno-lunch
vilaso, for log, isn't it enough to self.log_catcher = None ?17:12
vilamgz: after reverting your patch of course17:13
mgznope, and I tested that just to be sure.17:13
vilaor del it17:13
mgz(well, to be exact,17:13
mgz+        self.addCleanup(setattr, self, "log_catcher", None)17:13
mgz)17:13
vilahmm, does the cleanup lambda keep a reference to self in that case ?17:14
=== chx_ is now known as chx
lamontI rather suspect that bug 249452 in ubuntu was resolved some time ago17:16
ubot5Launchpad bug 249452 in bzr (Ubuntu) "bzr overrides the shell prompt settings (affected: 0, heat: 17)" [Undecided,Confirmed] https://launchpad.net/bugs/24945217:16
jelmerlamont, did you see poolie's last comment on that bug?17:19
lamontyeah, it's fix released in Bazaar, but still open in ubuntu, I'm guessing it never actually made it out as part of 1.6?17:20
lamontmostly I didn't want to track down what version it was fixed in for ubuntu17:20
mgzvila: because the cycle is between the cell and the instance17:20
mgznot the attribute.17:21
vilamgz: ha, looking at the source instead of the mp...17:21
vilawhat do you call the 'cell' ?17:21
mgzit's the little object python creates for closures to store the outer variables17:21
* mgz is actually a little shaky on these internal details...17:21
vilamgz: so you need to delete the closure17:21
vilaor step back and re-think the approach taken in def getme(branch)17:22
mgzokay, here's a minimal case, what's the right cleanup to add?17:22
vilahack in hijacking == True :)17:22
mgzhttp://float.endofinternet.org/bazaar/simple/weakcycle/weakcycle.py17:24
mgzthe refs and weakref stuff is just to see what's happening, all that's needed is the closure for the cycle.17:24
viladel inner ?17:25
mgztry it and see :)17:25
mgzwait, did I screw that test up..17:26
* mgz tries being less lame17:26
mgzneed the bzr TestSuite17:27
vilawith or without inner defined I get the same result17:28
mgzyeah, I minimised too much without checking the negative result17:28
mgzfixing...17:28
vilamgz: I remember why I did that I think: I needed to get the right LogFormatter object but the registry is a factory so I had to define __new__ to capture the object creation17:31
vilathere may be alternatives that doesn't involve cycles, but I'm still unsure about the whole cycle elements17:32
mgzyeah, the way the test is written currently is explainable17:32
mgzokay, so, just deleting something *should* work17:33
mgzbut... log_catcher isn't sufficent.17:34
vilamgz: as long as it's part of the cycle, yes, that's the idea17:34
vilaso, what constitute this cycle17:34
vilamgz: so may be del MyLogFormatter ?17:35
=== Ursinha is now known as Ursinha-lunch
mgzno, that's just the type, not involved17:35
vilaor MyLogFormatter.__new__ = None17:35
* mgz unshelves his debugging function17:35
vilawell, __new__ reference self (the test instance)17:35
=== deryck is now known as deryck[lunch]
vilamgz: I'll be passing around only for the next hours but will be available if needed around 21h00 my time (in ~3 hours), ack ?17:39
mgzyeah, I'll dig a little more, thanks for the help.17:40
vilaok17:41
mgzokay, I understand now17:48
mgzit *is* the __new__ that's the issue, because it's (implicitly) a staticmethod17:49
=== gorozco is now known as p4tux
vilamgz: that was my last suggestion, yes, so it should stay defined as long as the... test class is defined ? Ouch18:01
vilathere is still one bit I don't remember (or may be I didn't understand it either at the time): why defining __init__ isn't enough ?18:02
vilamgz: maybe overriding b.log.LogFormatterRegistry.make_formatter can work around the problem...18:04
* vila off again18:04
=== beuno-lunch is now known as beuno
=== Ursinha-lunch is now known as Ursinha
lamontbzrlib/_dirstate_helpers_pyx.c:9002: warning: dereferencing type-punned pointer will break strict-aliasing rules18:18
lamontnice.  only not.18:18
=== deryck[lunch] is now known as deryck
glendoes bzr have such concept as "tag", how do i add tag to a project, say "2.3", and how do i check if such tag already exists?18:53
mkanatglen: bzr tag18:54
mkanatglen: and "bzr tags" to see existing ones.18:54
glenthanks a bunch!18:54
mkanatglen: You probably don't want to tag something just like "2.3" because tags merge across branches.18:54
mkanatglen: So you probably want something like myproject-2.318:54
gleni.e it can't start with a number?18:55
mkanatglen: It *can*, I just wouldn't recommend it.18:55
glenanyway, i see project already has tag set:  "release-2.3-final    4132"18:55
mkanatglen: Also, you could have a revision number "2.3", which means you'd have to explicitly do -r tag:2.3 instead of just being able to do -r 2.318:55
mkanatglen: Okay. :-)18:56
vilamgz: ping, are there any updates on your mps for testtools or bzr that I should pull before re-running for the 2000 ?19:36
rockydon't suppose any setuptools_bzr contributors hang out here? having a problem with setuptools_bzr 2.0 and bzr 2.019:56
rockyer... bzr 2.2.019:56
mgzvila: no, just as is would be great20:13
vilahmpf, massive maverick update20:16
vila192 packages, 230MB will be downloaded :)20:16
vilahmm, nice colored ascii screen, makes me feel younger :) I prefer the graphic version though, especially when running X...20:26
vilaat least a reboot fixed it :-/20:27
vilamgz: hmm, ran 4 tests... again ? See http://babune.ladeuil.net:24842/job/py27-test-cycles-maverick/3/console20:40
* mgz looks20:40
vilamgz: did I use the wrong branch ?20:40
mgzis that on 2.7 as per the name?20:41
vilayup20:41
mgzit doesn't need to be...20:42
mgzalso, I've not done anything to fix --parallel=fork20:42
mgz(yet)20:42
viladoesn't need 2.7 ??? Where did I get this belief then ?20:43
vilarunning without --parallel at http://babune.ladeuil.net:24842/job/py27-test-cycles-maverick/420:44
mgzit's probably based on the branch for fixing selftest on 2.7 as that changed a bunch of things that would conflict.20:44
mgzthat's looking good, thanks vila20:45
vilamgz: http://paste.ubuntu.com/484132/ doesn't look good to me :)20:46
mgzhmpf, that's still getting junk in the output20:46
mgz...is that what your link is saying too?20:47
vilafor skipped tests20:47
mgzit's still 2.7... that needs tracking down, I'll file a bug already.20:47
mgzthis is really only a 2.7 thing, right? doesn't appear on any of your other bots.20:49
vilamgz: I've setup a dedicated job on babune (it should pull from the bzr branch but not the testtools one though), so it will be easier to re-run or tweak20:49
mgzgreat, thanks.20:49
vilaI've setup a maverick slave and add the adequate ppa so py27 is the default20:49
vilabut the ppa lacks pyrex so far20:50
mgzI think I'll file against subunit because I've failed at seeing anything wrong in bzr or testtools20:50
mgzcan always get moved later.20:50
vilamgz: if you read the begining of the log, I've added some commands to display what is used20:50
vilamgz: I've created a new view to track this kind of jobs: http://babune.ladeuil.net:24842/view/debug/20:54
mgzthis skipped printing-of-random-details-member thing doesn't actually look fatal20:58
mgzso, it might be a seperate bug that's causing the xml parser to fail on the subunit output later20:58
mgzthat run looks wedged. is that going to be my fault or a known issue?21:15
vilamgz: no idea21:19
vilamgz: rather, no known cause for hanging runs on mo.... no space left on device :-)21:19
mgzwait, now it's progressing21:19
mgzer... well21:19
mgzIOError: [Errno 28] No space left on device21:19
* mgz bows to vila21:20
mgzand man that 2.7 logging change is obnoxious21:20
vilameh, no idea what obnoxious means here ;)21:21
mgzthe log ends with thousands of tracebacks from the logging module21:21
vilalooks like tmp is full21:21
mgzwhich isn't nice, or useful.21:22
vilathere is 1GB log file there21:22
vila WARNING  listening socket error: [Errno 24] Too many open files21:22
vilamwahahahahaha21:22
* vila bangs head on desk21:23
vilaalso known as leaking tests fills up my OSX disk :-(21:23
mgzwell, at least we're progressing on several fronts, even if it's a pain.21:24
vilaI don't want to start saying: I've told you....21:24
cody-somervillewhy does bzr launchpad-login try to fetch the +sshkeys page from launchpad for the user?21:24
vilabut I've been repeating for ages that the leaking tests could blow up at any time...21:24
vilacody-somerville: to check that the user can login with one key registered on lp ?21:25
lifelessvila: oh hai21:25
lifelessand hi mgz21:25
vilalifeless: hey !21:25
mgzhey lifeless.21:26
mgzbefore I get back to filing this against subunit for lack of better ideas, do you have any smart thoughts on why 2.7 only babune gets skipped [some random details member] in the output?21:26
mgzsee vila's pastebin ^up there for an example21:27
vilamgz: so, either you fix --parallel or you wait for my leaking tests mp to land (or review it :-)21:27
vilamgz: s/only/on/ ?21:27
mgzwell, I mean that it happens on 2.7 but apparently not 2.621:28
mgz^okay, I'll look at parallel, presume that I can just override osutils.---thingy---concurrency to test21:28
vilaBZR_CONCCURRENCY even21:28
mgzah, I meant, as in, write a testcase, but yes21:29
* vila EODing, have fun !21:30
mgzbye vila!21:30
lifelesswell 2.7 added an official skip21:31
lifelesswhich pastebin ?21:31
mgzsorry, wrong keyword,21:32
mgz<vila> mgz: http://paste.ubuntu.com/484132/ doesn't look good to me :)21:32
mgzthose ones actually have the 'reason' detail, but others have the 'traceback' or 'log'21:33
lifelesswhats wrong with it ?21:35
mgzit's weird, and we're not sure if it's related to the other things that go wrong with 2.7 like, the xml output not being well-formed21:36
lifelessit looks like parameterisation or something to me21:36
lifelessthe reason you'd get logs and stuff, is if the skip is done late21:37
lifelessafter test activity21:37
lifelesslike I say21:37
lifeless2.7 added skip support21:37
lifelessso I suspect an interaction with that21:37
mgzsounds likely, so, where should I be filing this? bzr? testtools? subunit?21:38
lifelesswhereever the problem is ;)21:38
mgz;_;21:38
lifelessI doubt subunit21:38
lifelessvery very much21:38
lifelessmaybe testtools, maybe bzr21:39
mgzokay, I'll have another look at testtools first.21:39
lifelessbut21:39
lifelessdunno what the problem is21:39
lifelessso - I'd a) reproduce locally21:39
lifelessb) use the magic of greyskull^Wpdb21:40
mgzthe log thing due to a later skip might help, I'll see if I can work out if there's a difference in the tests that have reason and those that have log21:40
lifelessthey should still have a reason21:40
lifelessit will depend on the API they use21:40
lifelessif they call addSkip(test, foo) - then reason only21:40
lifelessif they call addSkip(test, details=...)21:41
lifelessthen you'll get log + reason + other stuff21:41
mgzgetting that out the way will hopefully make tracking down the actual broken output and other weirdness easier21:41
mgzanother one I saw was a x6 paramatised test that failed,21:42
mgzgetting traceback-0 through -521:42
lifelessthats bogus21:42
mgzas each one failed.21:42
lifeless6 tracebacks would make sense for a server test where multiple threads can die21:42
mgzthat doesn't look like what this is:21:45
mgzright, but this was totally, straight up, adding the21:45
mgzgra.21:45
mgzwrong paste21:45
mgzthis:21:45
mgzhttp://float.endofinternet.org/temp/babune_log_extract.txt21:45
mgzfirst fail has traceback. second has traceback, traceback-1, third has traceback, traceback-1, traceback-2... etc21:46
lifelessperhaps something is gone fucked up with test parameterisation21:46
lifelesslike sharing object state or something21:46
mgzseems likely.21:46
mgzmight just be that test case class then?21:46
lifelesswell21:47
lifelessthe tracebacks are stored in self._details21:47
lifelessif that dict were initialised before parameterisation21:47
lifelessand shallow copied21:47
lifeless(which I think we do, for various reasons)21:47
lifeless[the shallow copying we do]21:47
lifelessand indeed21:48
mgzokay, food for me now, I'll make a list of these things and file bugs so that the ones I can't work out myself don't get lost.21:48
lifelessTestCase.__init__ sets self.__details21:48
lifelessso if we're shallow copying we'll be sharing details21:48
lifelessand cleanups21:48
lifelessand other fun stuff21:48
lifelessand clone_with_new_id uses copy.copy21:49
lifelessneed to check what bzr uses21:49
lifelesscopy.copy21:49
lifelessso, thats why21:49
lifelessgrah fuckers.21:49
mgzokay, so that's something seperate and fixable at least.21:50
lifelessprobably by implementing the copy hook for TestCase21:59
lifelessI don't know what I was thinking21:59
james_whey lifeless22:01
james_wlifeless: is testing with different imports a use case for testscenarios? We may want to test against built in json and simplejson using it if possible.22:02
lifelessjames_w: yes you could use it for that22:10
lifelessif you pass in the module to your tests - ('json': {'implementation':__import__('json')]), ('simplejson': {'implementation':__import__('simplejson')])22:10
lifelessif you pass in the module to your tests - ('json': {'implementation':__import__('json')]), ('simplejson': {'implementation':__import__('simplejson')])22:10
james_wlifeless: ok, thanks, I'll pass that on22:11
lifelessjames_w: if the module is implicit state in your environment its a bit trickier22:11
lifelessI'd probably use a Fixture + scenarios then22:11
lifelessand have the setup reimport the right thing for you22:12
lifelessand the cleanup replace the original22:12
james_wlifeless: generally it as as the code under test will usually do something like "import json; except ImportError: import simplejson as json"22:12
lifelessso, I'd be tempted to have a local module22:13
lifelessjson_impl22:13
lifelesswhich does from json import * / from simplejson import *22:13
james_whe has one of those actually22:13
lifelessthen replacing just it at runtime is reasonable clean22:14
james_wlifeless: replacing in terms of mucking about with sys.modules?22:15
* james_w has never got that involved in import machinery22:15
lifelesswell22:16
lifelessso lets say there is module A22:16
lifelesswhich does 'import json_impl as json'22:16
lifelessthat means that you have the name json bound to the module currently in sys.modules22:16
lifelessyou have two places you can muck around with22:17
lifelessthe bound name - rebind it to a new json_impl (e.g. directly to simplejson), or22:17
lifelessthe module - change its contents (but not the module object itself)22:17
lifelessdef change_impl(impl):22:18
lifeless    for name in dir(impl):22:18
lifeless        globals()[name] = getattr(impl, name)22:18
lifelessif that existing in json_impl22:18
lifelessexisted22:18
lifelessyou could call22:18
lifelessjson_impl.change_impl(simplejson)22:18
lifelesset voila22:19
james_wgotcha, thanks22:19
lifelessif there are many A's, then mucking with the module contents is easier.22:19
lifelessif there is one A, changing the name binding is easier.22:19
james_wwe may just support one implementation instead, but it's good to know we have this to ensure that both work if we choose to support both22:20
lifelessfairynuff22:21
lifelesswhat are you working on ?22:21
james_wlifeless: the launch-control project with Zygmunt that I think you know a bit about.22:46
ovnicrafthi folks i want to update my repo at N revno is posible this with bzxr pull revno?23:06
ovnicraftbzr*23:08
lifelessjames_w: I'm not sure I do know that one :)23:22
james_wlifeless: a QA dashboard type thing, with automated test results against images23:29
ovnicraftis posible what i want to do?23:30
lifelessjames_w: nice23:32
beunoovnicraft, yes, bzr pull -r REVNO23:32
ovnicraftbeuno, now if i pull without and -r options and i want to back in revno its posible?23:34
beunoovnicraft, sure, you can "bzr revert -r REVNO23:36
ovnicraftbeuno, the revert changes are left as uncommited code?23:42
ovnicraftrevert works fine but when bzr revno show me the latest23:44
maxbovnicraft: Hi, could you restate what exact effect you want to acheive?23:45
ovnicraftrevno at my revert -r REVNO23:46
ovnicraftmaxb, changes as uncommited can be logic23:46
maxb'bzr revert -r X' sets the *content* of the tree to that of revision X, but does not change the tree's idea of what revision it is based on.23:46
maxbIf you want to briefly inspect a previous revision, you probably want 'bzr update -r X' (only fully added in 2.2)23:47
dev001When I 'bzr pull' latest source, I get: Using saved parent location: bzr+ssh://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev/; /usr/lib64/python2.6/site-packages/Crypto/Util/randpool.py:40: RandomPool_DeprecationWarning: This application uses RandomPool, which is BROKEN in older releases.  See http://www.pycrypto.org/randpool-broken23:50
dev001Is this a python issue, or a bzr prob?  the provided link is broken ...23:50
ovnicraftmaxb, i tried bzr update -r X with 2.1.123:51
fullermddev001: It's paramiko fighting with pycrypto.23:52
dev001fullermd: gesundheit!! ;-)23:53
dev001so, which do I fix?23:53
fullermdWell, since pycrypto defines its API, paramiko by definition is the broken one.23:54
fullermdBack at the beginning of the year when the new pycrypto came out and started throwing errors, I just uninstalled paramiko, figuring it might take a few weeks for a fix.23:55
fullermd'course, that was in January...23:55
* dev001 digs around, trying to figure out wtf I need paramiko for ...23:56
fullermdssh/sftp, if it's not using a system-installed (e.g. openssh)23:57
fullermdStill doesn't seem to be a patch in paramiko git  :|23:57
dev001fullermd: beat me to it ... just found the git, and was looking23:57
fullermdThere's an issue filed for it on github frmo a while back too, with no comments.23:58

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