fix(ops): avoid single-insert fallback after batch failure

This commit is contained in:
wucm667
2026-08-17 10:52:57 +08:00
parent 396a9d1130
commit 5f19433103
2 changed files with 5 additions and 14 deletions
+2 -11
View File
@@ -439,17 +439,8 @@ func (s *OpsService) RecordErrorBatch(ctx context.Context, entries []*OpsInsertE
}
if _, err := s.opsRepo.BatchInsertErrorLogs(ctx, prepared); err != nil {
log.Printf("[Ops] RecordErrorBatch failed, fallback to single inserts: %v", err)
var firstErr error
for _, entry := range prepared {
if _, insertErr := s.opsRepo.InsertErrorLog(ctx, entry); insertErr != nil {
log.Printf("[Ops] RecordErrorBatch fallback insert failed: %v", insertErr)
if firstErr == nil {
firstErr = insertErr
}
}
}
return firstErr
log.Printf("[Ops] RecordErrorBatch failed: %v", err)
return err
}
return nil
}
@@ -69,7 +69,7 @@ func TestOpsServiceRecordErrorBatch_SanitizesAndBatches(t *testing.T) {
require.False(t, second.CreatedAt.IsZero())
}
func TestOpsServiceRecordErrorBatch_FallsBackToSingleInsert(t *testing.T) {
func TestOpsServiceRecordErrorBatch_DoesNotFallbackToSingleInsertsWhenBatchFails(t *testing.T) {
t.Parallel()
var (
@@ -92,9 +92,9 @@ func TestOpsServiceRecordErrorBatch_FallsBackToSingleInsert(t *testing.T) {
{ErrorMessage: "first"},
{ErrorMessage: "second"},
})
require.NoError(t, err)
require.Error(t, err)
require.Equal(t, 1, batchCalls)
require.Equal(t, 2, singleCalls)
require.Zero(t, singleCalls)
}
func TestOpsServiceRecordErrorPersistsExplicitAccountAuthStatusZero(t *testing.T) {