[Date Prev][Date Next]
(ITS#4534) test019 failure with sessionlog
Full_Name: Howard Chu
Submission from: (NULL) (188.8.131.52)
Submitted by: hyc
The default syncrepl-master config for test019 has the syncprov-sessionlog
commented out. If it is enabled, the cascaded R2 slave will end up missing a
delete operation. This happens because the R1 slave has its sessionlog enabled
When the sessionlog is enabled, deletes are propagated using syncID sets. The R1
slave receives the delete from the master and correctly deletes on itself.
However, it only received an entryUUID for this delete, and no entryCSN. The
sessionlog operates by recording the current CSN as well as the UUID for an
operation, and determines what to send to a consumer based on these CSNs. Since
no CSN information was available, the delete occurs using the same as whatever
the last contextCSN was. When the R2 slave contacts R1, the delete is not played
out of R1's sessionlog because it's associated with a CSN that R2 already has.
The fix is for syncprov to send a new CSN with the delete syncID sets.