nickva opened a new pull request, #6210:
URL: https://github.com/apache/couchdb/pull/6210

   Observed a few rare cases of purges being stuck in production
   
   We had the wrong field name in read repair purge checkpoint filter. Before 
we looked up `target_node` in the purge checkpoint docs but it should really be 
`target` (see mem3_rep:purge_cp_body/3). This way every node started at purge 
seq 0.
   
   `pull_purges/5` had the target/source swapped. The checkpoint lives on the 
target so we should always write it from the target's perspective, meaning the 
target is the source and we're the target.
   
   There was an off-by-one error in `have_all_purge_checkpoints/1`
   
   Shards db checkpoints have an undefined range (since they are effectively 
local dbs replicated in special ring topology) and they replicated by name. As 
such they never matched the `{Node, [0, ?RING_END]}` copies so 
`have_all_purge_checkpoints/1` was always false for them.
   
   Fortunately this is easy to fix, and just deleting the checkpoints and 
letting the next internal replication cycle start over from the oldest purge 
seq works.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to