列表有关的问题

本贴最后更新于 994 天前,其中的信息可能已经斗转星移

我有一个用列表与大量块引用编排的索引文件,在操作时出现了很多很多问题。经常内核崩溃、数据损坏,,,

然后经常编辑过程中内核假死,界面正常,但无法查看浮窗、设置属性等。

很多问题都莫名其妙,无法稳定复现,触发机制也不太明确。不过大体上看,很多与列表项的剪切粘贴有关。

Bug 1 粘贴的列表子项无法被同时折叠

感觉是没有被识别为 Children 的原因。

bug1.gif

这里还有一个神奇的问题:当我在列表的最下面剪切掉对应子项后,直接跳转到了文档开头。但我没法在其他文档中复现。

Bug 2 反复剪切粘贴列表项造成内核崩溃

大概的日志长这样:

I 2021/07/30 20:31:10 box.go:741: fix legacy tree [PARA/Temp.sy]
I 2021/07/30 20:31:16 box.go:741: fix legacy tree [PARA/Temp.sy]
I 2021/07/30 20:31:18 box.go:741: fix legacy tree [PARA/Temp.sy]
E 2021/07/30 20:31:25 transaction.go:40: begin tx failed: transaction has not been closed
F 2021/07/30 20:31:25 transaction.go:48: transaction failed: transaction has not been closed

应该是上面那个问题没处理好导致数据结构出错,然后崩溃。
尝试对这个问题文档进行清空,发现有列表项无法删除。对其进行操作,很容易再次导致内核崩溃。
但制造问题文档的操作有随机性,我没有录屏,也不能稳定复现。文档倒是保留了下来。

问题文档:Temp.sy.zip

Bug 3 引用换行造成的内核崩溃

F 2021/07/30 20:48:06 transaction.go:48: transaction failed: block not found

又是这一行报错。

bug3.gif

中间有一段时间假死,为了验证存活反复呼出属性面板,最终内核直接崩溃。

上面的 gif 是为了捕捉 bug 而录制的实际操作场景,接下来的是针对性的复现操作。

只能说是勉强复现了,很不稳定。但可以发现换行后引用在上方有一块残余空格,这个很稳定。中间又假死了。

bug4.gif

如果没有剪切粘贴,而是正常的引用,这样操作同样会出现一个空格,虽然不会造成内核崩溃,但大概也是个 bug.


用的时候很多 bug,找的时候又反而很难复现。目前来看比较稳妥的操作方式就是移动到对应位置再进行 Tab 缩进。

性能上我也隐约觉得有一些问题,但不知道是不是与什么触发了 bug 的操作有关。

相关文档:Chinese.zip

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18600 引用 • 69242 回帖 • 1 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Clouder

    在正常操作索引文档时,只使用移动和缩进也会有显著的内核假死现象,应该是性能有关的问题。等待一会就能恢复。

  • 其他回帖
  • 目前数据写入时只要存在任何报错就会直接退出内核进程,不做兼容处理,因为这里是最核心的地方,理论上不应该发生错误。我们选择将问题抛出来,对彻底解决问题有帮助,这样处理对用户日常使用也会造成较大干扰,之前只需要重新加载文档,但是现在需要重启进程。

    这部分因为需要大量测试反馈来覆盖编辑场景,所以一时半会我估计是难以彻底解决,但是只要能稳定重现的场景,我们就会尽快解决,也请使用者尽量帮助我们。

    保存方面的性能问题会在 v1.2.31 进行改进,应该能解决部分问题,谢谢。