错误: debug/receive 端点对于有效的列表负载返回 500
作者: yifanxiong272创建于 2026年9月2日更新于 2026年9月5日
标签bug
□ 错误描述
调试服务器在 “rdagent/log/server/debug app.py” 中的“/接收”端点有一个明确的分支,用于接收 JSON 信件对象列表:
如果存在( 数据, 列表) :
d 数据:
msgs for frontend [d ["id"]]. append (d ["msg"]) (中文(简体) ).然而,在到达该列表分支之前,处理器无条件地将解析的JSON有效载荷作为字典通过"data ["msg" ["tag"]'.
[Python] 数据 = request.get json () app.logger.info(数据 ["msg"]["tag"])
因此,一个有效的列表有效有效有效载荷在记录期间被像字典一样对待,引起例外,并在列表分支运行前返回HTTP 500.
例如,这种有效载荷:
贾森
[
{
"id":"轨迹一",.
"msg":{(英语:
"塔克":"A" (中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn华文楷体\fs16\1cHE0E0E0}
{
"id":"轨迹一",.
"msg":{(英语:
"上":"乙"作"上".
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
[ . ]返回:
贾森 { "错误":"内部服务器错误" {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
而不是同时附上信件和返回成功。
□ 重现
复制行为的步骤 :
1. 检查RD-Agent ' main ' 犯罪:
页:1
2c878f9d2453dced 35061165786d1f31bbff0ab6 c.- 从源头安装RD-Agent并安装pytest:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? Python - m pip 安装 -e. Python - m pip 安装 pytest
3. 创建 'test/test debug receive msgs list paidload.py' :
```4ZZ
从 radagent.log.server 导入调试 app
def 测试 接收 msgs 接受 list payload():
app = 调试 app.app
客户端=app.test 客户端()
调试 app.msgs for frontend. clear ()
响应=客户端. post(
"/收到,","
json=[
{
"id":"轨迹一",.
"msg":{(英语:
"tag":"A","",".
"内容":{
"价值": 1,
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
{
"id":"轨迹一",.
"msg":{(英语:
"塔克":"B","",".
"内容":{
"价值": 二,
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
[
(中文(简体) ).
坚持回应. status code = 200
表示响应。 get json () ===
"状态":"成功",
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
主张去bug app.msgs for frontend ["trace-1"] ==:
{
"tag":"A","",".
"内容":{
"价值": 1,
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
{
"塔克":"B","",".
"内容":{
"价值": 二,
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
[ . ]- 运行:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
Python - m pytest
测试/ test debug receive msgs list payload.py\
- q (英语).
5. 注意试验失败,因为终点返回了HTTP 500。
□ 预期行为
有效的JSON清单有效载荷应沿用现有的清单分支:
```6ZZ
如果存在( 数据, 列表) :
d 数据:
msgs for frontend [d ["id"]]. append (d ["msg"]) (中文(简体) ).终点应返回:
贾森 { "状态":"成功" {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
加上HTTP 200,每条电文应按顺序附在其相应的 " id " 下。
□ 截图
不适用。 这是一个
. . . . . . .内容来源: microsoft/RD-Agent