Skip to content

[Bug] YouTube bootstrap 任务会卡在 in_progress,MV3 service worker 休眠后无超时回收 #178

Description

@elvafan2021

环境

  • 后端 v0.3.207,Chrome MV3 扩展

现象

OPENBILICLAW_YT_BOOTSTRAP_SCROLL_ROUNDS 调到 30 后(任务耗时变长),YouTube bootstrap_profile 任务被扩展 claim 后长期卡在 in_progressclaimed_at 有值、completed_at 为空),fetch-youtube 等到 300s 超时也等不到结果。此后:

  • GET /api/sources/yt/next-task 一直返回 204 No Content(因为有一个 in_progress 任务占着),新的 YouTube 任务无法再被领取;
  • 必须手动进 SQLite 把该任务 status 改成 failed 才能恢复。

推测根因

任务耗时变长后,Chrome MV3 的 service worker 进入休眠,扩展 yt-task-dispatcher.tsarmTaskTimeout() 用的 setTimeout 不再触发,任务没有超时回收;后端也没有对 stale in_progress 任务的恢复机制。

建议

  • 后端增加 stale in_progress 任务回收(超过阈值自动置 failed / 释放);
  • 扩展侧用 chrome.alarms 替代 setTimeout 做任务超时,避免 service worker 休眠导致定时器丢失。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions