From 472843a3c2d4d05a98105ae3dd6f808cd39a8247 Mon Sep 17 00:00:00 2001 From: shuangkun tian <72060326+shuangkun@users.noreply.github.com> Date: Sat, 31 Aug 2024 13:59:05 +0800 Subject: [PATCH] fix: don't clean up old offloaded records during save. Fixes: #13220 (#13286) Signed-off-by: shuangkun --- persist/sqldb/offload_node_status_repo.go | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/persist/sqldb/offload_node_status_repo.go b/persist/sqldb/offload_node_status_repo.go index 64fe982e9f2b..0f8964059caf 100644 --- a/persist/sqldb/offload_node_status_repo.go +++ b/persist/sqldb/offload_node_status_repo.go @@ -95,27 +95,8 @@ func (wdc *nodeOffloadRepo) Save(uid, namespace string, nodes wfv1.Nodes) (strin } logCtx.WithField("err", err).Info("Ignoring duplicate key error") } - - logCtx.Debug("Nodes offloaded, cleaning up old offloads") - - // This might fail, which kind of fine (maybe a bug). - // It might not delete all records, which is also fine, as we always key on resource version. - // We also want to keep enough around so that we can service watches. - rs, err := wdc.session.SQL(). - DeleteFrom(wdc.tableName). - Where(db.Cond{"clustername": wdc.clusterName}). - And(db.Cond{"uid": uid}). - And(db.Cond{"version <>": version}). - And(wdc.oldOffload()). - Exec() - if err != nil { - return "", err - } - rowsAffected, err := rs.RowsAffected() - if err != nil { - return "", err - } - logCtx.WithField("rowsAffected", rowsAffected).Debug("Deleted offloaded nodes") + // Don't need to clean up the old records here, we have a scheduled cleanup mechanism. + // If we clean them up here, when we update, if there is an update conflict, we will not be able to go back. return version, nil }