某一天突然出现“内核因未知原因退出”(使用 store 的 3.1.15 版本,如图),经过如下处理后仍然无法解决:
- 卸载、重装 store 3.1.15 版本
- 删除所有数据后重装 store 3.1.15 版本
- 卸载 store 3.1.15 版本,官网安装最新的 x86_64 3.1.18 版本
以上皆关闭了杀毒软件(火绒)。
在报错时,会出现一个空白窗口(左下角显示 点击刷新,如图),任务管理器中的进程如图。
这个问题已经困扰了好多天了,请问如何解决?
某一天突然出现“内核因未知原因退出”(使用 store 的 3.1.15 版本,如图),经过如下处理后仍然无法解决:
以上皆关闭了杀毒软件(火绒)。
在报错时,会出现一个空白窗口(左下角显示 点击刷新,如图),任务管理器中的进程如图。
这个问题已经困扰了好多天了,请问如何解决?
这不是应用崩溃无法启动么?菜单也出现不了了。不过我在目录中找到 siyuan.log,不知是否有用,如下:
I 2025/01/04 10:17:54 working.go:147:/ /\ ___ ___ /__/\ / /\ /__/ / /:/_ / /\ /__/| \ \:\ / /::\ \ \: / /:/ /\ / /:/ | |:| \ \:\ / /:/\:\ \ \: / /:/ /::\ /__/::\ | |:| ___ \ \:\ / /:/~/::\ _____\__\: /__/:/ /:/\:\ \__\/\:\__ __|__|:| /__/\ \__\:\ /__/:/ /:/\:\ /__/:::::::: \ \:\/:/~/:/ \ \:\/\ /__/::::\ \ \:\ / /:/ \ \:\/:/__\/ \ \:\~~\~~\/ \ \::/ /:/ \__\::/ ~\~~\:\ \ \:\ /:/ \ \::/ \ \:\ ~~~ \__\/ /:/ /__/:/ \ \:\ \ \:\/:/ \ \:\ \ \: /__/:/ \__\/ \__\/ \ \::/ \ \:\ \ \: \__\/ \__\/ \__\/ \__\/ I 2025/01/04 10:17:54 runtime.go:87: kernel is booting:ver [3.1.15]arch [amd64]os [Microsoft Windows 11 Pro]pid [25784]runtime mode [prod]working directory [C:\Program Files\WindowsApps\89C2A984.SiYuan_3.1.15.0_x64__1qfd3tsw4ngc2\app\resources]read only [false]container [std]database [ver=20220501]workspace directory [C:\Users\user\SiYuan] I 2025/01/04 10:17:54 conf.go:170: initialized language [zh_CN] based on device locale I 2025/01/04 10:17:54 conf.go:329: using Microsoft Store edition I 2025/01/04 10:17:54 runtime.go:139: use network proxy [system] I 2025/01/04 10:17:54 serve.go:209: kernel [pid=25784] http server [127.0.0.1:4644] is booting I 2025/01/04 10:17:54 blocktree.go:75: reinitialized database [C:\Users\user\SiYuan\temp\blocktree.db] I 2025/01/04 10:17:54 database.go:92: the database structure is changed, rebuilding database... I 2025/01/04 10:17:54 database.go:109: reinitialized database [C:\Users\user\SiYuan\temp\siyuan.db] I 2025/01/04 10:17:54 conf.go:856: database size [4.1 kB], tree/block count [0/0] I 2025/01/04 10:17:54 working.go:193: kernel booted I 2025/01/04 10:33:50 working.go:148:/ /\ ___ ___ /__/\ / /\ /__/ / /:/_ / /\ /__/| \ \:\ / /::\ \ \: / /:/ /\ / /:/ | |:| \ \:\ / /:/\:\ \ \: / /:/ /::\ /__/::\ | |:| ___ \ \:\ / /:/~/::\ _____\__\: /__/:/ /:/\:\ \__\/\:\__ __|__|:| /__/\ \__\:\ /__/:/ /:/\:\ /__/:::::::: \ \:\/:/~/:/ \ \:\/\ /__/::::\ \ \:\ / /:/ \ \:\/:/__\/ \ \:\~~\~~\/ \ \::/ /:/ \__\::/ ~\~~\:\ \ \:\ /:/ \ \::/ \ \:\ ~~~ \__\/ /:/ /__/:/ \ \:\ \ \:\/:/ \ \:\ \ \: /__/:/ \__\/ \__\/ \ \::/ \ \:\ \ \: \__\/ \__\/ \__\/ \__\/ I 2025/01/04 10:33:50 runtime.go:87: kernel is booting:ver [3.1.18]arch [amd64]os [Microsoft Windows 11 Pro]pid [10804]runtime mode [prod]working directory [C:\Users\user\AppData\Local\Programs\SiYuan\resources]read only [false]container [std]database [ver=20220501]workspace directory [C:\Users\user\SiYuan] I 2025/01/04 10:33:50 conf.go:129: loaded conf [C:\Users\user\SiYuan\conf\conf.json] I 2025/01/04 10:33:50 runtime.go:139: use network proxy [system] I 2025/01/04 10:33:50 serve.go:209: kernel [pid=10804] http server [127.0.0.1:5323] is booting I 2025/01/04 10:33:50 working.go:513: database [C:\Users\user\SiYuan\temp\siyuan.db] size [4.1 kB] I 2025/01/04 10:33:50 working.go:513: database [C:\Users\user\SiYuan\temp\blocktree.db] size [4.1 kB] I 2025/01/04 10:33:50 working.go:513: database [C:\Users\user\SiYuan\temp\history.db] size [4.1 kB] I 2025/01/04 10:33:50 working.go:513: database [C:\Users\user\SiYuan\temp\asset_content.db] size [4.1 kB] I 2025/01/04 10:33:50 conf.go:846: tree/block count [0/0] I 2025/01/04 10:33:50 working.go:194: kernel booted
尝试了,放在了不同的目录,依然出现同样错误。
然后下面是.config/app.log 的两次启动的日志(包括安装后的第一次启动)。同时,运行 booting kernel
的命令后同样也没有任何输出和反应。
2025-01-05 13:46:52 app is packaged [true], command line args [E:\temp\SiYuan\SiYuan.exe] 2025-01-05 13:47:21 got kernel port [2932] 2025-01-05 13:47:21 ui version [3.1.18], booting kernel [E:\temp\SiYuan\resources\kernel\SiYuan-Kernel.exe --port 2932 --wd E:\temp\SiYuan\resources --workspace D:\Temp\Test\sy --lang zh_CN] 2025-01-05 13:47:21 booted kernel process [pid=17600, port=2932] 2025-01-05 13:47:21 checking kernel version 2025-01-05 13:47:22 got kernel version [3.1.18] 2025-01-05 13:47:24 windowStat [x=0, y=0, width=2048, height=1113], default [width=2048, height=1113], workArea [width=2560, height=1392] 2025-01-05 13:47:28 kernel [pid=17600, port=2932] exited with code [2] 2025-01-05 13:47:28 exited ui 2025-01-05 13:47:50 app is packaged [true], command line args [E:\temp\SiYuan\SiYuan.exe] 2025-01-05 13:47:50 got kernel port [2970] 2025-01-05 13:47:50 ui version [3.1.18], booting kernel [E:\temp\SiYuan\resources\kernel\SiYuan-Kernel.exe --port 2970 --wd E:\temp\SiYuan\resources] 2025-01-05 13:47:50 booted kernel process [pid=10404, port=2970] 2025-01-05 13:47:50 checking kernel version 2025-01-05 13:47:50 got kernel version [3.1.18] 2025-01-05 13:47:50 windowStat [x=0, y=0, width=2048, height=1114], default [width=2048, height=1113], workArea [width=2560, height=1392] 2025-01-05 13:47:50 kernel [pid=10404, port=2970] exited with code [2]
更多信息:具体发现在 3.1.15-dev2(即 pre-release v202412062347)开始,出现了问题(3.1.15-dev1 仍然没问题)
进行 diff 后发现,在 kernel 主文件 main.go 增加了 go util.LoadSysFonts()
代码,用于系统字体列表的预加载(该代码在 util.SetBooted()
之后,所以在打印了 kernel booted
之后仍会退出);
而在之前版本中并不会提前进行预加载,只会在进行 api 调用 /api/system/getSysFonts
时才会加载(猜测是在设置-编辑器-字体下拉框时加载,但是我这边下拉时的字体列表为空)。
这是一个怀疑,但是在启动过程中有可能影响的代码我只发现了这个。请检查下相关代码,看看能不能解决问题,谢谢。
3.1.19-dev3 也无法使用。我已经复现了相关的 bug,接之前的回复:
单独测试 kernel/util/font.go
的代码,产生了 panic: runtime error: slice bounds out of range [26414:11380]
具体错误信息如下:
goroutine 6 [running]: github.com/ConradIrwin/font/sfnt.parseTableName({0x4abbe0?}, {0xc000516000, 0x12ca8, 0x12ca8}) C:/Users/user/go/pkg/mod/github.com/!conrad!irwin/font@v0.0.0-20240627033111-8567075b2bfe/sfnt/table_name.go:251 +0x3c6 github.com/ConradIrwin/font/sfnt.(*Font).parseTable(0xc00035a3e0, 0xc00040b170) C:/Users/user/go/pkg/mod/github.com/!conrad!irwin/font@v0.0.0-20240627033111-8567075b2bfe/sfnt/table.go:69 +0x17f github.com/ConradIrwin/font/sfnt.(*Font).Table(0xc00035a3e0, {0x0?}) C:/Users/user/go/pkg/mod/github.com/!conrad!irwin/font@v0.0.0-20240627033111-8567075b2bfe/sfnt/font.go:177 +0x49 github.com/ConradIrwin/font/sfnt.(*Font).NameTable(0x4f84f0?) C:/Users/user/go/pkg/mod/github.com/!conrad!irwin/font@v0.0.0-20240627033111-8567075b2bfe/sfnt/font.go:125 +0x19 my/siyuan-bug-test/util.loadFonts() E:/Test/siyuan-bug-test/util/font.go:122 +0x2ac my/siyuan-bug-test/util.LoadSysFonts() E:/Test/siyuan-bug-test/util/font.go:50 +0xb4 created by main.main in goroutine 1 E:/Test/siyuan-bug-test/main.go:12 +0x1a exit status 2
具体是在处理 C:\WINDOWS\Fonts\Teknik-Bold.ttf
文件时发生的 panic。
麻烦请修复下该 panic,以便可以正常使用,非常感谢!
接上个回复。经过验证,Teknik-Bold.ttf 文件中的字体许可说明过长导致了 sfnt 库的处理错误。
对于安装了第三方字体的用户(特别如果是设计师等),该情况难免会出现,会严重影响用户体验,请尽快解决。
该字体文件的下载地址附后,作为测试验证使用。
链接: https://pan.baidu.com/s/1CtEupMtelBZa0VqxRc4K1A?pwd=u2mu
Latke 是一款以 JSON 为主的 Java Web 框架。
IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。
Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。
OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。
LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!
FlowUs.息流 个人及团队的新一代生产力工具。
让复杂的信息管理更轻松、自由、充满创意。
沉迷游戏伤身,强撸灰飞烟灭。
Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。
快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。
Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.
哪里都缺人,哪里都不缺人。
有什么新发现就分享给大家吧!
如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。
Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。
Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。
BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。
笔记整理交给我,一心只读圣贤书。
TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。
Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。
Quicker 您的指尖工具箱!操作更少,收获更多!
MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。
这是一个不能说的秘密。
VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。
HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于