diff --git a/management/server/peer.go b/management/server/peer.go index 235d252b8..0af76ea60 100644 --- a/management/server/peer.go +++ b/management/server/peer.go @@ -754,9 +754,6 @@ func (am *DefaultAccountManager) SyncPeer(ctx context.Context, sync types.PeerSy if updated { am.metrics.AccountManagerMetrics().CountPeerMetUpdate() log.WithContext(ctx).Tracef("peer %s metadata updated", peer.ID) - if err = transaction.IncrementNetworkSerial(ctx, store.LockingStrengthUpdate, accountID); err != nil { - return err - } if err = transaction.SavePeer(ctx, store.LockingStrengthUpdate, accountID, peer); err != nil { return err } @@ -766,6 +763,13 @@ func (am *DefaultAccountManager) SyncPeer(ctx context.Context, sync types.PeerSy return err } } + + if isStatusChanged || sync.UpdateAccountPeers || (updated && len(postureChecks) > 0) { + if err = transaction.IncrementNetworkSerial(ctx, store.LockingStrengthUpdate, accountID); err != nil { + return err + } + } + return nil }) if err != nil { @@ -894,14 +898,15 @@ func (am *DefaultAccountManager) LoginPeer(ctx context.Context, login types.Peer } if shouldStorePeer { - if err = transaction.IncrementNetworkSerial(ctx, store.LockingStrengthUpdate, accountID); err != nil { - return err - } if err = transaction.SavePeer(ctx, store.LockingStrengthUpdate, accountID, peer); err != nil { return err } } + if updateRemotePeers || isStatusChanged || (isPeerUpdated && len(postureChecks) > 0) { + err = transaction.IncrementNetworkSerial(ctx, store.LockingStrengthUpdate, accountID) + } + return nil }) if err != nil {