The unified diff between revisions [2ab69b94..] and [81547f3e..] is displayed below. It can also be downloaded as a raw diff.
#
#
# patch "netsync.cc"
# from [2158f0f1f9e8f5e83aa4a5dfefa05d104bdb0a0e]
# to [c844ce2712760403c5c4e9a24fa81c6d08085eee]
#
============================================================
--- netsync.cc 2158f0f1f9e8f5e83aa4a5dfefa05d104bdb0a0e
+++ netsync.cc c844ce2712760403c5c4e9a24fa81c6d08085eee
@@ -3714,28 +3714,21 @@ ancestry_fetcher::traverse_manifest(mani
// handle the manifest forward-deltas
if (!null_id(parent_man)
+ // don't update child to itself, it makes the loop iterate infinitely.
+ && !(parent_man == child_man)
&& fwd_manifest_deltas.find(child_man) != fwd_manifest_deltas.end())
{
// We're traversing with child->parent of A->B.
// Update any forward deltas with a parent of B to
// have A as a parent, ie B->C becomes A->C.
- L(F("inserting manifest rev_deltas"));
for (multimap<manifest_id,manifest_id>::iterator d =
fwd_manifest_deltas.lower_bound(child_man);
d != fwd_manifest_deltas.upper_bound(child_man);
d++)
{
- L(F("here %s,%s") % d->first % d->second);
- }
- for (multimap<manifest_id,manifest_id>::iterator d =
- fwd_manifest_deltas.lower_bound(child_man);
- d != fwd_manifest_deltas.upper_bound(child_man);
- d++)
- {
L(F("size %d\n") % fwd_manifest_deltas.size());
L(F("inserting %s->%s") % parent_man % d->second);
fwd_manifest_deltas.insert(make_pair(parent_man, d->second));
- L(F("erasing %s,%s") % d->first % d->second);
}
fwd_manifest_deltas.erase(fwd_manifest_deltas.lower_bound(child_man),