Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[BUG] 115 驱动分片上传丢弃 errCh 真实错误,导致 nil 指针 panic / WebDAV 405

Đang mở Phù hợp với người mới
#3,201 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 3 ngày

@Suyunmeng đang làm issue này rồi.

Từ ngày 27/10/2026.

  • #3312 của @Suyunmeng — đang mở
  • #3331 của @thetapilla — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
74/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
go
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu tại drivers/115/util.go, ở chỗ nhận từ errCh trong UploadByMultipart, sau đó đọc hàm gọi trong drivers/115/driver.go quanh dòng 224 để hiểu kết quả của nó được sử dụng như thế nào. Kiểm tra các bài kiểm thử upload liên quan và bổ sung kiểm thử để bảo đảm lỗi chunk đến được bên gọi; hoàn tất khi lỗi thực tế được trả về mà kết quả nil không gây panic.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

请确认以下事项
  • 我已确认阅读并同意 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

Ngôn ngữ chính
Go
Star
25.3k
Fork
2.4k
Merge trung bình
3 ngày 1 giờ
Pull request đã merge (30 ngày)
30

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của OpenListTeam/OpenList

Tất cả issue của OpenListTeam/OpenList

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.