crash while committing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Medium
|
Unassigned |
Bug Description
While committing a large repository I got the error message:
bzr: ERROR: exceptions.
Traceback (most recent call last):
File "/opt/freeware/
return run_bzr(argv)
File "/opt/freeware/
ret = run(*run_argv)
File "/opt/freeware/
return self.run(
File "/opt/freeware/
exclude=
File "/opt/freeware/
result = unbound(self, *args, **kwargs)
File "/opt/freeware/
result = WorkingTree3.
File "/opt/freeware/
result = unbound(self, *args, **kwargs)
File "/opt/freeware/
*args, **kwargs)
File "/opt/freeware/
self.
File "/opt/freeware/
self.
File "/opt/freeware/
content_
File "/opt/freeware/
ie, self.parent_invs, path, self.work_tree, content_summary)
File "/opt/freeware/
self.
File "/opt/freeware/
check_
File "/opt/freeware/
parent_texts, left_matching_
File "/opt/freeware/
left_
File "/opt/freeware/
None, old_texts, new_texts)
SystemError: NULL result without error in PyObject_Call
bzr 1.9rc1 on python 2.5.2 (aix5)
arguments: ['/opt/
encoding: 'ISO8859-1', fsenc: 'ISO8859-1', lang: 'en_US'
plugins:
bzrtools /opt/freeware/
launchpad /opt/freeware/
*** 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.
This appears to be a bug in the _patiencediff_c module. If you delete _patiencediff_c.so it should work around the bug (at the cost of using the slower pure-python code).
Glancing at the _patiencediff_c.c source, I'm guessing the bug is around line 768:
if (self->backpointers == NULL) {
return NULL;
}
If that malloc fails and returns NULL, this function returns NULL without setting a Python error. I think a PyErr_NoMemory(); line needs to be inserted before the return. (or equivalently, that return replaced with "return PyErr_NoMemory();".
Eric, if you could try making that change, recompiling, and testing if it fixes your problem, that would be greatly appreciated. (Well, it'll probably "fix" it by making it raise a proper MemoryError rather than a SystemError, but that's a step in the right direction.)