资讯详情

资讯详情

Logseq CLI doctor 报告 server revision 不匹配时怎么排查修复?

Logseq CLI doctor 报告 server revision 不匹配时怎么排查修复【免费下载链接】logseqA privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: https://logseq.io/p/NX4mc_ggEV项目地址: https://gitcode.com/GitHub_Trending/lo/logseq当你运行 Logseq CLI 的doctor诊断时看到server-revision-mismatch这一项报出warning说明当前 root-dir 下已经运行的db-worker-node守护进程报告的 revision与本地这份 CLI 的 revision 不一致revision 缺失也按不匹配处理。这类 daemon 是 CLI 自动管理的它绑定到 localhost 随机端口端口记录在仓库锁文件中正常连接启动时只有发现到的 daemon 报告的 revision 与请求方完全一致才会被复用不一致时启动会停掉那个确切的旧 server、从本地 bundled runtime 启动替代实例并在替代实例报告出预期 revision 后才返回可用端点。本文的排查与修复路径即围绕这个状态展开先确认哪些 graph 受影响再重启或清理对应 server最后用doctor复查。依据文档Logseq CLI 文档、运行时与工程指南。先确认是哪种 warning跑 doctor 看检查项doctor对db-worker-node.js运行时脚本、root-dir 权限和运行中 server 的就绪状态做诊断logseq doctor logseq doctor --dev-script # 显式检查 static/db-worker-node.js logseq doctor --output json # 脚本化场景取结构化结果edn 亦可doctor输出包含一个总体状态ok、warning、error和逐检查项的行检查项包括db-worker-script、data-dir、running-servers和server-revision-mismatch。遇到 revision 问题时的典型特征下面为仓库测试用例中的示例数据仅示意字段结构{:status :warning, :checks [... {:id :server-revision-mismatch :status :warning :message 1 server uses a different revision than this CLI :servers [{:graph team graph}]}]}server-revision-mismatch行的servers字段列出受影响的 graph 名称后续修复命令要针对这些 graph 逐个执行。注意区分同一报告里其它检查码它们的处理路径不同不要和 revision 问题混在一起doctor-script-missingdb-worker-node.js运行时目标缺失默认目标dist/db-worker-node.js属errordoctor-script-unreadable脚本路径存在但不是可读文件data-dir-permission配置的数据目录不可读或不可写doctor-server-not-ready某个锁中发现的 server 仍处于:starting状态warning等待就绪即可与 revision 无关。用 server list 和 --version 对比 revision定位到受影响 graph 后确认具体的 revision 差异logseq server list logseq --versionserver list的 human 输出包含OWNER和REVISION两列当任一 server 的 revision 字符串与本地 CLI revision 字符串不相等时human 输出会打印兼容性 warning。logseq --version打印本地基线Build time: timestamp Revision: commit把server list中各行的REVISION与--version的Revision逐行比对不一致或为空的那行就是待处理对象。一个容易误判的点图锁lock文件和server-list都只记录发现用的元数据不是就绪状态或 revision 的权威来源——daemon 的 revision 以其/healthz报告的repo、readiness、owner source、root directory 和 runtime revision 为准。所以以server list实际探测结果和/healthz为准不要只读锁文件判断。修复对每个受影响 graph 执行 server restart文档给出的修复动作是按 doctor 打印的 remediation 命令、对每个受影响 graph 执行logseq server restart --graph name将name替换为server-revision-mismatch检查项servers字段中列出的 graph 名。副作用说明该命令会停掉该 graph 当前运行的db-worker-node进程并用本地 bundled runtime 重新拉起属于对该 graph 服务的短暂中断不删除任何文件。两个执行边界owner 边界server stop和server restart是 owner-aware 的只能操作 CLI 自己拥有的或 legacyunknown归属的server若 daemon 由另一个 owner source如electron启动手动 restart 会返回server-owned-by-other。自动替代路径即使手动 restart 因 owner 被拒重新运行任何需要连接该 graph 的 CLI 命令时启动流程在确认 revision 不匹配之后允许跨 owner source 停掉那个确切的旧 server并从请求方的 bundled runtime 启动替代实例只有替代实例报告出预期 revision 后启动才返回可用端点。revision 一致的 server 则保持正常 owner 边界不受影响。验证修复结果修复后按顺序复查logseq doctor logseq server listdoctor中不再出现server-revision-mismatch检查行总体状态回到ok或其它与本次问题无关的状态server list中该 graph 的REVISION与logseq --version输出的Revision一致且不再打印兼容性 warning。restart 之后仍然不匹配如果自动或手动替换之后替代实例报告的 revision 仍不同启动会快速失败并返回错误码server-revision-mismatch-after-restart附带提示文档原文Logseq restarted db-worker-node, but the replacement still reports a different revision. Check the installed Logseq build and retry这表示问题出在当前这份 CLI 的构建产物上而不是那个旧 daemon。如果你是从源码构建 CLI 的按文档重建运行时pnpm cli:release pnpm db-worker-node:release:bundlepnpm cli:release将cli/运行时打包到static/logseq-cli.jspnpm db-worker-node:release:bundle用 Vite 编译并写出独立运行时dist/db-worker-node.js以及资产清单dist/db-worker-node-assets.json。构建完成后确认dist/db-worker-node.js存在且清单中列出的每个路径都在其旁边再重新执行logseq server restart --graph name与doctor复查。若 bundled runtime 启动报 missing-module 或 missing-file 错误同样先按上述命令重建再验证dist/db-worker-node.js与资产路径完整性。手动清理路径与限制logseq server cleanup是一个手动维护命令它检查当前 root-dir 下从锁文件发现的 server把revision ! 本地 CLI revision含 revision 缺失判定为 mismatch并只尝试对:owner-source为:cli的目标做 graceful-first 终止。副作用说明它会终止 CLI 拥有的不匹配 daemon 进程不处理其它 owner 的 server也不删除文件。结构化输出包含checked、mismatched、eligible、skipped-owner、killed、failed汇总可用于确认哪些 server 被终止、哪些因 owner 被跳过。使用限制汇总revision 缺失按不匹配处理不要指望空 revision被放行server cleanup只作用于 CLI 拥有的 daemonElectron 等非 CLI owner 的旧 server 走的是启动时确认不匹配后跨 owner 替代的自动路径锁文件与server-list只是发现索引不是 revision 权威判断以 daemon 实际报告为准。修复完成后的状态即doctor全绿、server list的 REVISION 列与本地 CLI 一致。后续如果再升级到新的 CLI 构建旧 daemon 的 revision 会再次落后重复本文定位 → restart/cleanup → doctor 复查即可。【免费下载链接】logseqA privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: https://logseq.io/p/NX4mc_ggEV项目地址: https://gitcode.com/GitHub_Trending/lo/logseq创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →