[merge][1.6][#234748] fix KnitCorrupt error in check on bzr.dev
Martin Pool
mbp at canonical.com
Wed May 28 07:57:54 BST 2008
Happily to say the repository is not corrupt (and this is an
increasingly poorly-named error) but there is a bug in the knit code
for extracting several values at a time.
The basic problem is of memory aliasing; we have a dict pointing to
the contents of other file text and accidentally mutate a list within
it. The previous code tried to protect against this but failed. The
main point is that calling .text() on a KnitContent object will
already take trailing eols into account so no special handling is
needed here.
I'd kind of like to remove more of the special-casing here of
extraction of multiple files, but I guess it is there as an
optimization so shouldn't be done without measurement.
Thanks very much to spiv for tracking this down with me.
This still needs a test and news entry but I thought I'd put up the
core fix now.
--
Martin <http://launchpad.net/~mbp/>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 234748-check-failure.diff
Type: text/x-diff
Size: 2618 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080528/5c94ce49/attachment.bin
More information about the bazaar
mailing list