Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[bug] [Windows] 发送 Digest 授权请求时 Cronet 引擎触发致命 CHECK 断言,应用直接闪退

Abierto
#2,971 0 comentarios 0 reacciones 1 asignado Ver en GitHub

@MegatronKing ya está trabajando en esto.

Desde el 13/10/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

bug windows

概述

在 Windows 上,通过 Reqable 发送「授权类型 = Digest」的 HTTP 请求时,应用会瞬间退出:没有报错弹窗,请求也不会记录到任何响应。100% 可复现 —— 7 分钟内产生了 6 个崩溃转储,故障指令地址完全一致。

这是内置 Cronet 引擎(reqable_cronet.dll)抛出的一条致命断言(CHECK / LOG(FATAL))导致的主动终止,不是内存越界,也不是配置问题。

环境

  • Reqable 3.3.1 (223),Windows x64
  • Windows 版本 10.0.26300
  • 通过 Windows 安装包安装,由 3.2.x 版本升级而来

复现步骤

  1. 新建一个请求,指向明文 HTTP 端点,例如 GET http://<host>:<port>/<path>
  1. 打开 授权(Authorization) 标签页,类型选择 Digest
  1. 填入用户名 / 口令;realm、nonce、qop、nonceCount、clientNonce、opaque 全部留空
  1. 保持「收到质询后重新发送」为启用状态,点击 发送

预期结果

请求正常发出,收到 401 响应及 WWW-Authenticate: Digest qop="auth", realm="...", nonce="..." 头,Reqable 随后带上计算好的 Authorization: Digest ... 头重发请求。

实际结果

Reqable.exe 立即终止。该请求停留在 response: null —— 根本没走到响应阶段。没有错误弹窗,%APPDATA%\Reqable\log\*.log 里也什么都没记下:Dart 日志在 Rengine response: app/config(200) 这一行之后直接中断。

崩溃证据

%LOCALAPPDATA%\CrashDumps\Reqable.exe.<pid>.dmp 中共 6 个转储,时间戳为 2026-10-13 10:44–10:50(UTC+8)。

项目 | 值 -- | -- 异常码 | 0x80000003(EXCEPTION_BREAKPOINT),NumberParameters = 1 故障地址 | reqable_cronet.dll + 0xDBFF9 —— 6 个转储完全相同 故障处机器码 | CC(int3)后接 0F 0B(ud2) 紧邻的前一条指令 | lea rcx, [rip+...] → 指向字符串 "LOG_FATAL" 该处字符串簇 | ..\..\base\logging.cc、LogMessage、VERBOSE、LOG_FATAL、%s:%d: %s 残缺调用栈(无符号) | flutter_windows.dll → reqable_http.dll(+0x2152、+0x754E) → reqable_cronet.dll

判读:

  • int3; ud2 是 MSVC 的 __debugbreak() / ImmediateCrash() 惯用序列 —— 即主动自杀,不是内存错误。
  • 紧邻的字符串属于 base/logging.cc,因此 +0xDBFF9 是 FATAL 日志路径上那个公共的自毁桩。
  • 由此可判定:Cronet 引擎内部有 CHECK() / LOG(FATAL) 断言被触发。
  • reqable_cronet.dll 中还包含源码路径 ..\..\net\http\http_auth_handler_digest.cc,以及 344 条互不相同的 Check failed: <表达式> 字符串 —— 说明该构建中 CHECK 是启用的,且 Digest 认证处理器已被编译进去。

已排除的可能

  • 不是凭据问题、不是账号锁死 —— 应用是主动断言自毁,且请求从未走到 401 交互环节。
  • 不是 TLS / 证书问题 —— 目标端点是明文 HTTP。
  • 不是配置损坏 —— 另一个工作区中不带 Digest 的请求可以正常启动与运行。
  • 升级前 Digest 在本机是能用的 —— 存在更早保存的 Digest 授权请求;抓包历史也能看到 Digest 质询 / 响应在多款摄像机型号上被正常处理过。
Lenguaje dominante
Sin datos de lenguaje
Estrellas
6.8k
Forks
269
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de reqable/reqable-app

Todos los issues de reqable/reqable-app

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.