hpss data_stream from pack repository has deltas out of order, fails with KnitCorrupt exception
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Critical
|
Martin Pool |
Bug Description
Pulling from one pack repository into another using hpss can fail like this:
File "/home/
possible_
File "/home/
return unbound(self, *args, **kwargs)
File "/home/
run_
File "/home/
return unbound(self, *args, **kwargs)
File "/home/
self.
File "/home/
return unbound(self, *args, **kwargs)
File "/home/
self.
File "/home/
return unbound(self, *args, **kwargs)
File "/home/
pb=nested_pb)
File "/home/
return inter.fetch(
File "/home/
return unbound(self, *args, **kwargs)
File "/home/
pb=pb)
File "/home/
self.__fetch()
File "/home/
self.
File "/home/
self.
File "/home/
(format, data_list, StringIO(
File "/home/
(version_id, parents[0]))
KnitCorrupt: Knit text:tar_
Changed in bzr: | |
milestone: | none → 1.0rc1 |
Changed in bzr: | |
status: | Fix Committed → Fix Released |
The problem is that the knit indexes for pack repositories don't return their versions in compression- topo-sorted order. The data stream code assumes that they do, so it streams out-of-order deltas, and the client crashes trying to apply them.