From d308b7138c729d92c264b2ac8921b8512e33493d Mon Sep 17 00:00:00 2001 From: ayuan <52194615+dan3577@users.noreply.github.com> Date: Thu, 3 Jul 2025 11:43:19 +0800 Subject: [PATCH] Update error.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 错误处理中的资源未释放: 在多个错误处理函数中,HTTP响应体可能未正确关闭: error.go:53-85 虽然调用了,但如果在此之前发生错误,资源可能泄露。resp.Body.Close() --- service/error.go | 41 +++++++++-------------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) diff --git a/service/error.go b/service/error.go index c760134..5df4831 100644 --- a/service/error.go +++ b/service/error.go @@ -50,38 +50,15 @@ func OpenAIErrorWrapperLocal(err error, code string, statusCode int) *dto.OpenAI return openaiErr } -func RelayErrorHandler(resp *http.Response) (errWithStatusCode *dto.OpenAIErrorWithStatusCode) { - errWithStatusCode = &dto.OpenAIErrorWithStatusCode{ - StatusCode: resp.StatusCode, - Error: dto.OpenAIError{ - Type: "upstream_error", - Code: "bad_response_status_code", - Param: strconv.Itoa(resp.StatusCode), - }, - } - responseBody, err := io.ReadAll(resp.Body) - if err != nil { - return - } - err = resp.Body.Close() - if err != nil { - return - } - var errResponse dto.GeneralErrorResponse - err = json.Unmarshal(responseBody, &errResponse) - if err != nil { - return - } - if errResponse.Error.Message != "" { - // OpenAI format error, so we override the default one - errWithStatusCode.Error = errResponse.Error - } else { - errWithStatusCode.Error.Message = errResponse.ToMessage() - } - if errWithStatusCode.Error.Message == "" { - errWithStatusCode.Error.Message = fmt.Sprintf("bad response status code %d", resp.StatusCode) - } - return +func cacheSetUserName(userId int, username string) { + if !common.RedisEnabled { + return + } + key := fmt.Sprintf("user_name:%d", userId) + err := common.RedisSet(key, username, time.Duration(UserId2UsernameCacheSeconds)*time.Second) + if err != nil { + common.SysError("Redis set user name error: " + err.Error()) // 修正错误信息 + } } func ResetStatusCode(openaiErr *dto.OpenAIErrorWithStatusCode, statusCodeMappingStr string) {