[缺陷] SYB 货运单列表尾页请求超时:只读对照定位与最小修复 #240

Open
opened 2026-09-08 09:17:36 +08:00 by ila · 2 comments
Owner

目标与事实

关联 #239,解决尾页请求超时来源,不混入逐页保存/状态改造。线上近 48 小时分页超时集中在最后不足 50 条的页面;前序整页可返回。错误为等待 HTTP 响应头超时。已有每次 60 秒、最多 3 次、间隔 1/2 秒的只读请求重试;全任务 30 分钟。09:05 的自然调度成功,不能宣称永久网络或登录故障。

方案与依赖

  1. 先只读核验当前 SYB 网页/既有 HAR 参数和服务端 listPayload,比较 length/start/pageIndex/pageTotal/查询排序等,禁止提前假设某个参数错误。
  2. 使用现有有效会话做少量串行只读查询对照,限定请求次数/超时;无有效会话则停止并说明,不擅自更新登录配置或触发完整同步。仅保留状态码、耗时、条数、唯一计数等脱敏结构证据,不保存原始响应。
  3. 请求耗时按尾页与邻近整页对比;有证据后最小修复参数或有界只读恢复策略。没有确定根因时不得盲目加超时/重试或跳过尾页。
  4. 根因若证明需扩展接口/安全/数据边界,先补充方案并确认。可与 #239 诊断并行,但本次不委派子代理。

影响与验收

仅 Server sybclient 与相关测试;分页调用方仅必要兼容修改。保持日期、店铺范围、完整性与精确条数校验。补充不足整页/整页尾页、超时重试、取消、非法响应回归。只读线上对照不证明完整同步成功;完整同步、发布、重启须单独授权。

风险与文档

上游根因尚未确定;不能将网络超时等同 Cookie 失效。若参数/恢复行为改变,更新 SYB 接口 Wiki 并回读、sync/check;纯诊断无长期事实改变则说明并跳过。实现后提交推送,记录证据与未验证项,停在待验收。

当前状态

待开始有界只读诊断;当前只具备统计证据,尚未形成可实施的参数修复结论。

来源、基线与边界

  • 来源:用户于 2026-09-08 确认“按照你的建议建工单,做”,此前同意拆分逐页保存和尾页超时两个关联任务。
  • 核验线上 release 20260907-29ba16e-236,代码 29ba16e;开发应基于最新 main 复核,保留其他工单改动。
  • 不影响 Android、采购、订单或付款;不修改店铺授权范围,不覆盖人工规格确认。禁止输出 Cookie、账号、订单明细或原始响应。
  • 本会话未发现可用 Gitea MCP,按仓库规则回退 Gitea API;凭据从被忽略的 gitea.env 读取。
  • 用户未授权本次线上写入、手动同步、发布或重启。相关操作需要独立确认。
## 目标与事实 关联 #239,解决尾页请求超时来源,不混入逐页保存/状态改造。线上近 48 小时分页超时集中在最后不足 50 条的页面;前序整页可返回。错误为等待 HTTP 响应头超时。已有每次 60 秒、最多 3 次、间隔 1/2 秒的只读请求重试;全任务 30 分钟。09:05 的自然调度成功,不能宣称永久网络或登录故障。 ## 方案与依赖 1. 先只读核验当前 SYB 网页/既有 HAR 参数和服务端 listPayload,比较 length/start/pageIndex/pageTotal/查询排序等,禁止提前假设某个参数错误。 2. 使用现有有效会话做少量串行只读查询对照,限定请求次数/超时;无有效会话则停止并说明,不擅自更新登录配置或触发完整同步。仅保留状态码、耗时、条数、唯一计数等脱敏结构证据,不保存原始响应。 3. 请求耗时按尾页与邻近整页对比;有证据后最小修复参数或有界只读恢复策略。没有确定根因时不得盲目加超时/重试或跳过尾页。 4. 根因若证明需扩展接口/安全/数据边界,先补充方案并确认。可与 #239 诊断并行,但本次不委派子代理。 ## 影响与验收 仅 Server sybclient 与相关测试;分页调用方仅必要兼容修改。保持日期、店铺范围、完整性与精确条数校验。补充不足整页/整页尾页、超时重试、取消、非法响应回归。只读线上对照不证明完整同步成功;完整同步、发布、重启须单独授权。 ## 风险与文档 上游根因尚未确定;不能将网络超时等同 Cookie 失效。若参数/恢复行为改变,更新 SYB 接口 Wiki 并回读、sync/check;纯诊断无长期事实改变则说明并跳过。实现后提交推送,记录证据与未验证项,停在待验收。 ## 当前状态 待开始有界只读诊断;当前只具备统计证据,尚未形成可实施的参数修复结论。 ## 来源、基线与边界 - 来源:用户于 2026-09-08 确认“按照你的建议建工单,做”,此前同意拆分逐页保存和尾页超时两个关联任务。 - 核验线上 release 20260907-29ba16e-236,代码 29ba16e;开发应基于最新 main 复核,保留其他工单改动。 - 不影响 Android、采购、订单或付款;不修改店铺授权范围,不覆盖人工规格确认。禁止输出 Cookie、账号、订单明细或原始响应。 - 本会话未发现可用 Gitea MCP,按仓库规则回退 Gitea API;凭据从被忽略的 gitea.env 读取。 - 用户未授权本次线上写入、手动同步、发布或重启。相关操作需要独立确认。
Author
Owner

用户于 2026-09-08 明确授权实施 #239/#240。开发基线 origin/main 9d5242b,隔离分支 fix/239-syb-partial-sync。 #240 开始使用现有会话的少量只读参数对照;不重新登录或触发完整同步,未证实根因前不修改分页参数。

用户于 2026-09-08 明确授权实施 #239/#240。开发基线 origin/main 9d5242b,隔离分支 fix/239-syb-partial-sync。 #240 开始使用现有会话的少量只读参数对照;不重新登录或触发完整同步,未证实根因前不修改分页参数。
Author
Owner

2026-09-08 只读对照结果:已复现,未修复

使用现有缓存会话从线上主机串行查询,没有重新登录、写库、触发同步、发布或重启。查询只输出状态/耗时/条数,原始响应与 Cookie 不落盘。共 4 次总数查询、12 次受限列表查询,单次连接 10 秒、响应 25 秒;25 秒为诊断上限,不修改生产 60 秒配置。

  • 邻近完整页:200,0.81 秒,50 条且 ID 唯一。
  • 原尾页:25.03 秒 ReadTimeout。
  • 将 length 改剩余条数:25.85 秒超时;pageTotal 改为页数:25.84 秒超时。
  • 覆盖尾部的完整窗口也超时;尾部第一条可返回。
  • 最后一次使用自洽 start/pageIndex/length 对照:尾部前 10 条 0.53 秒返回;最后一条 25.03 秒超时;尾部最后一个 10 条窗口 26.58 秒超时。
  • 早期探索性缩页请求未同步调整 pageIndex,不能作为正确结果集或修复依据;后续已做参数自洽对照,仍复现尾部慢查询。

结论:故障集中在上游尾部查询,不能归因于单纯没有重试、Cookie 失效或 GoAuto 的部分成功状态;缩小 length/补 pageTotal 并未证明能稳定恢复。仅凭客户端结果无法区分上游 SQL/索引/锁等待、特定数据路径和网络中间层原因。没有证据支持安全修改分页参数,本单未改生产代码、不能标为修复完成。

下一步需要上游该查询的慢日志/执行计划或已验证的网页成功请求作对照。#239 只降低失败损失,不解决本单来源。本单保持打开、待补充上游证据;无新的长期契约变化,不更新 Wiki,不创建任务快照。

## 2026-09-08 只读对照结果:已复现,未修复 使用现有缓存会话从线上主机串行查询,没有重新登录、写库、触发同步、发布或重启。查询只输出状态/耗时/条数,原始响应与 Cookie 不落盘。共 4 次总数查询、12 次受限列表查询,单次连接 10 秒、响应 25 秒;25 秒为诊断上限,不修改生产 60 秒配置。 - 邻近完整页:200,0.81 秒,50 条且 ID 唯一。 - 原尾页:25.03 秒 ReadTimeout。 - 将 length 改剩余条数:25.85 秒超时;pageTotal 改为页数:25.84 秒超时。 - 覆盖尾部的完整窗口也超时;尾部第一条可返回。 - 最后一次使用自洽 start/pageIndex/length 对照:尾部前 10 条 0.53 秒返回;最后一条 25.03 秒超时;尾部最后一个 10 条窗口 26.58 秒超时。 - 早期探索性缩页请求未同步调整 pageIndex,不能作为正确结果集或修复依据;后续已做参数自洽对照,仍复现尾部慢查询。 结论:故障集中在上游尾部查询,不能归因于单纯没有重试、Cookie 失效或 GoAuto 的部分成功状态;缩小 length/补 pageTotal 并未证明能稳定恢复。仅凭客户端结果无法区分上游 SQL/索引/锁等待、特定数据路径和网络中间层原因。没有证据支持安全修改分页参数,本单未改生产代码、不能标为修复完成。 下一步需要上游该查询的慢日志/执行计划或已验证的网页成功请求作对照。#239 只降低失败损失,不解决本单来源。本单保持打开、待补充上游证据;无新的长期契约变化,不更新 Wiki,不创建任务快照。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#240