【思源新人指南】莫名其妙遇到锁定空间,提示「避免潜在的数据损坏」该怎么办

本贴最后更新于 331 天前,其中的信息可能已经渤澥桑田

思源在若干个版本之前更新后,禁止了第三方同步盘的时候,目的是防止多个进程同时读写同样的文件目录,造成数据损坏。

开发者根据接受到用户反馈出现的四个阶段:

  1. 发现同步盘问题,尝试使用文件锁解决:“先说结论:第三方同步盘可能造成数据损坏,目前因为使用同步盘带来的数据损坏问题是无法彻底解决的” https://ld246.com/article/1626537583158

  2. 发现文件锁解决不了问题:“这个不是通过代码能解决的,而是操作系统本身就不支持两个不同的进程同时安全读写同一个文件。” 于是发公告不支持第三方网盘同步: https://ld246.com/article/1664442401353

  3. 开源云端服务同步,暂时免费开放端对端加密同步,数据同步支持第三方 S3 储存 https://github.com/siyuan-note/siyuan/issues/6445

  4. 发现发了公告还是有用户使用同步盘丢数据,没办法就去做了限制 https://github.com/siyuan-note/siyuan/issues/7683

热知识 1:notion flowus 这类软件不会出现这种问题是因为他们是云笔记,根本不存在读写文件的问题。

热知识 2: obsidian logseq 这类软件同样有这个问题,但是他们不说

image.png

image.png

但是读写文件往往不光光是同步盘的问题,有时候我们就算没有开启同步盘也可能出现这种让人心肺停止的问题:

image.pngc80f0c11b57cbc4ca77d222ba3b01dcb.jpeg

不要怕!这种情况下往往是有未知的进程在读写我们的思源数据。解决方法很简单:找到这个进程,把它关掉。

热知识 2:其实不管是同步盘还是别的进程,他们造成思源文件系统读写错误的原因本质是一样的,都是这些的进程(程序)同时在和思源争抢数据文件的读写权限,造成了冲突。

同步盘会时时刻刻去监听麾下的文件系统,所以往往是导致思源文件系统冲突的罪魁祸首——但这并不代表着其他软件不会造成这种问题。只不过大部分软件不会闲着没事跑到你的数据目录下读写,既然他们都不会来淌这篇雷池,自然不会炸雷。

但是倘若就是有那么个别的进程闯了进来,嘿——那也确实有可能触发冲突的问题。

热知识 3:你可能会有些抱怨这种莫名其妙的设定。但是以前确实发生过别的同步盘进程和思源抢夺读写数据——最后导致用户数据损害的案例。这是 windows 设计的锅,没法避免。所以开发者只能采用这种比较保守的做法,一旦检测到有别的进程正在占用,就直接锁定发出警告,从而避免文件损害的可能。

方法 1:powertoy

  1. 安装 powertoy 软件,这是微软官方提供的一个 windows 工具软件

  2. 打开 powertoy,启用 File Locksmith

    image.png

  3. 找到你工作目录的文件夹,右键点击「使用此文件的进程」

    image.png

  4. 原来是 utools 在使用我们的文件

    image.png

  5. 不建议直接点击「结束进程」,可能会存在意外的问题,最好是通过正常的方法关闭软件。

    我正常关闭了 Utools 之后,现在只有一个文件管理器了,这回就没事了

    image.png

方法 2:windows 资源管理器

如果你不想要下载一个额外的软件,还有一个更加原生的方案。

首先打开 windows 的资源管理器,然后打开「资源监视器」

image.png

点开之后,在 CPU 一页的下方,选择「搜索句柄」,并把疑似被工作空间的目录的路径填进去

image.png

稍等片刻之后,就可以看到所有占用了这个目录的进程,找到那些不属于思源的进程,然后把对应的程序关掉。

image.png

同样,非常不推荐直接在资源管理器里结束进程,更好的做法是

  1. 记下进程对应的 PID
  2. 在资源管理器当中找到对应 PID 的程序,然后通过正常方式关掉

image.png

注意,实测发现资源管理器有时候反而还不如 Powertoy 准确,如果你用方法 2 始终发现不了占用,但是思源一直提醒有文件读写 xowu,不妨使用方法 1 试一下。

  • 思源笔记

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

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

    21321 引用 • 84096 回帖 • 2 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 还有一个使用资源监视器的方案:

    Windows + S 搜索 资源监视器 并打开

    在资源监视器 CPU 页签中的 关联的句柄 子面板搜索 < 思源工作空间目录名称 >, 也能查询到具体是哪些程序占用了该目录下的文件

  • 91editor 1 评论

    妈耶,MAC 哭瞎在厕所,咋整噢

    lsof 命令? 这个 linux 可以用,mac 是 unix 我不知道能不能用。
    Frostime
  • 这个真不错,感谢

  • 同步问题遇到的人很多,定期自顶一下防沉。

  • sasser 1 1 赞同

    热知识:Obsidian 允许使用第三方同步盘,没有遇到类似问题。obsidina 不是云笔记,除了这个应该也有其他的笔记支持网盘同步。

    热知识 2:出现文件读写错误,并不一定是跟 siyuan 同时争抢读写权限,siyuan 放在后台没有操作也会这样,此时刻 siyuan 并不一定真打算写入数据

    因为 siyuan 会持续监听是否被其他进程打开了,一直在不断的创建文件 check_consistency,然后重命名文件,删除文件,对磁盘 IO 读写

    代码见:https://github.com/siyuan-note/siyuan/blob/master/kernel/util/runtime.go#L173

    热知识 3:就算有锁定检查,保守的做法应该是重试、延时重试,或者弹框提示用户,而不是直接退出

    用的时间过去比较久了,以上情况可能有变化,说得不对之处请见谅

    1 回复
  • 对,2 是更严谨的说法,3 确实有道理,我也觉得直接退出有点激进了。

    至于 ob 那个属于我知识盲区了,可能是数据结构和同步原理不一样?这个就属于比较深入的技术细节了。

    思源的做同步面临的问题比 Ob 要复杂,一个是底层的数据结构完全不同,另一个是思源相比单纯的同步还多了一大堆数据快照端到端加密之类的东西,文件 IO 需求可能会更密集一些。

    1 操作
    Frostime 在 2023-06-28 23:17:04 更新了该回帖
  • Miobowl

    Mac 还是隔一会儿就遇到这个问题

    1 回复
  • QHS

    微信截图 20230906100524.png

    没有占用还被锁,哭都没地方哭

    重启无效,重装无效,直接打不开,微软商店安装的

    突然这样

  • bluove

    那我用各种同步盘,同时用 word, ppt, wps, 等等软件打开创建修改文件,怎么没报错?

    合着只要用同步盘,同步盘里面的文件就都不能被打开创建修改了???

    这个帖子把锅都甩给操作系统,何必如此? 不就是想收钱吗,逼迫用户为 wdav,S3 同步方式付费。思源已经声明 wdav,S3 同步即将要收费了,虽然也不贵,48 元终身支持。

    3 回复
  • 谁给你说可以类比 word ppt 了?他们原理机制和思源一样吗?他们读写文件系统的频率和思源一样吗?

    不是我把锅甩给操作系统,而是长期的事件证明了就是系统的问题

    开发者根据接受到用户反馈出现的四个阶段:

    1. 发现同步盘问题,尝试使用文件锁解决:“先说结论:第三方同步盘可能造成数据损坏,目前因为使用同步盘带来的数据损坏问题是无法彻底解决的” https://ld246.com/article/1626537583158

    2. 发现文件锁解决不了问题:“这个不是通过代码能解决的,而是操作系统本身就不支持两个不同的进程同时安全读写同一个文件。” 于是发公告不支持第三方网盘同步: https://ld246.com/article/1664442401353

    3. 开源云端服务同步,暂时免费开放端对端加密同步,数据同步支持第三方 S3 储存 https://github.com/siyuan-note/siyuan/issues/6445

    4. 发现发了公告还是有用户使用同步盘丢数据,没办法就去做了限制 https://github.com/siyuan-note/siyuan/issues/7683

    不明白背后的原因可以去问、可以去讨论,而不是直接妄自推断前因后果,然后拿着未加检验的猜想大放厥词。

    你觉得你自己仿佛很聪明,看透了事实的“真相”;但在实际上知道是怎么回事的人看来,可能像个莫名其妙的 xx(我给你基本的尊重,手动和谐)

    以上为给你的所有回复,你要觉得我侮辱你可以抗议,但是我不会继续回复你的。

    1 回复
  • temacc0531

    所有的软件都有这个问题,只要读写文件的频率够高,你举的软件例子一样会

    当然你可能只相信自己所认为的,嗯,自重

    1 操作
    temacc0531 在 2023-11-08 11:54:29 更新了该回帖
  • 这是放在 onedrive 里的 xlsx 文件,修改后保存同步,然后 WPS 在同步时打开显示的锁定。并不是不存在,只是你没遇到罢了。

    9c1c705c16948991a653e6e6604050a2.png

    aabccd411e09c13ef75c75833769af3d.png

  • bluove

    你说得对。任何同步盘、云盘、onedrive 等等下面的文件,都不能用。你宣布:同步盘云盘是反人类设计,同步盘云盘下的文件大多数时候都不能被打开、创建、修改、编辑。

  • soltus 1 评论

    怎么现在还没解决。。。

    操作系统的特性
    JeffreyChen
  • wfliuhao

    按照上面的方法看了下,没有进程占用,那怎么办?

    1 回复
  • 不行的话就手动迁移工作空间(我是这样解决的)

  • Bishan

  • jjjiii

    占用进程就只有 explorer,还是被锁,无法打开

  • powcai940606

    我 windows 也是一样

请输入回帖内容 ...

推荐标签 标签

  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 344 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    540 引用 • 672 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖 • 1 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 198 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    131 引用 • 1114 回帖 • 142 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 345 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 97 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖 • 2 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 46 关注
  • Sillot

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

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

    主仓库地址:Hi-Windom/Sillot

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

    注意事项:

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

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

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

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

    19 引用 • 13 回帖 • 662 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    148 引用 • 257 回帖 • 1 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 145 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 443 关注
  • RESTful

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

    30 引用 • 114 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 621 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 648 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    105 引用 • 127 回帖 • 417 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 4 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    263 引用 • 664 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 340 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    52 引用 • 37 回帖 • 1 关注
  • C++

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

    107 引用 • 152 回帖 • 1 关注
  • Java

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

    3170 引用 • 8209 回帖 • 1 关注
  • 分享

    有什么新发现就分享给大家吧!

    246 引用 • 1786 回帖 • 1 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 7 关注