多端同步数据丢失

使用思源笔记一年多了,同步一直很方便好用。

昨天突然出现了一次异常情况。

版本:v3.1.10

我在公司的 MacOS 上记录了一些笔记,回到家用 Windows 电脑打开思源笔记后,发现公司的笔记没有同步过来,期初以为自己记错了。不过在 Windows 上,时不时的会弹出 Tree not found v3.1.10。

今天来到公司,启动思源笔记,发现昨天的笔记不见了,同步成家里 Windows 上的情况了。

好在我通过快照恢复到昨天的笔记并重新同步了快照,这是第一次遇到这种旧笔记覆盖新笔记的情况。

从云端快照的截图上可以看出体积变化:最新的一个 2.44GB 是通过昨天的 2.44GB 恢复出来的,恢复后笔记都回来了。

image.png

  • 思源笔记

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

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

    22573 引用 • 90570 回帖 • 3 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8212 引用 • 37471 回帖 • 159 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
    1. 用的是官方同步吗?
    2. 导出日志上传一下
    1 回复
  • 用的是官方的同步

  • 需要上传两个端的日志才方便分析,谢谢。

  • houzy 1 评论
    这是 macos 的日志,Windows 的日志我只能回家上传了
    houzy
  • 情况和这个有点像,也是时不时的弹窗 tree not found。Issue #12754 · siyuan-note/siyuan

  • 从日志上看是今早 macOS 同步了 Android 端的最新快照:

    I 2024/11/05 09:45:05 sync.go:1581: got cloud latest [device=25ofgfxixndm/android, id=aa7ce1fa954d634910a8ecdfe3789bc01b3475c4, files=6715, size=2.43 GB, created=2024-11-05 09:43:29]
    

    还需要发一下 Android 上的日志。

  • systemlog1.zip

    安卓是上班路上打开看了一眼,没有做什么编辑动作。这是安卓的日志。

    1 回复
  • Android 端的日志早上也是同步了 Windows 端凌晨的快照:

    I 2024/11/05 09:43:03 sync.go:1581: got cloud latest [device=8ef9de99-0089-4af2-bda7-7e817cf1a9de/windows, id=6222bc6a6da5c722a25479b0a7d2d27bce79aa2b, files=6715, size=2.43 GB, created=2024-11-05 00:15:22]
    

    那看来还是需要 Windows 端的日志,等晚上你到家以后麻烦上传回复我一下,谢谢。

  • systemlog.zip

    这是 windows 的日志

    @88250

    1 回复
  • houzy 1 评论

    另外,Windows 下还是时不时弹 tree not found v3.1.10,不知道为啥

    终于知道咋回事了,因为我打开了一个已经不存在的文档,关闭后不弹了
    houzy
  • 你好,我们分析发现是 Windows 端 3 号中午 13:25:13 的一次同步未完成导致的问题:

    image.png

    猜测可能是因为系统休眠导致同步未完成,4 号 21:22:12 系统唤醒后继续同步,导致最终使用了旧的快照 0e86a7efec8c2122edaad9fa8da087a0c1c9e410 覆盖了数据。

    这种情况似乎不太好改进了,因为无法根据同步耗时来判断同步是否正常(有的时候因为网速或者数据量同步时间是会长一些,虽然不可能长达一天,但是几个小时是可能的),建议使用时还是确保同步完成再休眠电脑,感谢反馈。

    3 回复
  • 好的,我下次注意一下。有时用完就扣上笔记本休眠了。

  • 能不能就像同步锁那种,开始同步写一个 dummy 文件,结束同步写一个 dummy 文件并且删掉前一个 dummy 文件,如果只有开始同步的 dummy 说明中途被截断了,如果两个都存在就说明未知异常,如果只有结束同步的 dummy 就说明同步成功了。

    dummy 里还可以记上设备的 id

    1 回复
  • lumama

    ____能不能做一个同步锁,每次开始同步时,打个标记,同步完再打一个标记,如果中间哪一次有同步中断,是同一个设备没有内容更改的话就继续同步,如果有本地更改后的的内容和云端不一致,有冲突,提示让用户自己选择处理冲突内容,或者同时保留冲突内容,让用户去选择更改。(根据最后的编辑时间)

    1 回复
  • 88250 1

    写入后立即读取文件不一定可靠。

  • 楼主的这个场景代码上无法判断中断的(因为实际上没有中断,只是时间太长)。

请输入回帖内容 ...

推荐标签 标签

  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 790 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 546 关注
  • DNSPod

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

    6 引用 • 26 回帖 • 508 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 536 关注
  • 房星科技

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

    6 引用 • 141 回帖 • 590 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    110 引用 • 54 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 588 回帖
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 209 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 561 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    570 引用 • 3533 回帖
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 662 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 133 关注
  • Wide

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

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

    30 引用 • 218 回帖 • 629 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 59 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    945 引用 • 943 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 358 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 684 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 6 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 23 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    16 引用 • 124 回帖
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 628 关注
  • Sillot

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

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

    主仓库地址:Hi-Windom/Sillot

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

    注意事项:

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

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 9 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 107 回帖 • 1 关注