pruner: handle replication cursor being older than any snapshot correctly

This commit is contained in:
Christian Schwarz 2018-10-12 15:29:07 +02:00
parent cb83a26c90
commit 9bb7b19c93

View File

@ -402,7 +402,17 @@ fsloop:
sort.Slice(tfsvs, func(i, j int) bool {
return tfsvs[i].CreateTXG < tfsvs[j].CreateTXG
})
preCursor := true
haveCursorSnapshot := false
for _, tfsv := range tfsvs {
if tfsv.Type != pdu.FilesystemVersion_Snapshot {
continue
}
if tfsv.Guid == rc.GetGuid() {
haveCursorSnapshot = true
}
}
preCursor := haveCursorSnapshot
for _, tfsv := range tfsvs {
if tfsv.Type != pdu.FilesystemVersion_Snapshot {
continue
@ -413,6 +423,7 @@ fsloop:
l.WithError(pfs.err).Error("")
continue fsloop
}
// note that we cannot use CreateTXG because target and receiver could be on different pools
atCursor := tfsv.Guid == rc.GetGuid()
preCursor = preCursor && !atCursor
pfs.snaps = append(pfs.snaps, snapshot{