Skip to content

Linux 安装包只带 debian-openssl-3.0.x 的 Prisma 引擎,Fedora/RHEL 及 OpenSSL 1.1 系统数据库不可用 #86

Closed

Description

@haywolf

现象

Linux 安装包只带构建机(Ubuntu)对应的 Prisma 查询引擎 debian-openssl-3.0.x。在使用 OpenSSL 1.1 的发行版,以及 Fedora / RHEL / CentOS / openSUSE 系(Prisma 会映射到 rhel-* 目标,即使装的是 OpenSSL 3)上,Prisma 找不到引擎,数据库初始化失败。由于错误被吞掉,表现更可能是依赖数据库的功能全部不可用,而不是启动时明确报错。

复现步骤

  1. 在 Fedora 或 RHEL 9(或 Debian 11)上运行 Linux 版 AppImage。
  2. 打开应用、尝试添加服务商或新建任务。
  3. 预期日志出现 could not locate the Query Engine 类错误,相关功能不可用。

注:读代码推导,未在真实发行版上实跑。

位置

  • src/core/infrastructure/db/schema.prisma:7-9:generator client 未配置 binaryTargets,默认只生成构建机的 native 引擎。
  • .github/workflows/release.yml:29-34:Linux 只在 ubuntu-latest / ubuntu-24.04-arm 构建。
  • 数据库初始化失败被吞:initDatabase 返回 false(db/index.ts:73-76),主进程 index.ts:460 不检查返回值。
  • 未合并的 PR fix(release): harden package verification and release manifests (#80 follow-up) #84 不改 schema,其加载校验在同一台构建机上运行,发现不了此问题。

风险等级

高(受影响发行版上功能不可用,且没有明确报错)。

产品判断

Linux 用户占比不大,但 Fedora / RHEL 系是常见桌面发行版,一旦命中就是整体不可用、用户无从排查。修复成本低(配置 binaryTargets + 显式报错),有必要修。

建议修法

  • 按架构配置 binaryTargets(x64、arm64 分开,覆盖 debian-openssl-1.1.x、debian-openssl-3.0.x、rhel-openssl-1.1.x、rhel-openssl-3.0.x 等),注意不要触发 verify-package-arch 的架构检查误报,落地前先验证。
  • 数据库初始化失败时给用户明确报错,而不是静默继续。
  • 发包校验或 CI 增加非 Ubuntu 环境(如 Fedora 容器)的引擎加载检查。

验收标准

  • Linux x64 / arm64 包内包含所需各目标的 Prisma 引擎,且架构正确。
  • 在 Fedora(OpenSSL 3)和一个 OpenSSL 1.1 发行版上 AppImage 能正常初始化数据库、完成一次转换。
  • 数据库初始化失败时界面有明确提示。
  • Ubuntu、macOS、Windows 包不回归。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions