in controllers/seataserver_controller.go [357:378]
func (r *SeataServerReconciler) recordError(ctx context.Context, prKey client.ObjectKey, errorType seatav1alpha1.ServerErrorType, errMsg string, err error) error {
r.Log.Error(err, errMsg)
return retry.RetryOnConflict(retry.DefaultRetry, func() error {
newError := seatav1alpha1.SeataServerError{
Type: errorType.String(),
Message: errMsg,
Timestamp: metav1.Now(),
}
toUpdate := seatav1alpha1.SeataServer{}
err := r.Get(ctx, prKey, &toUpdate)
if err != nil {
r.Log.Error(err, "get seata server object error ", "prkey", prKey)
return err
}
// save recently `MaxErrorRecords` error
if len(toUpdate.Status.Errors) >= MaxRecentErrorRecords {
toUpdate.Status.Errors = toUpdate.Status.Errors[1:]
}
toUpdate.Status.Errors = append(toUpdate.Status.Errors, newError)
return r.Status().Update(ctx, &toUpdate)
})
}