HAMMER VFS - Fix serious bug when downgrading (and later upgrading) a PFS
* When downgrading a PFS master to a slave the sync-end-tid (in the
pfs-status) is not updated. This will cause the data to become
inaccessible.
Then, when upgrading back to a master the original stale sync-end-tid
is used to rollback the PFS, effectively destroying its contents.
* We now properly update sync-end-tid when downgrading a PFS. This
makes the data accessible in slave mode and prevents the rollback
when re-upgrading the PFS from destroying any of the master's original
data.
* Why is a rollback used at all when upgrading you ask? When a PFS is
operating as a slave mirroring operations can be interrupted, leaving
a lot of partially updated records. Since sync-end-tid is not updated
until the mirroring operation completes (when in slave mode), these
partially mirrored records are not visible.
However, if the slave is upgraded to a master any records from
incomplete mirroring operations must be destroyed. Hence the rollback
during an upgrade is a necessary feature under normal operation.
Reported-by: Thomas Nikolajsen