MemoryError in groupcompress to_bytes during commit of large tree
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Medium
|
Unassigned |
Bug Description
$ export CVS_RSH=ssh
$ export <email address hidden>:/cvsroot
$ cd ~/bazaar
$ cvs export -r netbsd-5-0-RELEASE -d netbsd-5.0 src
(Now go drink 10 cups of tea)
$ cd netbsd-5.0
$ bzr init --2a
Created a standalone tree (format: 2a)
$ bzr add
(Wait. There was one ignored file on my system)
$ bzr ignored
usr.bin/
$ bzr add usr.bin/
adding usr.bin/
$ ulimit -d
262144
$ bzr commit -m "Initial commit."
[---]
added x11/tools/
aborting commit write group: MemoryError("Can't allocate memory to compress data",)
bzr: ERROR: exceptions.
Traceback (most recent call last):
File "/usr/pkg/
return the_callable(*args, **kwargs)
File "/usr/pkg/
ret = run(*run_argv)
File "/usr/pkg/
return self.run(
File "/usr/pkg/
exclude=
File "/usr/pkg/
result = unbound(self, *args, **kwargs)
File "/usr/pkg/
result = WorkingTree3.
File "/usr/pkg/
result = unbound(self, *args, **kwargs)
File "/usr/pkg/
*args, **kwargs)
File "/usr/pkg/
self.
File "/usr/pkg/
self.work_tree, self.basis_revid, iter_changes):
File "/usr/pkg/
file_id, lines, heads, nostore_sha)
File "/usr/pkg/
check_
File "/usr/pkg/
nostore_
File "/usr/pkg/
flush()
File "/usr/pkg/
bytes = self._compresso
File "/usr/pkg/
self._z_content = compress(
MemoryError: Can't allocate memory to compress data
bzr 1.16.1 on python 2.5.4 (netbsd4)
arguments: ['/usr/
encoding: '646', fsenc: '646', lang: None
plugins:
bzrtools /usr/pkg/
launchpad /usr/pkg/
netrc_
*** Bazaar has encountered an internal error.
Please report a bug at https:/
including this traceback, and a description of what you
were doing when the error occurred.
$ rm -Rf .bzr/
$ bzr init --2a
Created a standalone tree (format: 2a)
$ bzr add
(Wait. There was one ignored file on my system)
$ bzr ignored
usr.bin/
$ bzr add usr.bin/
adding usr.bin/
$ ulimit -d 524288
$ ulimit -d
524288
$ bzr commit -m "Initial commit."
[---]
Committed revision 1.
(Runs ok!)
So, bzr uses a very large amount of memory during the commit phase. I ran top during the commit, and the python process appears to be using something just over 256MB, so 512 is a little bit excessive. But, IMHO, 256MB should have been more than enough.
Running NetBSD/amd64 4.0 with:
$ bzr --version
Bazaar (bzr) 1.16.1
Python interpreter: /usr/pkg/
Python standard library: /usr/pkg/
bzrlib: /usr/pkg/
Bazaar configuration: /home/jan/.bazaar
Bazaar log file: /home/jan/.bzr.log
tags: | added: check-for-breezy |
I'd be curious to know if this is any better for you in 2.1? We did land some memory use improvements that may have helped this case.