-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
Alist v3.43.0 , 百度网盘上传程序闪退,回滚到 v3.42.0 后正常 #8180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
感谢您提供详细的信息。根据您的描述,Alist v3.43.0 在使用百度网盘上传时出现了程序闪退的问题,而回滚到 v3.42.0 后问题消失。这可能是由于新版本中的某些更改导致的兼容性问题。 为了帮助解决这个问题,您可以尝试以下步骤:
如果您愿意,我可以帮助您在 GitHub 上创建一个问题报告,以便开发者能够更快地看到并解决这个问题。请告诉我您的决定。 🪧 TipsFor further assistance, please describe your question in the comments and @petercat-assistant to start a conversation with me. |
看一下日志或者命令行跑起来看一下报错在哪,3.43 baidu_netdisk 应该只有我交的的两个pr有改动,但是我(包括我周围一圈)用起来都没问题 |
你可能要严格确定一下文件大小有没有超。图上warn里的分片号可以一起给一下吗 崩溃看样子是个信号量重复释放的问题,在 #7972 的改动重试逻辑覆盖应该会涉及这段代码,但是没有实质性更改。 |
2025/03/23 10:12:10.357571 WARN RESTY Post "https://d.pcs.baidu.com/rest/2.0/pcs/superfile2?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&method=upload&partseq=1&path=%2F141+%E5%8E%BB%E6%A8%AA%E7%BA%B9.mp4.z01&type=tmpfile&uploadid=P1-MTAuMTQ2LjE2Mi4yNzoxNzQyNzI0NzAwOjg4MTM3MzAxMjY2ODcxNDkzOTY%3D": context deadline exceeded (Client.Timeout exceeded while awaiting headers), Attempt 1 |
看起来确实是我的问题,但我没看懂为什么会出这个问题,semaphore 是在 L269 获取的,在 L278 释放的,按理来说每获取一个就会创建一个上传线程,每个上传线程结束时一定会释放一个,应该不会出现释放比获取多的问题。会不会是这个 errgroup 有什么我不知道的重试机制。 alist/drivers/baidu_netdisk/driver.go Lines 263 to 281 in 32890da
|
#7972 里我把 errgroup 的重试给撤了的,现在应该只靠 RestyClient 重试 (没撤掉的话好像炸的更严重,已经是歪打正着修了一波了) |
要不我把获取信号量放到线程函数里面算了,大不了就是有一堆线程在空等待,总比直接炸了好 |
DefaultAttempts = uint(10)
DefaultDelay = 100 * time.Millisecond
DefaultMaxJitter = 100 * time.Millisecond
DefaultOnRetry = func(n uint, err error) {}
DefaultRetryIf = IsRecoverable
DefaultDelayType = CombineDelay(BackOffDelay, RandomDelay)
DefaultLastErrorOnly = false
DefaultContext = context.Background() 认真看了一下,是我改动造成的问题。 可能要考虑一下在 |
应该说改不改都会有问题,只是改了放大了问题 |
我觉得还是应该让分片上传可以重试比较好,要不我还是把获取信号量放到线程里吧 |
我改是因为有两层重试,一层 两层都留的话,外层丢异步重试可能是合理的。 我的pr肯定是要改一下的了,你看看你的是不是用到信号量的地方也要检查一下从重试。 |
Uh oh!
There was an error while loading. Please reload this page.
Please make sure of the following things
I have read the documentation.
我已经阅读了文档。
I'm sure there are no duplicate issues or discussions.
我确定没有重复的issue或讨论。
I'm sure it's due to
AList
and not something else(such as Network ,Dependencies
orOperational
).我确定是
AList
的问题,而不是其他原因(例如网络,依赖
或操作
)。I'm sure this issue is not fixed in the latest version.
我确定这个问题在最新版本中没有被修复。
AList Version / AList 版本
v3.43.0
Driver used / 使用的存储驱动
百度网盘
Describe the bug / 问题描述
Alist v3.43.0 , 百度网盘上传程序闪退,回滚到 v3.42.0 后正常。提示如图示
Reproduction / 复现链接
随时随地复现
Config / 配置
不会提供
Logs / 日志
No response
The text was updated successfully, but these errors were encountered: