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

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

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

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

  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 试一下。

  • 思源笔记

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

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

    22378 引用 • 89573 回帖

相关帖子

欢迎来到这里!

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

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

    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 也是一样

请输入回帖内容 ...

推荐标签 标签

  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 683 关注
  • 小薇

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

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

    34 引用 • 467 回帖 • 743 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 4 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    123 引用 • 74 回帖 • 1 关注
  • Solo

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

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

    1434 引用 • 10054 回帖 • 489 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 762 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 439 关注
  • InfluxDB

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

    2 引用 • 73 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 1 关注
  • 倾城之链
    23 引用 • 66 回帖 • 137 关注
  • SEO

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

    35 引用 • 200 回帖 • 22 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2031 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 530 关注
  • 思源笔记

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

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

    22378 引用 • 89573 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖 • 3 关注
  • Thymeleaf

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

    11 引用 • 19 回帖 • 355 关注
  • jQuery

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

    63 引用 • 134 回帖 • 724 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 733 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 334 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 304 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖 • 2 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 1 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    26 引用 • 84 回帖 • 1 关注
  • Facebook

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

    4 引用 • 15 回帖 • 454 关注
  • danl
    132 关注