Skip to content

容器块在顶层内容删除后撤销导致状态异常 #4342

Closed
@whuwangyong

Description

@whuwangyong

今天晚上连续遇到3次状态异常,受不了了。花费3小时反复测试,终于稳定复现出来:
容器块状态异常2

复现步骤(以列表块为例):

  1. 创建一个列表,并添加子项
  2. 剪切子项的父item(需使用Ctrl X快捷键,鼠标右键剪切不会触发)
  3. 用退格键删除父item
  4. Ctrl Z 撤销,触发异常

试了各种列表和引述块,都这样。推测容器块都有这个问题。(但是标题块行为不同,剪切时直接整个块消失,没有留下一个可以用退格键删除的空块。标题块的这个特性不知道是哪个版本加的。我记得1.7.x版本,标题块这样操作也会状态异常。
更新:标题块是叶子块,不是容器块。标题块id是下面内容的parent_id。我把这里混淆了。)

日志

不用说了,都是这一行:

E 2022/03/22 00:28:33 transaction.go:945: update data is nil

相关issue

#4310
#4170

Activity

self-assigned this
on Mar 21, 2022
whuwangyong

whuwangyong commented on Mar 21, 2022

@whuwangyong
Author

补充:

在状态异常后,有时点击重建索引无法退出程序,一直卡住,只能杀进程。所幸数据未丢。
正在清理过时索引

微信截图_20220322003623

88250

88250 commented on Mar 21, 2022

@88250
Member

我这里能够重现了,非常感谢!

重建索引的问题稍微进行了调整,下个版本请继续帮忙留意。

老铁早点休息,晚安。

added this to the 1.9.3 milestone on Mar 21, 2022
88250

88250 commented on Mar 21, 2022

@88250
Member

按照楼主老铁的思路,补充引述块和超级块的重现步骤:

issue

issue

Kitsuta-le

Kitsuta-le commented on Mar 22, 2022

@Kitsuta-le

太牛了哥!

whzecomjm

whzecomjm commented on Mar 22, 2022

@whzecomjm

感谢 今天写笔记因为这个原因快崩溃了

Nafish-Narang

Nafish-Narang commented on Mar 23, 2022

@Nafish-Narang

我也遇到了这个问题!但是没有摸索出复现方法,期待1.9.3版本的表现!感谢你!

88250

88250 commented on Apr 11, 2022

@88250
Member

@mangost 升级到最新版试试。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @88250@Vanessa219@whuwangyong@whzecomjm@Nafish-Narang

      Issue actions

        容器块在顶层内容删除后撤销导致状态异常 · Issue #4342 · siyuan-note/siyuan