[BUG] 115 驱动分片上传丢弃 errCh 真实错误,导致 nil 指针 panic / WebDAV 405
メンテナーはふだん 3 日以内に返信
評価
調査の方向性
drivers/115/util.goで、UploadByMultipart内のerrChからの受信箇所を確認し、その後、結果がどのように使われるかを理解するために、drivers/115/driver.goの224行目付近にある呼び出し元を読みます。関連するアップロードテストを確認し、チャンクエラーが呼び出し元に届くことを検証するテストを追加します。実際のエラーが返され、nilの結果によってpanicが発生しないことを完了条件とします。
索引モデルが issue の本文から書いたものです。
説明
请确认以下事项
- 我已确认阅读并同意 AGPL-3.0 第15条 。
本程序不提供任何明示或暗示的担保,使用风险由您自行承担。 - 我已确认阅读并同意 AGPL-3.0 第16条 。
无论何种情况,版权持有人或其他分发者均不对使用本程序所造成的任何损失承担责任。 - 我确认我的描述清晰,语法礼貌,能帮助开发者快速定位问题,并符合社区规则。
- 我已确认阅读了OpenList文档。
- 我已确认没有重复的问题或讨论。
- 我已确认是
OpenList的问题,而不是其他原因(例如 网络 ,依赖或操作)。 - 我认为此问题必须由
OpenList处理,而非第三方。 - 我已确认这个问题在最新版本中没有被修复。
- 我没有阅读这个清单,只是闭眼选中了所有的复选框,请关闭这个 Issue 。
OpenList 版本(必填)
v4.2.7
使用的存储驱动(必填)
115
问题描述(必填)
WebDAV PUT 上传约 5GB 文件,115 驱动分片上传(UploadByMultipart)在约 51 分钟时失败:一次 500 + Go panic,一次 405。
根因(drivers/115/util.go):
case <-errCh: return nil, err
该分支丢弃了 errCh 里的真实分片错误,而 err 是外层 nil——返回 nil 错误 + nil 结果。Put(driver.go:224)对 nil 的 uploadResult.Data.FileID 取值 → panic → 500。第二次正常返回错误,被 WebDAV 层一刀切映射为 405(server/webdav/webdav.go 有 TODO)。
时间吻合:驱动每 50 分钟刷新 OSS token,两次失败都卡在 ~51 分钟。对照:同一文件走单片 OSS 上传一次成功,与文件本身无关。
PR #2892 已把该行列为 pre-existing and left alone,至今未修。建议修复:case e := <-errCh: return nil, e。
日志(必填)
2026/10/16 05:42:27 [Recovery] panic recovered:
runtime error: invalid memory address or nil pointer dereference
/home/runner/work/OpenList/OpenList/drivers/115/driver.go:224 (0x18164ee)
/home/runner/work/OpenList/OpenList/server/webdav/webdav.go:427 (0x1cc949e)
14:27:35 同样 panic,同样定位 driver.go:224。对应 PUT ... 500 | 51m0s 和 PUT ... 405 | 50m50s。
配置文件内容(必填)
{"mount_path": "/", "driver": "115 Cloud",
"addition": {"cookie": "<redacted>", "page_size": 1000, "limit_rate": 10000, "root_folder_id": "0"}}
复现链接(可选)
No response
AI生成内容
- 我使用了AI工具生成此内容
- 我没有使用AI工具生成此内容
AI模型是
Muse
- 主要言語
- Go
- スター
- 25.3k
- フォーク
- 2.4k
- 平均マージ
- 3日 8時間
- マージ済み PR(30日)
- 30
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OpenListTeam/OpenList のほかの issue
-
[BUG] PikPak 上传 no such host:OSS endpoint 落在 .net 侧(无任何 DNS 记录),附取证与已验证修法対応中かも @adsf0427 が 17 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
OpenListTeam/OpenList#2986 · コメント 2 件 ·
メンテナーはふだん 3 日以内に返信
-
[BUG] 解绑 SSO/OIDC 账号后重新登录报错:UNIQUE constraint failed: x_users.username (2067)対応中かも @Suyunmeng が 3 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
OpenListTeam/OpenList#2872 · コメント 2 件 · リアクション 2 件 ·
メンテナーはふだん 3 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
OpenListTeam/OpenList#3320 · コメント 1 件 ·
メンテナーはふだん 3 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 43/100
OpenListTeam/OpenList#3309 ·
メンテナーはふだん 3 日以内に返信
-
# [BUG] Emby 兼容 API:`/Users/Public` 返回的 UserDto 缺少 `Policy` / `Configuration`,导致严格客户端崩溃対応中かも @PIKACHUIM が 5 日前に担当しました。 オープンinvalid
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
OpenListTeam/OpenList#3301 · コメント 1 件 ·
メンテナーはふだん 3 日以内に返信
OpenListTeam/OpenList の issue をすべて見る
似ている issue
-
feat(gmail): make gmail get --format raw text output the exact message, like drafts get --format rawオープンclawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P3
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
openclaw/gogcli#1276 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
hiero-ledger/hiero-sdk-go#1886 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
cloudevents/sdk-go#1346 ·