web服务异常错误排查

37 阅读1分钟

问题说明

在查看web服务的错误日志时,每隔一段时间都会有几条奇怪的错误日志,错误日志中打印了请求正常处理之后的response body数据。

{
    "log_type": "webREQUESTLOG",
    "member_id": 123,
    "real_ip": "1.1.1.1",
    "user_agent": "Mozilla/5.0 (iPad; CPU OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
    "request_method": "GET",
    "request_url": "/room/user/live_info?member_token=123&live_room_id=123",
    "request_body": "",
    "response_status": 500,
    "response_body": "{"user_info":{"member_token":"123","nickname":"知乎用户","avatar_url":"xxx","uid":"xxxxx"},"fans_club_info":{"name":"奶奶","grade":0},"level":{"bg_img":"","grade":0,"icon":""}}\ncontext canceled\n",
    "execution_time": 24,
    "x_app_za": "OS=iOS&xxxxx=yyyyy"
}

response_body字段,它已经是处理完之后的组装数据了,在该字段最后,有两个单词context canceled,这意味着句柄被取消了。
execution_time是毫秒级,不应该是context处理超时导致的cancel。

deepseek给的解释是请求方主动cancel了请求:

image.png

这种问题暂时无解,只是有几条异常但又正常的日志,不了解的人,很影响判断。