打开下面这样一个有很多嵌入块的文档:
嵌入块显示不出来,而且软件的索引功能失效,其他所有引用块都点击不了,而且悬浮窗也显示不出东西,反链面板也全部失效,文档树也全部失效,看似没卡,实际上什么功能都用不了
而且此时软件无法关闭,只能用任务管理器关闭
打开下面这样一个有很多嵌入块的文档:
嵌入块显示不出来,而且软件的索引功能失效,其他所有引用块都点击不了,而且悬浮窗也显示不出东西,反链面板也全部失效,文档树也全部失效,看似没卡,实际上什么功能都用不了
而且此时软件无法关闭,只能用任务管理器关闭
我之前随便在一个新的工作空间试了下,忘了做了什么操作,日志中有以下记录,不知道能不能看出什么东西(前面几个 rebuilt database 是我主动重建索引的,我把一些东西复制到新工作工作空间,然后重建索引):
I 2021/11/14 12:43:47 box.go:499: rebuilt database for notebook [20210820214849-sbwv4pi] in [13.83s], tree stat [count=295, size=8.4 MB]
I 2021/11/14 12:43:51 box.go:499: rebuilt database for notebook [20210927211858-cnulnll] in [3.55s], tree stat [count=57, size=1.1 MB]
I 2021/11/14 12:44:50 box.go:499: rebuilt database for notebook [20210820214849-sbwv4pi] in [15.37s], tree stat [count=354, size=9.4 MB]
I 2021/11/14 12:44:54 box.go:499: rebuilt database for notebook [20210927211858-cnulnll] in [3.69s], tree stat [count=57, size=1.1 MB]
W 2021/11/14 12:46:36 conf.go:370: data is writing
I 2021/11/14 12:47:17 box.go:499: rebuilt database for notebook [20210820214849-sbwv4pi] in [63.57s], tree stat [count=704, size=22 MB]
E 2021/11/14 12:47:32 database.go:1084: begin tx failed: database is locked
goroutine 79128 [running]:
runtime/debug.Stack()
D:/go1.17/src/runtime/debug/stack.go:24 +0x65
github.com/siyuan-note/siyuan-src/kernel/sql.BeginTx()
D:/88250/siyuan-src/kernel/sql/database.go:1084 +0x51
github.com/siyuan-note/siyuan-src/kernel/model.BuildBlockPath({0xc0083c8540, 0x16})
D:/88250/siyuan-src/kernel/model/blockinfo.go:187 +0x65
github.com/siyuan-note/siyuan-src/kernel/api.getBlockBreadcrumb(0xc000ae4200)
D:/88250/siyuan-src/kernel/api/block.go:218 +0xf8
github.com/gin-gonic/gin.(*Context).Next(...)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/context.go:165
github.com/siyuan-note/siyuan-src/kernel/model.CheckAuth(0xc000ae4200)
D:/88250/siyuan-src/kernel/model/session.go:93 +0x467
github.com/gin-gonic/gin.(*Context).Next(...)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/context.go:165
github.com/gin-contrib/sessions.Sessions.func1(0xc000ae4200)
D:/gogogo/pkg/mod/github.com/gin-contrib/sessions@v0.0.3/sessions.go:52 +0x18d
github.com/gin-gonic/gin.(*Context).Next(...)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/context.go:165
github.com/gin-contrib/gzip.(*gzipHandler).Handle(0xc00066ef60, 0xc000ae4200)
D:/gogogo/pkg/mod/github.com/gin-contrib/gzip@v0.0.3/handler.go:60 +0x2ed
github.com/gin-gonic/gin.(*Context).Next(...)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/context.go:165
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc000ae4200)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/recovery.go:99 +0x82
github.com/gin-gonic/gin.(*Context).Next(...)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/context.go:165
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc000502820, 0xc000ae4200)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/gin.go:489 +0x63e
github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc000502820, {0x1441b08, 0xc000c6a1c0}, 0xc000ae4000)
D:/gogogo/pkg/mod/github.com/gin-gonic/gin@v1.7.4/gin.go:445 +0x1c5
net/http.serverHandler.ServeHTTP({0x143dec8}, {0x1441b08, 0xc000c6a1c0}, 0xc000ae4000)
D:/go1.17/src/net/http/server.go:2878 +0x43b
net/http.(*conn).serve(0xc000708000, {0x144cf00, 0xc000541410})
D:/go1.17/src/net/http/server.go:1929 +0xb08
created by net/http.(*Server).Serve
D:/go1.17/src/net/http/server.go:3033 +0x4e8
I 2021/11/14 12:47:43 working.go:94:
现在我每次操作标题都得非常小心,要等大纲反应过来了才放心进行其他操作,不然很容易假死,而现在大纲反应太慢了,最近我对标题的操作又比较多,所以用起来比较心累 😂
又发现一个可能导致假死的问题,测试集发您邮箱了(只有一个文档)
首先 ctrl+alt+4 把一个标题变成普通段落,可以看到这时候左侧大纲中还没反应过来,这时候赶紧把列表转换为段落(要在大纲中还没发生变化的时候转换,手要快,如果大纲这时候已经变化了,即大纲第一行的"符号约定"已经没了,这时候很可能复现不了,当然有时候我没有按 ctrl+alt+4,直接把列表转换为段落也会假死),之后就假死了,这时如果没有假死,可以在这个文档上再 ctrl+z 撤回一下,之后应该也会假死:
不过这个好像不是完全假死,出现假死状态之后,等很久以后会恢复正常,可能是性能问题
目前主要是在列表中搞标题,以及列表转段落的过程容易出现假死状态,不止上面的复现方法。
还有就是现在大纲的反应确实太慢了,在文档中修改标题层级后,大纲有时候要 10 秒才反应过来,而且在大纲反应变化的过程中我换到别的文档,大纲也不会变化到别的文档的大纲,而是一直卡着,我猜是某个地方阻塞了。
还有假死会导致一个比较严重的问题,假死情况下仍然可以输入(但不能粘贴的东西),但是这个输入并不会保存到文件中,重启后写了的内容都会丢失。不知道这个问题能否防范,因为很多时候自己并不知道假死了,在文档里写了很多内容,然后突然程序崩溃重启,刚才写的内容都没了。
Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。
京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。
gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。
SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。
Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。
Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
子曰:“工欲善其事,必先利其器。”
webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。
Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。
IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。
Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。
脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。
OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。
jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。
Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用 。
人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。
Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。
Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。
PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。
Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于