新建与删除文件同名的seadoc,会恢复删除的内容,这是feature还是bug?

请按照以下模版详细描述您遇到的问题:

当前服务器版本

13.0.15

部署/操作过程(请说明二进制部署/docker部署;出现错误的操作步骤)

按照文档正常部署(docker),未出现错误。

错误截图

错误日志

浏览器控制台错误信息(如果相关,请提供截图信息)


我按照文档正常部署,未出现问题,但是我发现了一个很奇怪的地方,不知道是feature还是bug。
复现:

  1. 新建一个seadoc文件A.sdoc,编辑内容为“TEST”

  2. 删除A.sdoc,清空回收站

  3. 再次新建A.sdoc(与之前同名),会发现这个文件里面内容是“TEST”,也就是说恢复了之前的内容,这是feature还是bug?

我确定这不是缓存,而是持久化的。因为我重启容器,并且换了无痕浏览器模式,新建同名文件还是会这样。其他文件就不会。特殊的是,onlyoffice的word文件也会这样,提示file version change,但是过一段时间就好了。seadoc无论怎么样,只要是名字一样,就会恢复之前的内容,这是feature?

我想知道seadoc里面的内容,比如上面的TEST,到底存在哪里?我发现seadoc-data里面根本没有内容,所以很奇怪这个TEST是从哪里恢复过来的,mysql数据库里面?

现在 seadoc 是这样的逻辑,这是一个 feature,你说的这个情况“再次新建与之前同名的文件 A.sdoc” 这个情况比较少。

我理解可能是这样的逻辑,仅供参考:因为 seadoc 需要支持多人同时编辑,当A用户删除了这个文档,服务器并不是立即把数据直接保存在数据库,数据可能放在缓存中。服务器每隔一段时间,会将最新的数据保存在服务器(否则多人多次操作数据量很大数据库扛不住)。你的操作是,先删除一个 seadoc 然后立即新建一个同名的 seadoc,可能此时其他用户,数据库还没有完成同步,或者服务器上还有旧的缓存,所以就会恢复之前的内容。

感谢回复!我感觉也是因为多人协作的缘故。比如一个人把文件删了,另外一个人还在编辑的情况。但是这样的话,只要创建了seadoc,这个文件就一直存在了,除非手动清空。