All,
I was testing some clustering code locally and noticed that my
gossip-based state replication was always reporting;
[info] [<0.361.0>] Replication records differ. Scanning histories to
find a common ancestor.
[info] [<0.361.0>] no common ancestry -- performing full replication
I assumed it was my code (since I call couch_rep:replicate directly)
but it wasn't.
it turns out that make_replication_id ignores the port, which was the
only thing that varied when testing a three node system on my laptop.
This caused all the checkpoint documents to get overwritten, forcing
full replication every time.
I'm sure there's a reason ("%% funky algorithm to preserve backwards
compatibility") but I wonder if this could be re-examined? It worries
me that testing multiple couchdb instances locally behaves differently
(actually, incorrectly) than testing multiple couchdb instances on
real, separate hosts.
B.