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

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

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

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

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

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

systemlog1.zip

  • 思源笔记

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

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

    27188 引用 • 113786 回帖

相关帖子

欢迎来到这里!

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

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

    1 回复
  • gjfLeo

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

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

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

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

    1 回复
  • gjfLeo

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

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

    1 回复
  • gjfLeo

    20231026103229-i4vyfjh

  • wenbocn

    可能是哪个设备上有“顽固文档”,总是把自己的时间莫名其妙更新成新的版本。曾经遇到过一次,用某个挂件做了一个思维导图(忘了哪个挂件了),同步到手机上后,在 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

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

请输入回帖内容 ...

推荐标签 标签

  • C++

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

    108 引用 • 153 回帖 • 2 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 146 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    381 引用 • 1874 回帖 • 3 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 758 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 2 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 65 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 252 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 7 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3203 引用 • 8217 回帖
  • OnlyOffice
    4 引用 • 26 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 415 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    192 引用 • 3959 回帖 • 1 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 2 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 59 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    46 引用 • 114 回帖 • 141 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 46 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 618 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 517 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    16 引用 • 143 回帖 • 1 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    303 引用 • 772 回帖
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 536 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 453 关注
  • gRpc
    11 引用 • 9 回帖 • 102 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 52 关注