/srv/irclogs.ubuntu.com/2006/08/07/#launchpad-meeting.txt

=== ddaa [n=ddaa@nor75-18-82-241-238-155.fbx.proxad.net] has joined #launchpad-meeting
=== ddaa [n=ddaa@nor75-18-82-241-238-155.fbx.proxad.net] has left #launchpad-meeting []
=== ddaa [n=ddaa@nor75-18-82-241-238-155.fbx.proxad.net] has joined #launchpad-meeting
=== SteveA [n=steve@82.109.136.116] has joined #launchpad-meeting
=== spiv [n=andrew@218-214-66-203.people.net.au] has joined #launchpad-meeting
spivddaa: meeting time?12:02
ddaaspiv: yes12:03
mpoolhere?12:03
ddaaSteveA: ping12:03
spivBazaarMeetingAgenda says here.12:03
ddaalifeless: ping12:03
lifelessgnip12:03
SteveAhi12:04
ddaajamesh should arrive soon12:04
=== jamesh [n=james@82.109.136.116] has joined #launchpad-meeting
ddaaMeeting starts12:04
ddaaAgenda12:04
ddaa * roll call12:04
ddaa * production status12:04
ddaa * Smart server12:04
ddaa * SFTP advertising12:04
ddaa * vcs-import knits12:04
ddaa * supermirror branch browser12:04
ddaa * private branches12:04
ddaa * dyson12:04
ddaa * empty hosted branches12:04
ddaa * Python import12:04
ddaa * critical bugs12:04
ddaa * pending sysadmin tasks12:04
ddaa * any other business?12:04
ddaa-----12:04
ddaa* Roll call12:05
ddaaI'm obviously here12:05
mpoolhere12:05
ddaaand all participants too, I see12:05
ddaa * Production status12:05
ddaaNothing new.12:05
ddaahttps://launchpad.net/products/launchpad-bazaar/+bug/5382512:05
ddaaStill spamming launchpad-error-reports. No short term fix expected.12:05
ddaaWhat was the output of the launchpad-infra meeting about oops-from-scripts?12:05
lifelessjamesh: ?12:05
jameshlifeless: yeah?12:05
lifeless^^ do you know :)12:05
jameshddaa: we haven't discussed it yet12:06
ddaaOkay, happy to leave it that way, eventually kiko will grow tired of the spam, but we are not there yet.12:06
jameshI'll be discussing some oops stuff with matsubara today, but I don't know if we'll get to oops-from-scripts12:06
ddaa * Smart server12:07
ddaampool, spiv: report?12:07
mpoolno substantial progress this week12:07
ddaadid not ask last week12:07
mpoolspiv, we should meet this week to pair on it, then i'd like you to do more, if possible12:08
spivmpool: tomorrow?12:08
lifelessworks for me12:08
mpoolddaa: the status is that it's still trying to get all branch/repo tests to pass12:08
mpooltomorrow is ok with me12:08
ddaaOkay, I'll ask again next week.12:08
ddaa * SFTP advertising12:09
ddaajamesh posted draft on launchpad@, I commented, and expect a second draft.12:09
ddaaI would like some feedback from the other guys (mpool, lifeless, spiv) if you have the time. Anybody wants to make a commitment?12:09
jameshI'll post a second draft once I've addressed the problems ddaa mentioned12:09
lifelessno committment, sorry.I've followed the email discussion and it sounds like it will be good12:09
ddaampool: spiv: ?12:10
spivI'm happy to read over the second draft.  I didn't pay close attention to the first one as I was trying to get through the flood of mail that built up during my week of leave :)12:10
ddaa * vcs-imports knits12:11
ddaaScream if you want that done this month, as I have enough things to keep me busy until leave (17th to 25th this month).12:11
mpooldraft looked reasonable12:11
mpoolddaa: what are you working on til then?12:12
lifelessIt would be nice to do it this month. Depending.12:12
ddaampool: I'll tell later, it's on the agenda :)12:12
ddaaOkay, talk again about it at the end of the meeting.12:12
lifelessI think weave branches are now into bad publicity area. 12:12
lifelessright, later12:12
ddaa * Supermirror branch browser12:13
ddaaspiv: what's your delivery estimate? (you promised one a couple of weeks ago).12:13
ddaaspiv: you look a bit overloaded with bzr stuff...12:13
spivddaa: Yeah, I've been switching to focusing heavily on smart server for that moment, so I don't intend to work on the branch browser until that's done.12:14
ddaaOkay, if nobody disagrees, I'll drop the branch browser from the agenda until further notice.12:14
ddaaApparently, nobody disagrees.12:15
ddaa * Private branches12:15
ddaalifeless to reply to review comments. Unless somebody disagree, I'll drop that from the agenda.12:15
lifelessfine12:15
ddaa * Dyson12:15
ddaaProgress on that appears stalled. Unless somebody disagree, I'll drop that from the agenda.12:15
lifelessplease keep it12:15
lifelessjamesh: that is currently with you AIUI12:16
ddaaOkay. Will keep nagging people about Dyson.12:16
lifelessjamesh: is that your understanding?12:16
SteveAThe branch browser is important to me for dealing with bad "trivial" landings on launchpad development.12:16
ddaamh?12:16
SteveAIf spiv can't do it over the next 2 weeks, I'd like to get someone else to do it12:17
jameshlifeless: I got the input from Mark and Scott about it12:17
spivSteveA: The task of setting it up internally is considerably smaller than the larger task.12:17
lifelessSteveA: we can deploy a branch browser for launchpad separately12:17
ddaaSteveA: isn't that something requiring private branches first?12:17
jameshlifeless: I'm not exactly sure how we want to proceed12:17
lifelessSteveA: thats trivial12:17
spivddaa: not involving launchpad at all.12:17
lifelessjamesh: ok, after this meeting, lets talk in #launchpad and get you unblocked.12:17
jameshlifeless: I probably won't have time to work on it this week either way.12:18
lifelessSteveA: I'm completley happy for you to get someone else to do the lp browser instance. If you have someone who can do one for the supermirror too, that would be great.12:18
SteveAif it is trivial, can ew get it done this week?12:18
ddaaspiv: SteveA: okay but that meeting item was about the launchpad branch browser. Having a non-launchpad one for rocketfuel is an infra-team thing AIUI.12:18
SteveAok12:19
SteveAddaa: "Dyson"12:19
SteveAI forget what that is again12:19
lifelessSteveA: I will get a core instance up and running and email rt for admin foo, after that its up to you12:19
lifelessSteveA: upstream release tarball scanner12:19
SteveAI asked last meeting for more descriptive names for "Dyson" and "Roomba"12:19
SteveAand mpool seconded12:19
ddaaSteveA: creating product releases automatically off tarballs found on the internet.12:19
spivddaa: Well, having the internal one was a stepping stone to the larger one.12:20
lifelessyes, dyson was scotts invention. roomba as mine12:20
ddaaroomba -> soon-eradicated-importd-autotester12:20
lifelessspiv: overengineering IMO. one sec12:20
SteveAjamesh has offered to do the launchpad browser12:20
SteveAthat issue is closed now, thanks12:20
ddaadyson -> tarball-spider ?12:21
SteveAimportd-autotester adn tarball-spider12:21
SteveAfine12:21
ddaaMoving on.12:21
ddaa * Empty hosted branches12:22
ddaaIt occured to me that fixing https://launchpad.net/products/bzr/+bug/30576 (bzr push to an extant non-branch directory fails horribly)12:22
ddaawas only half of the fix. The other half would be fixing 12:22
ddaahttps://launchpad.net/products/launchpad-bazaar/+bug/51130 (cannot use +admin on a branch I own)12:22
ddaaand https://launchpad.net/products/launchpad-bazaar/+bug/34540 (cannot delete a branch),12:22
ddaaI plan to fix 51130 before leave.12:22
ddaaThat said, I'll drop this item from the agenda.12:22
ddaa * Python import12:22
ddaabad news12:22
ddaaKeeps failing in mid-course with a pysvn._pysvn.ClientError on PROPFIND "Could not resolve hostname `svn.python.org': Host not found (http://svn.python.org)".12:23
ddaaIt's not clear what's the cause of the problem, but I guess fixing it would involve:12:23
ddaa- either import from svn dump (in importd)12:23
ddaa- or replacing uses of pysvn by python-subversion in the critical sections (in cscvs), I expect that would give us better control on network usage.12:23
ddaaI would like to have this sort of change done _after_ removing Arch support from the corresponding component.12:23
ddaaIn other words, we're not going to have it this month unless it's made a top priority.12:23
mpooli'd be a bit unhappy to have it deferred so long12:24
ddaaIn still other words, our svn import stuff sucks badly.12:24
mpooli think you should consider it a key test case12:24
ddaa*sigh* test case fails, cscvs is not robust, old news12:24
ddaaThough, fixing that in importd could be done without having to deal with Arch12:25
mpoollifeless: what's your opinion?12:25
lifelesswork on concrete user visible goals12:26
lifelessif there is interest in python in bzr-svn copy, then work on making it work12:26
ddaasince that would be part of the "set up source tree for cscvs" code, which is target-independent12:26
lifelessI think diagnosing the cause is important too12:27
lifelesspython-subversion was a PITA to work with 18 months ago12:27
lifelessif it has improved, great.12:27
mpoolddaa: so it always failes with "host not found"? 12:28
mpoolhow odd12:28
ddaaat random points in the conversion12:28
mpoolok, we should take this to mail...12:28
ddaanot at the start12:28
ddaawant me to write email about it?12:28
ddaaokay, will do12:29
ddaa * Critical bugs12:29
ddaaNo concrete change.12:29
ddaa- Cannot set branch associated to a product series. https://launchpad.net/products/launchpad-bazaar/+bug/3130812:29
ddaalifeless to write spec12:29
ddaa- renaming project, product or series breaks vcs imports. https://launchpad.net/products/launchpad-bazaar/+bug/3789712:29
ddaaHave design and done preimpl call. My current top priority. Still expecting lifeless to brain dump about uploading/downloading cscvs source trees on remote servers.12:29
ddaa- cannot use +admin on a branch I own. https://launchpad.net/products/launchpad-bazaar/+bug/5113012:29
ddaaI plan to fix that before leave as part of ongoing plan to have fun improving user-visible stuff.12:29
ddaampool: that answers your earlier question about my current coding focus12:30
ddaalifeless: please give me that braindump, I value your input on that design.12:30
lifelessok12:30
mpoolddaa: ok12:30
mpool(can i retitle that? bug 51130)12:31
ddaayeah, the title has gone wrong12:31
mpooldone12:31
ddaathe expected fix is to delete +admin and move its contents to +edit12:31
ddaaunless I change my mind12:31
lifelessSteveA: browser is up and running12:32
ddaa* Pending sysadmin tasks12:32
ddaa* Any other business?12:32
SteveAlifeless: cool!  URL please12:32
lifelesson sodium, http://localhost:8088/ 12:32
SteveAso, RT needed to expose externally12:33
lifelessthis is a minimal config, we can add multiple branches, etc in the future.12:33
spivlifeless: can't you run it as a cgi out of your homedir?12:33
lifelessI'd like you to RT it12:33
lifelessspiv: use case - trivial - done. fancy-pants-high-performance can wait for the supermirror code alterations12:33
mpooljust to check something from before - jamesh will be working on the branch viewer?12:33
ddaa* vcs-imports knits, should that be set as a top priority for that month?12:34
spivlifeless: running as a cgi is hardly a performance booster ;)  But ok.12:34
jameshwas going to work on the one for launchpad's branches (which lifeless seems to have up and running).  Not sure about the supermirror one12:34
lifelessSteveA: I'd like you to RT it please, choose where you would like it to exposed etc. I've put it up immediately because that fulfils your requirements immediately.12:34
SteveAlifeless: sure.  i'll do that. ta12:34
lifelessnp12:34
lifelesswe aim to please12:35
lifelessits running as the PQM user. at this point if sodium is rebooted it will go away.12:35
lifelesswe can refactor the implementation later to be better as needed.12:35
jameshlifeless: so that's just the main rocketfuel branch.  I think we want other branches too (I suppose that can be done later)12:35
ddaajamesh: looks like the one for rocketfuel was grabbed by lifeless :)12:35
lifelesswell, I did mean it was trivial.12:36
ddaaFocus, please.12:36
lifelessSteveA: please file bugs on the launchpad-development-infrastructure product with things you want changed in the browser - branches to show etc.12:36
=== lifeless winds that up
ddaaSo, SteveA request was granted, take deployment details on after meeting.12:36
lifelessknits - IMO its a priority12:37
ddaaIs that more important than fixing 51130?12:37
mpoolconverting existing weave branches to knits?12:37
mpoolwhy is it difficult?12:38
lifelesstheres 500 to do12:38
lifelesseach has to be done in two places12:38
ddaasome of them stupidly large12:38
ddaado not want to do that manually12:38
ddaaso need to be implemented as transition automation in importd12:38
ddaaso, not difficult per see, just a significant coding task12:39
ddaaWaiting for opinion on whether I should drop one of my current tasks for that, or on somebody to provide extra workforce.12:40
lifelessI'd like to get it done and out of the way12:41
lifelessmpool: your thoughts?12:42
mpoolwell, i can't judge how much work it woul dbe12:42
mpooli mean, even if there are many of them surely it should be just a couple dozen lines of shell at most?12:43
ddaampool: we do not want shell12:43
mpoolbut i would not want someone actually using the weave branches - they will be awfully slow over http12:43
ddaawe want that in importd because it's a shared resource issue and format upgrade is a recurrent task12:43
lifelessmpool: unless you shut down the entire system while you do it you need to lock/unlock the branch being converted at the scheduler level12:43
lifelessmpool: you also need urls from launchpad12:44
ddaaand doing that sort of thing in shell is a LARGE pita because it needs to be distributed on many systems.12:44
mpooli'm not actually suggesting shell, just saying that what actually runs is conceptually small12:45
mpoolso i wonder if there is any lazier way to do it?12:45
ddaaBTW, fixing 51130 would make it easy to temporarily shut down importd-autotest with importd-production so we get maximal horsepower for the conversion.12:45
mpoole.g. i'd rather shut down imports for 24-48 hours than have david spend a week writing this12:45
ddaas/shut down/merge12:45
ddaampool: who do you think would spend 48 setting up, testing, and babysitting the upgrade hack?12:46
lifelesssee I dont understand why its more than 2 lines of python12:46
lifelessbut thats a different discussion. lets have that post meeting12:47
lifelessmpool: lets talk priorities now, not costs12:47
ddaadoes the spec I wrote look like more than two lines of python?12:47
lifelesslets talk after the meeting12:47
ddaaOkay, so issue still open.12:47
lifelessthe discussion right now should be priorities IMO12:47
mpoolok, so12:48
ddaaAnd meeting time is over.12:48
lifelessmpool: I think eliminating weaves is importnt12:48
mpoolafter the meeting, dda, robert, mbp to talk about ddaa's suffering12:48
ddaata, it's not whining, it's good use of programmer's time12:48
ddaaMeeting over12:49
ddaaI'm out for a small break.12:50
mpoolback in 10 say?12:51
ddaampool: I'm back01:02
mpoolback01:04
ddaahttps://launchpad.canonical.com/VcsImportsKnitsUpgrade01:04
ddaaThere appears to be a single import in STOPPED mode, and I'm not sure it should not be syncing instead01:06
ddaaso we can drop the provisions for STOPPED in that spec01:07
mpoolwhat does that mean?01:07
mpooli mean, what does "stopped" mean?01:07
ddaait means "was once in sync, is published, but is no longer updated"01:07
ddaamainly so we do not get distracted by errors of things that we know will fail for reasons we cannot fix (like the repository went away)01:08
ddaathat comes from there https://launchpad.canonical.com/SourceSourceRefactoring01:09
ddaalook at the bottom of the page01:09
ddaaalso look for ImportStatus in canonical/lp/dbschema.py01:10
mpooli see01:10
mpooland the public server pulls from the internal http server01:11
ddaayes01:11
mpoolbut if the branch already exists on the public server, how will the upgrade propagate?01:11
mpoolpull does not do an upgrade01:11
mpooliirc01:11
ddaahttps://launchpad.canonical.com/VcsImportsKnitsUpgrade01:11
lifelessI will comment, but I have to finish a meeting first01:12
mpooloh i see, right01:12
mpoolit's not doing a regular pull01:12
ddaaif an upgrade is needed, importd will 1. pull 2. upgrade locally 3. recursive delete remote branch 4. push before running cscvs01:12
mpool"01:12
mpoolThe branch-puller preserves changes in branch format, so format changes on the vcs-imports internal publication server will be propagated to  http://bazaar.launchpad.net."01:12
ddaampool: that issue has been addressed already01:12
mpoolright but how does the branch-puller do that?01:12
ddaaif the branch puller sees that the source and the target have different formats (in any way), it will delete the target and do a branch from scratch.01:13
mpoolok01:13
mpoolso the branch will just disappear from b.lp.n until the upgrade is pulled across?01:14
mpooli guess that's ok01:14
ddaayes01:14
ddaamaybe there's some special provision to reduce the window of loss of service, but it's not really important01:14
spivAfter all, one of the nice things about distributed version control is that temporary outages aren't totally disruptive.01:15
ddaaso, it might very well be that the required changes to importd are small01:15
ddaabut I'm not fluent in bzrlib01:16
ddaaand there tends to be annoying integration issues in importd01:16
ddaaso it's not a low risk task01:16
ddaaI'd say medium risk01:16
mpooli don't think the interruption is a big deal, i just wondered01:16
mpoolone other question: presumably all of this is backed up?01:17
ddaaThere's also the fact that the conversion is expected to be a big deal processing wise01:17
mpoolso if something goes wrong and it starts deleting branches...01:17
mpool?01:17
ddaamh...01:17
ddaadunno, I expect it is backed up... but access to the repositories are quite restricted01:17
ddaaand it's a bit hard to go _that_ wrong01:18
ddaaso, big deal processing wisu01:18
ddaadefinitely not something you want to run on a single system01:18
mpooli think it'd be sensible to check before starting01:18
mpoolthe spec looks reasonable to me01:18
ddaaI do end-to-end tests with the whole system on my workstation before deployinh disruptive code like that01:19
ddaaThere's usually a minor tweak or two needed when deploying things, but there was never a major disaster.01:19
mpoolcool01:20
ddaaSo, you want multiple systems running the stuff01:20
ddaathat turns a small one-off hack into a relatively large mess01:20
ddaaand format conversion is not one-off01:21
ddaait's going to happen again in the future01:21
mpoolyeah, it makes sense01:21
mpoolso, essentially we are trying to prioritise the upgrade spec against01:21
mpool- unjamming the python import01:21
mpool- cleanups of arch code01:21
mpoolwhat else?01:22
ddaa- critical fixes I'm working on now01:22
mpoolok01:22
ddaaI particular, I think it makes sense to do the upgrade thing after fixing https://launchpad.net/products/launchpad-bazaar/+bug/3789701:23
mpoolso it looks like the upgrade mechanism is largely independent of other things - e.g. removing arch dependencies won't make it much easier, or vice versa?01:23
ddaabecause that will allow use to handle the load by putting all four importd systems (including the ones currently running autotest) temporarily in importd-production01:23
ddaaI'm happy to proritise that before arch cleanups.01:24
ddaasince it can be put into the bzr-specific code that gets the target branch01:24
ddaamight not be the optimal way to organise the code, but that would avoid messing up the pattern of arch/bzr testing01:25
mpoolok01:26
mpoolwell, let's see what robert says01:26
=== ddaa realises that putting all importd in production will require some admin operation to set up ssh keys and db access, but that should not be a big deal
ddaalifeless can give support to the relevent requests01:27
ddaaAnd it's something I'll need eventually, since I want to remove the need for importd-autotest altoghether (we can now to that since we no longer have to deal with arch namespace issues)01:29
lifelessok01:29
lifelessI'm back01:30
lifelesswhere are we up tp?01:30
ddaaneed your input or prioritizing knits upgrade01:31
lifelessok01:32
lifelessso I was going to ask01:32
lifelessisn't the upgrade as simple as invoking bzr upgrade via python *always* on every branch ?01:32
lifelessinvoke it on both the local branch and the remote one, before pulling etc etc01:33
ddaahu01:33
ddaaremote upgrade?01:33
ddaait's on LAN, but still...01:33
ddaaif we put it down to that, it will be indeed just a couple of lines of code01:34
ddaasince we currently download the branch anew for every sync01:35
ddaabut really do not like the idea01:35
ddaafor example, how will "bzr upgrade" behave if the first upgrade is interrupted (process killed, loss of connection), and we try to run a second one?01:36
ddaaBTW, need to make a bug importd not breaking sftp locks01:37
ddaait should be able to do that01:37
lifelessbzr upgrade takes a backup copy of data. It marks the branch as being in-upgrade01:38
lifelessso it will need manual recovery- but this is IMO better than the failure mode of the upgrade you proposed01:38
lifelesswhere it will have no data remotely, and no data locally (because it will be trying to pull anew)01:39
ddaagn?01:39
ddaaremote data would only be deleted after a successful local upgrade01:39
ddaaoh right01:39
lifelessif we download the branch anew each time, my suggestion is just 'invoked bzr upgrade on the remote branch before pulling it'01:39
=== ddaa wrote that spec before reading about crash-only software
lifelesswhich should be trivial to implement, and result in automatic upgrades as we change the defaults01:40
ddaaWhat does importd need to do to recover from an interrupted upgrade?01:40
lifelesswell, there are two failure types01:41
lifelessa) bzr bugs01:41
lifelessb) network glitch01:41
ddaac) kernel upgrade01:41
lifelessfor b), its - rm -rf the .bzr dir, and move .bzr.backup to .bzr01:41
lifelessc) counts as b)01:41
ddaaanh other variants of c, like importd upgrade01:41
ddaayeah01:41
lifelessfor a), you need to diagnose it and work with the bzr devs to get the upgrade to work01:42
ddaahow can you automatically detect b?01:42
lifelessIMO you should treat them all as a), because theres no magic way to tell what caused the failure01:42
ddaayou realise that "needs manual diagnostic" for import pretty much means "will not be fixed"01:43
lifelessis jamesh's log analysis stuff rolled out for importd ?01:43
ddaaI ran it once01:43
lifelessif so, then this should be marked clearly in that report01:43
ddaabut not again, because there were just too many failures to deal with01:44
lifelessand as any bug in this stuff is of critical importance to bzr, I dont agree that needs manual diagnostic means 'will not be fixed' 01:44
ddaaand there was no easy way to classify them01:44
mpoolok, well01:45
mpooli'd like to call it a night...01:45
lifelessjamesh: is there something that could be easily done to make flagging failed upgrades stand out hugely in your log analyser for importd ?01:45
lifelessmpool: what time for spiv and I tomorrow ?01:45
mpoolpresume you're coming here?01:46
mpoolafter 10?01:46
lifelessI presume that too01:46
lifelessk01:46
lifelessspiv: ^?01:46
ddaalifeless: does bzrlib gives a specific exception when trying to upgrade a branch that failed upgrade already (and is thus marked upgrade-in-progress)?01:46
lifelessddaa: yes 01:46
ddaaokay, that should be easy to grep for01:47
lifelessddaa: UnknownFormat01:47
mpoolwhat effect does an ascii del have on a spiv? i hope it doesn't kill him :-)01:47
lifelessddaa: or ~ that - check bzrlib/errors.py ;)01:47
lifelessddaa: ok, does this sound like a workable plan then ?01:47
ddaaSounds workable.01:48
ddaaThen _when_ ?01:48
lifelessok, cool.01:48
lifelessyesterday :)01:48
ddaaASAP, or when we can put all our cpus on it?01:48
lifelessIMO ASAP. upgrade will chew through over a couple of days01:48
lifelessno need for massive parallisation01:49
lifelessit wont block all imports indefinately, because each import will block just long enough to upgrade, then do a pull from CVS01:49
ddaayeah01:49
lifelessok, gnight then01:50
ddaaonce we get in the tail of the exponential distribution, (the 5 biggest branches), the other imports should be allowed to sync again01:50
ddaalifeless: BTW01:51
ddaajamesh appears to busy to review my last importd-bzr-native01:51
lifelessddaa: not the case01:51
ddaaokay01:51
lifelessddaa: was discussed in the review meeting, see irc logs or lp-reviews01:52
lifelessgnight01:52
ddaanigh01:52
ddaanight01:52
=== ddaa -> lunch
spivmpool, lifeless: soon after 10 sounds good to me.02:14

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