Out of Memory a bridge too far
Liam Routt
liam.routt at mediasaints.com
Sat Nov 12 01:48:15 UTC 2011
Hey bzr people,
So I think I'm in a position where I finally have to ditch bazaar for
our largely Windows-based development. I guess I'm coming here for any
final suggestions which would allow me to keep using what is
fundamentally a good tool.
My problem is that a number of times this year we've run up against the
"out of memory" error. Sometimes it hits a repository first on commits,
sometimes on updates, but either way it has hit us eventually in almost
every case. The most recent time (yesterday) comes in the midst of our
final month before release, and has ground my entire team to a halt - no
one can check in or out. I have to say, though, that other of our data
has been trapped in a repository which we are unable to checkout or
update (or more importantly, revert) for a while now; thankfully that
hasn't been a critical issue for us - we've been able to protect that
data in other ways.
We, perhaps obviously, have a mixture of source files and data files.
Some of our data is xml, but much of it is in the form of binary data,
including moderate sized Photoshop and Flash files. We have effectively
given up on storing the largest of our Photoshop files in bazaar on more
than one occasion during the year (and been lured back to try it a
number of times).
This weekend I'm coming in to work in order to try to separate out as
many of the binary files from our critical repository as I can. Given
how urgent the situation is, I expect that I will end up simply
abandoning all of the project history and creating a new branch or
repository with the current files. While this isn't going to greatly
hamper us, it will be a major disruption.
In looking into the bugs and discussion about the out of memory problems
which bazaar (and other DVCS) has - and I doubt I've read everything - I
see suggestions that perhaps using 64-bit python on a Windows machine
might help. I'm looking in to doing that, but I'm not heartened by the
very manual nature of the install required, from the documentation on
the website (most of which would not appear to be targeted at the
current stable or beta downloads which are available); at this point I'm
not at all convinced that I can fully identify the right python
dependencies, especially as some seem to be 32-bit-specific, and I can't
tell for certain whether the tools I've been using (like TortoiseBZR)
are included, or I will have to chase them up after I install the rest.
It is further disheartening to realize that these problems I've been
battling for a large part of the year are not new to Bazaar, they are
just not important to the development team. Years have elapsed since
these issues were raised, and all sorts of suggestions which sound as
though they might at least mitigate the problems appear to have gone
unimplemented.
I understand that "its not on the current roadmap for Canonical
sponsored work" (Robert Collins, 06/2010), and that Canonical see bzr as
a tool for versioning of source files only, but I struggle to see how
that is conveyed by the website for the application in any clear way.
There are compelling reasons to use bzr. For me, the sane tracking of
renaming and the treatment of directories as first class objects are
huge advantages over systems I've used in the past, and the clean way in
which bound repositories work has made using bazaar easy enough for the
non-technical people on my team. But encountering severe issues which
make it impossible to keep our data and code in sync, and have on more
than one occasion, now, locked data away in repositories which we can no
longer access even from the machines that checked in the content, leaves
a bad taste indeed.
Just to underline, while I'm disappointed that bazaar is unable to work
well with the binary data we have, I'm most annoyed at repeatedly
getting into situations where we have put data in and are unable to
access it, without any warning at all. That is an unforgivable situation
for any application which claims to be doing version control for
projects, as far as I'm concerned. I believe that at the very least the
bzr team should (finally) make a priority of ensuring that if it can't
deal with data it does not allow it to be checked in (which of course
might ultimately mean that working out how to deal with it is required).
As to my current situation, I'm open to suggestions, if anyone has any.
But at the moment I'm expecting to limp through to the project
completion and then find a tool which will handle what is a common
development situation in a more predictable fashion.
Take care,
Liam Routt
Media Saints
More information about the bazaar
mailing list