Details
-
Improvement
-
Resolution: Done
-
Major - P3
-
3.0.4, 3.1.5
-
None
-
Fully Compatible
-
RPL 6 07/17/15
-
0
Description
This was not a problem until recently, as the producer thread would wait for all ops to be applied before looking for a new sync source (last fetched == last applied). However, to resolve a potential deadlock between the producer thread and applier thread, that wait was removed.
As a result, a node could have ops in its buffer when it choose a new sync source, apply those ops, and then receive those recently applied ops from its sync source which would cause the node to rollback and fassert.