docs: update PROGRESS.md - 视频上传问题根因(网络+逻辑双叠加)与四项修复

This commit is contained in:
ericwyuan
2026-08-20 15:36:35 +08:00
parent 8cb5553beb
commit a2554c9df0

View File

@@ -1,6 +1,6 @@
# 项目进度追踪 # 项目进度追踪
> 最后更新: 2026-08-20 14:20 > 最后更新: 2026-08-20 15:45
## 服务运行状态 ## 服务运行状态
@@ -161,6 +161,29 @@
19. **chunk_size 变更防护** - Edge 端 upload_chunk 检测 total_chunks 变更(由 chunk_size 变化导致),自动清理旧分块防止混合不同大小分块导致 assemble 后文件损坏。NAS 端 _query_uploaded_chunks 比对 expected_total != edge_total 时跳过断点续传 19. **chunk_size 变更防护** - Edge 端 upload_chunk 检测 total_chunks 变更(由 chunk_size 变化导致),自动清理旧分块防止混合不同大小分块导致 assemble 后文件损坏。NAS 端 _query_uploaded_chunks 比对 expected_total != edge_total 时跳过断点续传
20. **看门狗机制** - app.py 启动 daemon 看门狗线程,每 60s 检查 scheduler/dispatcher/poller 线程 is_alive(),崩溃自动 check_and_restart()。/api/status 改用 thread.is_alive() 替代 _running 标志,防止线程假死误报 20. **看门狗机制** - app.py 启动 daemon 看门狗线程,每 60s 检查 scheduler/dispatcher/poller 线程 is_alive(),崩溃自动 check_and_restart()。/api/status 改用 thread.is_alive() 替代 _running 标志,防止线程假死误报
## 视频上传问题根因排查与修复 (2026-08-20 15:45, commit 8cb5553)
**问题定性**: 网络问题 + 逻辑问题双重叠加
**网络层(已解决)**: NAS→Oracle 跨境上行带宽仅 ~1Mbps360MB 原始视频上传需 10-20 分钟且频繁超时。
方案: NAS 端 FFmpeg 预压缩 (480p/CRF28/veryfast, 36 倍压缩比 360MB→22MB) + 5MB 分块断点续传。
**逻辑层(本次修复)**: 压缩方案生效后上传成功,但 Edge 端分析全部失败 "All models failed in visual analysis"
| # | Bug | 根因 | 修复 |
|---|-----|------|------|
| 1 | 全部视觉模型调用失败 | Edge 服务手动重启时未 source .envGEMINI/NVIDIA API key 丢失 | config_loader 启动时自动加载 .envexport KEY=VALUE 格式,不覆盖已有环境变量) |
| 2 | 失败结果黑洞 | get_undelivered_results 只查 SUCCESSFAILED 永不回传 NAS | 包含 FAILED 状态,/results 构造 failed 负载NAS Poller 标记任务 FAILED |
| 3 | 重派发死锁 | INSERT OR IGNORE + UNIQUE(nas_task_id),失败后重传被静默忽略 | enqueue 检测 FAILED/已交付 SUCCESS 行时重置为 PENDING 重跑 |
| 4 | Poller 落库崩溃 | db_layer valid_stages 含 'process' 但 MariaDB ENUM 不含 → pymysql DataError 1265 | ALTER TABLE 扩展 ENUM + ddl.sql 同步 |
**验证结果**:
- Task 293 (压缩后 22.2MB): NVIDIA 降级路径分析成功event_id=13 落库Gemini 临时 503 自动降级)
- Task 295: 全链路成功 event_id=14压缩 9.3min → 上传 1min → 分析 55s → Poller 落库)
- 流水线单任务周期 ~12 分钟,积压 ~20 个任务自动消化中
**运维要点**: Edge 重启务必 `source /opt/fam-edge/.env` 或使用 start_gunicorn.sh代码已兜底自动加载 .env双保险
## 真实视频性能基准测试 (2026-08-20) ## 真实视频性能基准测试 (2026-08-20)
测试视频: `Generic_ONVIF-001-20260819-210403` (30分钟, 360MB, 1080p H.264) 测试视频: `Generic_ONVIF-001-20260819-210403` (30分钟, 360MB, 1080p H.264)