rbd: prevent calling mirror.Resync() if the mirror is syncing

Signed-off-by: Niels de Vos <ndevos@ibm.com>
This commit is contained in:
Niels de Vos
2025-04-15 17:52:30 +02:00
committed by mergify[bot]
parent 04257464bb
commit af4431f60b
3 changed files with 26 additions and 4 deletions

View File

@ -718,7 +718,13 @@ func (rs *ReplicationServer) ResyncVolume(ctx context.Context,
return nil, status.Errorf(codes.Internal, "failed to parse image creation time: %s", sErr.Error())
}
log.DebugLog(ctx, "image %s, savedImageTime=%v, currentImageTime=%v", rbdVol, st, creationTime)
if req.GetForce() && st.Equal(*creationTime) {
syncInfo, sErr := localStatus.GetLastSyncInfo(ctx)
if sErr != nil {
return nil, status.Errorf(codes.Internal, "failed to get last sync info: %s", sErr.Error())
}
if req.GetForce() && st.Equal(*creationTime) && !syncInfo.IsSyncing() {
err = mirror.Resync(ctx)
if err != nil {
return nil, getGRPCError(err)