OpenListTeam / OpenListTeam/OpenList

[BUG] 复制文件数量大的时候管理后台查看当前的复制进度会卡死

Open
#2,232 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Go
Stars
24.7k
Forks
2.3k
Avg merge
1d 20h
Merged PRs (30d)
36

Description

请确认以下事项
  • 我已确认阅读并同意 AGPL-3.0 第15条
    本程序不提供任何明示或暗示的担保,使用风险由您自行承担。

  • 我已确认阅读并同意 AGPL-3.0 第16条
    无论何种情况,版权持有人或其他分发者均不对使用本程序所造成的任何损失承担责任。

  • 我确认我的描述清晰,语法礼貌,能帮助开发者快速定位问题,并符合社区规则。

  • 我已确认阅读了OpenList文档

  • 我已确认没有重复的问题或讨论。

  • 我已确认是OpenList的问题,而不是其他原因(例如 网络依赖操作)。

  • 我认为此问题必须由OpenList处理,而非第三方。

  • 我已确认这个问题在最新版本中没有被修复。

  • 我没有阅读这个清单,只是闭眼选中了所有的复选框,请关闭这个 Issue 。

OpenList 版本(必填)

v4

使用的存储驱动(必填)

115

问题描述(必填)

现在比如我复制 10万+文件,上 TB 数据,然后在后台想看一下复制任务的进度,直接卡死。我看了一下代码,首先是轮询的undone,而且默认返回的是所有的未完成任务,数据量巨大,大概5MB/s,直接卡死,而且导致后台不上传了。

是否可以通过其他方式来,比如只有加载页面的时候通过 websocket 获取数据,后面通过 websocket 推送更改,如果每个文件都不是很小,上传也要一段时间的,轮询就不大合适。
或者更简单的轮询也可以,反正现在有分页,那就按照分页来,只返回排在队列中的第x页的数据,至少这样肯定能用。

日志(必填)

配置文件内容(必填)

复现链接(可选)

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the management page's undone polling entry point, which currently returns every unfinished task, and reproduce the freeze with a 100,000-file copy using the 115 driver. Compare a paginated or pushed progress flow against the current behavior; done means the progress view remains responsive and copying continues while large queues are active.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
full-stack
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.