Comment 1 for bug 109114

Revision history for this message
Niclas Lindgren (niclas-lindgren) wrote : Re: commit holds whole files in memory

I think the file doesn't have to comparable to the VM, I have a 300MB binary file and python is using up 2GB before crashing due to out of memory.

The reason this is a problem is that we have stored lots of graphics in CVS today

bzr: ERROR: exceptions.MemoryError:

Traceback (most recent call last):
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\commands.py", line 817, in run_bzr_catch_errors
    return run_bzr(argv)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\commands.py", line 779, in run_bzr
    ret = run(*run_argv)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\commands.py", line 477, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\builtins.py", line 2283, in run
    reporter=reporter, revprops=properties)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\decorators.py", line 165, in write_locked
    return unbound(self, *args, **kwargs)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\workingtree_4.py", line 246, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\decorators.py", line 165, in write_locked
    return unbound(self, *args, **kwargs)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\mutabletree.py", line 207, in commit
    revprops=revprops, *args, **kwargs)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\commit.py", line 300, in commit
    self._update_builder_with_changes()
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\commit.py", line 607, in _update_builder_with_changes
    self._populate_from_inventory(specific_files)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\commit.py", line 679, in _populate_from_inventory
    parent_id, definitely_changed, existing_ie)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\commit.py", line 731, in _record_entry
    path, self.work_tree)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\repository.py", line 2133, in record_entry_contents
    ie.snapshot(self._new_revision_id, path, previous_entries, tree, self)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\inventory.py", line 438, in snapshot
    work_tree, commit_builder)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\inventory.py", line 453, in _snapshot_into_revision
    self._snapshot_text(previous_entries, work_tree, commit_builder)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\inventory.py", line 724, in _snapshot_text
    self.file_id, file_parents, get_content_byte_lines, self.text_sha1, self.text_size)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\repository.py", line 2180, in modified_file_text
    self._add_text_to_weave(file_id, new_lines, file_parents.keys())
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\repository.py", line 2196, in _add_text_to_weave
    versionedfile.add_lines(self._new_revision_id, parents, new_lines)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\versionedfile.py", line 148, in add_lines
    return self._add_lines(version_id, parents, lines, parent_texts)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\knit.py", line 736, in _add_lines
    return self._add(version_id, lines[:], parents, self.delta, parent_texts)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\knit.py", line 810, in _add
    access_memo = self._data.add_record(version_id, digest, store_lines)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\knit.py", line 1922, in add_record
    size, sio = self._record_to_data(version_id, digest, lines)
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\knit.py", line 1899, in _record_to_data
    ["end %s\n" % version_id]))
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\tuned_gzip.py", line 330, in writelines
    self.write(''.join(lines))
  File "C:\Program Files\PyGTK\Python\Lib\site-packages\bzrlib\tuned_gzip.py", line 322, in write
    self.fileobj.write( self.compress.compress(data) )
MemoryError

bzr 0.90.0candidate0 on python 2.5.0.final.0 (win32)