有时会发生编辑丢失的问题

本贴最后更新于 394 天前,其中的信息可能已经时移世易

有时编辑一段内容后进行同步,下次打开笔记时却发现这段内容复原了。

从数据历史中可以找到当时的编辑,回滚就能找回编辑的内容。但有时经过同步,会发现这段内容又复原了。有时确认内容已经找回,但过一会自动同步或者下次打开时,内容又双叒复原了。

这种情况(在几个月中)发生过不少次,试过手动同步、重建索引和重新导入数据仓库,有时能解决一次问题,但还是时不时发生。

问题大概就是如上,也没什么精确的复现步骤和截图(因为我也没法判断什么时候发生,不是每次都有问题)。上传一份系统日志,求大佬帮看下。

systemlog1.zip

  • 思源笔记

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

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

    22382 引用 • 89603 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 同步的设备,建议看下本地设备的时间是否和北京时间不一致了。。很多时候会是这个问题。直接打开百度输入北京时间,然后看设备的时间。

    1 回复
  • gjfLeo

    时间是启用的“自动设置时间”同步的北京时间,应该没问题。

    (顺便补充一点主楼忘了提了的,没有同时使用多端。)

    1 回复
  • 这个说不准的,建议还是看下,有时候主板没电了就会,有时候双系统也会改变时间。剩下的就给 D 大看吧

  • 能告诉我问题发生的时间范围吗?日志有点多不好定位,谢谢。

    1 回复
  • gjfLeo

    今天早上 9 点之后就出现过。具体应该是我九点多发现有些内容丢了,于是去数据历史里执行了回滚。再之后又复原了。

    1 回复
  • 文档的 ID 麻烦复制出来发一下。

    1 回复
  • gjfLeo

    20231026103229-i4vyfjh

  • 可能是哪个设备上有“顽固文档”,总是把自己的时间莫名其妙更新成新的版本。曾经遇到过一次,用某个挂件做了一个思维导图(忘了哪个挂件了),同步到手机上后,在 PC 上删掉该文章,再打开手机,该文章又重新同步回了电脑上,反复试了好多次,最后启用了完全手动同步,才删除了。不过现在好像重复不出来了,也不敢随便用挂件了

    1 回复
  • gjfLeo

    感觉和多设备关系也不大。虽然我确实有多设备,但我平时绝大多数时间都在用同一台电脑,别的端很久才打开一次,出问题的文档可能都还没来得及同步过去。

  • 从日志中排查到昨天下午 17:55 和今早 9:23 出现了两次云端覆盖本地的情况,但暂时无法从代码上看出问题,稍后我们会加一些更细节的日志输出以便诊断该问题,麻烦发布新版后下载测试(如果方便升级 dev 版本的话请留意 GitHub Releases,如果不方便的话请等下个版本 v2.10.13 升级)。

    另外,我还想问下是否有配置过 syncignore(忽略文件),以及谢谢。

    2 回复
  • 另外,还有两种可能的情况:

    • S3 服务端没有正确处理上传的文件,因为从日志中是可以看出数据快照中变更的文件已经同步成功,但是下一次同步的时候云端快照并没有得到变更,云端依然时老旧的数据文件
    • 代理服务器没有正确处理上传请求,不太确定是不是代理服务器存在缓存机制导致

    这两个点麻烦老铁有空也逐一排除试试,谢谢。

    1 回复
  • temacc0531

    目前对比使用的时间是文件系统的文件修改时间吗,还是文件自己保存了一个时间的

    1 回复
  • 文件系统的文件修改时间。

  • gjfLeo 1

    感谢大佬排查,我回头留意一下这几点。没有配置过忽略文件。

  • gjfLeo

    今天更新了 v2.10.13-dev5 试了下,但出现了不太一样的问题。往常丢失的编辑在【数据历史-文件历史】中可以找到并直接回滚,但刚刚我测试时发现这次丢失的编辑在文件历史里找不到,只能在【数据历史-数据快照】中看到。

    附上几张截图和大致的操作过程(细节不一定完全一致):

    首先我新增了一段文字(截图中右侧的第二行),并点击了同步。

    Snipaste20231030095435.png

    稍后自动同步后,这段内容复原了。

    Snipaste20231030095345.png

    上面比较的是下图框出来的三个快照。跳过的那一个是修改了 conf.json(禁用了一个 CSS 代码片段),和问题无关。

    Snipaste20231030100512.png

    文件历史里有很多次这个文件的变更,但内容全都只有第一行。重建历史数据索引后也一样。

    Snipaste20231030100918.png

    这是这次的系统日志 systemlog3.zip,这次发生问题的文档是 20231027092334-fdsjqtl,时间是今早九点到十点之间(操作了不止一次)。请大佬再帮忙看下。

    1 回复
  • 你好,和之前的问题一样,我们添加的诊断日志并未输出(说明排除了本地对比算法潜在的 bug),所以基本可以确定是 S3 或者代理服务器的问题,麻烦你再逐个排除一下,谢谢。

    2 回复
  • gjfLeo

    谢谢,我再研究一下。但我这边代理服务器是公司办公环境提供的,S3 也是第三方服务,我不一定能做啥有效的操作。能否在这两方面出问题时,用户界面上给出一定提示呢?

    1 回复
  • 我观察了一下日志,lUpdated 是否是本地更新时间?然后合并的逻辑是比较 lUpdated 和 rUpdated,使用较高的一方为基准合并另一方?

    1 回复
  • 嗯,我再看看还有没有其他可能性,继续加一些日志排除一下,保持更新版本更新。

  • lUpdated 是云端最新,rUpdated 是本地最新,以最新覆盖旧的。

    1 回复
  • lUpdated 是云端最新吗?那问题更大了,这是我从 log 中截取的片段:

    图片.png

    标黄的是出问题的文件。重点观察标蓝的 lUpdated 时间戳,可以发现在后面的时间戳全部都是一样的,而且与之前的时间戳对比还被调回去了,无论是之前的 lUpdated 时间戳还是 rUpdated 时间戳都比之后的 lUpdated 时间戳要大。

    甚至于,我使用时间戳转化工具转化了一下,发现 1698369824875 恰恰就是 2023-10-27 09:23:34,也就是文档创建的时间:

    图片.png

    比起本地时间故障,我更倾向于认为是思源判断更新时间的机制出了问题。

    1 回复
  • 对,这就是问题所在,但是我们已经加了一些日志排除了算法影响。

    1 回复
  • 能否增加日志,把.sy 开头的文档信息也打印进去?同时能不能把时间戳打印成日期格式,目前这个排错确实麻烦。

    1 回复
  • 好的,下个版本会把所有数据对象上传、下载和删除都打印,还有重要的对比列表也有,我这还在跟一个云端数据损坏的问题,希望能定位到。

  • gjfLeo 1

    @88250 @zxhd86 上传了一份新版本的日志,请两位大佬再帮忙看一下。systemlog5.zip

    文档 ID 还是 20231027092334-fdsjqtl,发生时间是今天早上九点之后。这次从文件历史里可以找到记录直接回滚。

    2 回复
  • zxhd86 1 赞同

    日志看上去很奇怪,前一次同步成功更新了云端,下一次更新又用旧的云端覆盖了本地。

    图片.png

  • 88250 1 赞同

    image.png

    问题出在这里,09:21:21 的这次同步已经将最新文件(修改时间 2023-11-08 09:20:48)上传了,但是后面 29 分又重复了一次这个判断并上传,说明可能是获取到的最新快照或者是最近同步点有问题,但是这部分日志还是没打全,所以目前依然无法确认问题,下个版本继续补全日志,多谢反馈。

  • 下个版本我们做一个改进,避免旧的云端数据覆盖新的本地数据 Issue #9601 · siyuan-note/siyuan

    1 回复
  • gjfLeo 1

    感谢大佬的优化,这几天似乎没发生编辑后丢失了。但有一种情况我之前遗漏了,没有说到:除了编辑文档外,其他操作也会发生类似情况,例如新建文档、移动文档(好像还有重命名之类的)等。

    麻烦大佬再看一下,这里是日志 systemlog6.zip,这次是新建的文档 20231110171249-metpxrq 被复原(删除)了,在数据历史-文件历史中可以直接找回来。时间是今天下午 17:30 之后。

    1 回复
  • 88250 1 赞同

    感谢提供日志,分析了下,暂时没有结果,日志还是不够全面……

    我们会继续补全日志并发布 dev 版,方便的话请尽量保持使用 dev 版,以便参与测试,帮助我们定位该问题,多谢。

  • yw1551

    这个我确实也有碰到过,我目前通过手动同步解决

请输入回帖内容 ...

推荐标签 标签

  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 5 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖 • 1 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 724 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 3 关注
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    169 引用 • 506 回帖 • 1 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 764 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 63 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 72 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 454 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1348 回帖
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 629 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 3 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 673 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 169 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 62 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 1 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖 • 1 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    133 引用 • 189 回帖
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 2 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 699 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 137 关注
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 2 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 618 关注