Skip to content

fix(drivers/thunder): handle missing token errors#2623

Open
jyxjjj wants to merge 1 commit into
mainfrom
fix-2467
Open

fix(drivers/thunder): handle missing token errors#2623
jyxjjj wants to merge 1 commit into
mainfrom
fix-2467

Conversation

@jyxjjj

@jyxjjj jyxjjj commented Jun 16, 2026

Copy link
Copy Markdown
Member

Summary / 摘要

  • 修复 Thunder 相关驱动在 token 缺失或刷新失败后触发空指针 panic 的问题。
  • 将空 token 请求转为 errs.EmptyToken 普通错误,让存储加载按现有失败状态处理并继续加载其他驱动。
  • 避免刷新或重新登录失败后写入 nil token,并补充 Thunder、ThunderX、Thunder Browser 的回归测试。

⚠️ 本组织、仓库、相关维护者,不对破解驱动作出任何修复、维护,本次修复,旨在允许驱动失败时,进程免于崩溃。并未修复驱动本身的问题。

  • This PR has breaking changes.
    / 此 PR 包含破坏性变更。
  • This PR changes public API, config, storage format, or migration behavior.
    / 此 PR 修改了公开 API、配置、存储格式或迁移行为。
  • This PR requires corresponding changes in related repositories.
    / 此 PR 需要关联仓库同步修改。

Related repository PRs / 关联仓库 PR:

  • OpenList-Frontend:
  • OpenList-Docs:

Related Issues / 关联 Issue

Fixes #2467
Fixes #2571
Fixes #2567

Testing / 测试

  • go test ./...
  • Manual test / 手动测试:

Checklist / 检查清单

  • I have read CONTRIBUTING.
    / 我已阅读 CONTRIBUTING
  • I confirm this contribution follows the repository license, contribution policy, and code of conduct.
    / 我确认此贡献符合仓库许可证、贡献规范和行为准则。
  • I have formatted the changed code with gofmt, go fmt, or prettier where applicable.
    / 我已按适用情况使用 gofmtgo fmtprettier 格式化变更代码。
  • I have requested review from relevant maintainers or code owners where applicable.
    / 我已在适用情况下请求相关维护者或代码所有者审查。

AI Disclosure / AI 使用声明

  • This PR includes AI-assisted content.
    / 此 PR 包含 AI 辅助内容。

Tools used / 使用工具:

  • ChatGPT
  • Codex
  • GitHub Copilot
  • Claude
  • Gemini
  • Other (please specify) / 其他(请注明):

Usage scope / 使用范围:

  • Code generation / 代码生成

  • Refactoring / 重构

  • Documentation / 文档

  • Tests / 测试

  • Translation / 翻译

  • Review assistance / 审查辅助

  • I have reviewed and validated all AI-assisted content included in this PR.
    / 我已审核并验证此 PR 中的所有 AI 辅助内容。

  • I have ensured that all AI-assisted commits include Co-Authored-By attribution.
    / 我已确保所有 AI 辅助提交都包含 Co-Authored-By 归属信息。

  • I can reproduce all AI-assisted content included in this PR without any AI tools.
    / 我可以在没有任何 AI 工具的情况下重现此 PR 中包含的 AI 辅助内容。

- 在 Thunder 请求入口将空 token 转为普通错误
- 避免刷新或登录失败后写入 nil token
- 为 Thunder 相关驱动补充空 token 回归测试

Co-authored-by: Codex <267193182+codex@users.noreply.github.com>
Signed-off-by: jyxjjj <16695261+jyxjjj@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR hardens the Thunder-family storage drivers (Thunder, ThunderX, Thunder Browser) against nil-token scenarios so token loss/refresh failures no longer trigger nil-pointer panics during request authorization, allowing storage initialization to fail gracefully without taking down the process.

Changes:

  • Add early errs.EmptyToken returns in Request when the in-memory token is missing (TokenResp == nil).
  • Prevent writing/using nil tokens after refresh/login attempts by returning early when token == nil.
  • Add regression tests ensuring Request returns errs.EmptyToken when invoked without a token.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
drivers/thunderx/driver.go Adds nil-guards around token usage and returns errs.EmptyToken when token is missing in Request.
drivers/thunderx/driver_test.go Regression test for missing-token Request behavior.
drivers/thunder/driver.go Adds nil-guards in refresh flow and returns errs.EmptyToken when token is missing in Request.
drivers/thunder/driver_test.go Regression test for missing-token Request behavior.
drivers/thunder_browser/driver.go Adds errs import and missing-token handling in Request, plus refresh-flow nil-guard.
drivers/thunder_browser/driver_test.go Regression test for missing-token Request behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@xrgzs xrgzs changed the title fix(thunder): handle missing token errors fix(drivers/thunder): handle missing token errors Jun 17, 2026
@xrgzs xrgzs added the Module: Driver Driver-Related Issue/PR label Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Module: Driver Driver-Related Issue/PR

Projects

None yet

3 participants