remotely-save / remotely-save

Yet another unofficial Obsidian plugin allowing users to synchronize notes between local device and the cloud service. Supports S3, Dropbox, OneDrive, webdav.
Apache License 2.0
3.17k stars 157 forks source link

[Bug]: Deleted files or folders resurrected #611

Open Barmaid1076 opened 1 month ago

Barmaid1076 commented 1 month ago

What happened?

Cannot delete files and folders sometimes (BY SOMETIIMES I MEANT IT HAPPENS A LOT), the deleted file or folders somehow get regenerated.

Deleting a file doesn't delete it on my webdev server

Possible cause: I use this plugin on 3 devices, windows, iphone and ipad

What OS are you using?

Windows, iOS (iPhone, iPad)

What remote cloud services are you using? (Please choose the specified one if it's in the list)

webdav

Version of the plugin

latest

Version of Obsidian

latest

Using password or not

Ensure no sensitive information

fyears commented 1 month ago

are you doing some operations concurrently on the same folder on the multiple devices?

且可以用中文反馈

Barmaid1076 commented 1 month ago

在这些情况发生的时候没有同时操作同一个文件,

但是之前有过好奇尝试两个设备同时修改同一个其他的markdown文件, 结果就是一个文件把另一个文件覆盖了,没有出现任何错误

还有就是删除单个文件的时候有的时候会成功 但是删除文件夹的时候几乎没有成功过, 总是会重新生成

seyeeL commented 4 weeks ago

我也没有两边都操作更新

nallebrean commented 3 weeks ago

I suspect it has something to do with links. I got the feeling that files that are linked alot are more likely to be recreated. But it doesn't really make sense to me. There are still only an erased file. Both the correct and the dobble one are pointing to correct files.

fyears commented 2 weeks ago

Please consider report the sync plans on each device. I suspect you still update something on one device.

nallebrean commented 2 weeks ago

You mean that obsidian are still working on something simultaneously with the sync?

2019YKL commented 2 weeks ago

我也出现了类似的情况。我在PC上移动了文件,将它从文件夹A到B文件夹内,结果今天Ipad同步发现所有的文件全部又恢复到A文件夹中了。我去查看存储桶发现已经被全部同步上去了。并且这导致我很难判断是否有丢失文件。

我的设备是Window11,Ipados 17.4.1

image

nallebrean commented 2 weeks ago

That has happened as well. To get around it, I moved a few files at a time and it worked on device Y. However, it did not work later on device Z.

Den ons 1 maj 2024 19:55JK2333 @.***> skrev:

我也出现了类似的情况。我在PC上移动了文件,将它从文件夹A到B文件夹内,结果今天Ipad同步发现所有的文件全部又恢复到A文件夹中了。我去查看存储桶发现已经被全部同步上去了。

我的设备是Window11,Ipados 17.4.1

image.png (view on web) https://github.com/remotely-save/remotely-save/assets/51532948/1ed67232-db05-4969-a345-65b8ab87ed20

— Reply to this email directly, view it on GitHub https://github.com/remotely-save/remotely-save/issues/611#issuecomment-2088842863, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEN5HFJJIW6HMLIVMVAKJQLZAEUAPAVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBYHA2DEOBWGM . You are receiving this because you commented.Message ID: @.***>

fyears commented 2 weeks ago

may i ask anyone reproduce the error using a new, only installing remotely save, test vault and then upload sync plans? remember to remove any sensitive personal info

nallebrean commented 1 week ago

The problem seems to be with the "Deletion Destination". When it's set to "system default (default)", it works, but when set to "Obsidian .trash folder", the files are NOT moved from the corresponding disk folder, and I suppose the RS-sync just reads them back. See my attached PDF with screenshots.

2019YKL commented 1 week ago

现在多端更新简直是灾难,删除了文件还会出现,移动了文件又会重新生成到移动前的位置

nallebrean commented 1 week ago

Quick temporary fix is to set the removed file setting to default!

Den sön 5 maj 2024 18:15JK2333 @.***> skrev:

现在多端更新简直是灾难,删除了文件还会出现,移动了文件又会重新生成到移动前的位置

— Reply to this email directly, view it on GitHub https://github.com/remotely-save/remotely-save/issues/611#issuecomment-2094865135, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEN5HFKIQLAFJRRCWV3WRRDZAZLLTAVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUHA3DKMJTGU . You are receiving this because you commented.Message ID: @.***>

2019YKL commented 1 week ago

I always set it to the default value, which doesn't seem to be the cause of the bug.

Quick temporary fix is to set the removed file setting to default! Den sön 5 maj 2024 18:15JK2333 @.***> skrev: 快速临时修复是将已删除的文件设置设置为默认值!

2024 年 5 月 5 日 18:15JK2333 @.> skrev: 现在多端更新简直是灾难,删除了文件还会出现,移动了文件又会重新生成到移动前的位置 — Reply to this email directly, view it on GitHub <#611 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEN5HFKIQLAFJRRCWV3WRRDZAZLLTAVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUHA3DKMJTGU . You are receiving this because you commented.Message ID: @.>

2019YKL commented 1 week ago

I've tested this several times and found that deleting a file on Mac/window doesn't remove the same file on the Ipad, and then a certain sync will sync the ipad's wrong file up again so that the version goes back down again.

fyears commented 1 week ago

I've tested this several times and found that deleting a file on Mac/window doesn't remove the same file on the Ipad

are you using auto sync? after deleting a file on windows has the deletion synced on remote (eg. onedrive website)?

@2019YKL

nallebrean commented 1 week ago

It's strange that the Obsidan didn't move the files on the A client when I remove them. An obsidan bug? The removed file setting in RS should not really makes a different on the A client. Only on the B client when files has been synced as removed.

Den sön 5 maj 2024 18:32JK2333 @.***> skrev:

I always set it to the default value, which doesn't seem to be the cause of the bug.

Quick temporary fix is to set the removed file setting to default! Den sön 5 maj 2024 18:15JK2333 @.***> skrev: 快速临时修复是将已删除的文件设置设置为默认值!

2024 年 5 月 5 日 18:15JK2333 @.

> skrev: … <#m1509537774644188110> 现在多端更新简直是灾难,删除了文件还会出现,移动了文件又会重新生成到移动前的位置 — Reply to this email directly, view it on GitHub <#611 (comment) https://github.com/remotely-save/remotely-save/issues/611#issuecomment-2094865135>, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEN5HFKIQLAFJRRCWV3WRRDZAZLLTAVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUHA3DKMJTGU https://github.com/notifications/unsubscribe-auth/BEN5HFKIQLAFJRRCWV3WRRDZAZLLTAVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUHA3DKMJTGU . You are receiving this because you commented.Message ID: @.>

— Reply to this email directly, view it on GitHub https://github.com/remotely-save/remotely-save/issues/611#issuecomment-2094869513, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEN5HFO54ZCVETNPME455FDZAZNIXAVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUHA3DSNJRGM . You are receiving this because you commented.Message ID: @.***>

fyears commented 1 week ago

@nallebrean @2019YKL @Barmaid1076 @seyeeL


Don't need to guess. Please follow the steps precisely, and see any step doesn't return the same result as my description. Please, really precisely, do not do anything more or less.

  1. Windows

    1. On Windows, create new vault naming "testvault"
    2. On Windows, Obsidian should create a default file "Welcome.md".
    3. On Windows, create new folder "testfolder1", create new file inside the folder "testfolder1/testfile1.md". Write something into that md file.
    4. On Windows, install remotely save
    5. On Windows, configure webdav (I use infinicloud). DO NOT TOUCH any other settings!!!! No setting password, not setting auto run, and deletion destination by default should be system trash.
    6. On Windows, sync
  2. infinicloud website

    1. go to infinicloud website, check these are generated: folder testvault, folder testvault/testfolder1, file testvault/testfolder1/testfile1.md, file testvault/Welcome.md. The expected behaviour is that all of them are generated.
  3. iphone

    1. On iphone, create new vault naming "testvault"
    2. On iphone, Obsidian should create a default file "Welcome.md".
    3. On iphone, install remotely save
    4. On iphone, configure webdav (I use infinicloud). DO NOT TOUCH any other settings!!!! No setting password, not setting auto run, and deletion destination by default should be system trash.
    5. On iphone, sync
    6. On iphone, check all these are generated in the vault: folder testfolder1, file testfolder1/testfile1.md, file Welcome.md. The expected behaviour is that all of them are generated.
  4. windows

    1. On Windows, delete the folder testfolder1
    2. On Windows, sync
    3. On Windows, the sync should fail, because of the deletion protection
    4. On Windows, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)".
    5. On Windows, sync
    6. The sync should succeed.
  5. infinicloud website

    1. go to infinicloud website, check these are deleted or not: folder testvault/testfolder1 and file testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.
  6. iphone

    1. On iphone, sync
    2. On iphone, the sync should fail, because of the deletion protection
    3. On iphone, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)".
    4. On iphone, sync
    5. The sync should succeed.
    6. On iphone: check these are deleted or not: folder testvault/testfolder1 and file testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.

不需要猜测。请完全按照以下步骤操作,看看哪一步操作结果和我的描述不一样。请注意,完全按照,不要做多了,不要做少了。

  1. Windows

    1. Windows 创建新的库,库名字叫做 testvault
    2. Windows 里 Obsidian 自动在新的库创建了 Welcome.md 文件。
    3. Windows 创建文件夹 testfolder1 ,文件夹里创建文件 testfolder1/testfile1.md,随便写点东西
    4. Windows 安装 remotely save
    5. Windows 设置 webdav。我用 infinicloud。不要修改其他任何设置!!!不设置密码,不设置自动运行,删除目的地默认是系统回收站。
    6. Windows 触发同步。
  2. infinicloud 网站

    1. 去 infinicloud 网站,检查 testvault文件夹是否有生成,testvault/testfolder1 文件夹是否有生成,testvault/testfolder1/testfile1.md 是否有生成,testvault/Welcome.md 是否有生成。期待行为是所有都生成了。
  3. iphone

    1. 打开 iphone Obsidian,创建新的 vault,名字叫 testvault
    2. iphone Obsidian 自动在新的库创建了 Welcome.md 文件。
    3. iphone obsidian 安装 remotely save
    4. iphone obsidian 设置 webdav。我用 infinicloud。不要修改其他任何设置!!!不设置密码,不设置自动运行,删除目的地默认是系统回收站。
    5. iphone 触发同步
    6. 检查 iphone obsidian 的 valut 内是不是生成了:testfolder1 文件夹,testfolder1/testfile1.md 文件,Welcome.md 文件
  4. windows

    1. windows ,删除 testfolder1 文件夹
    2. windows 触发同步
    3. windows 应该触发了保护,同步失败
    4. windows 的 remotely save 设置,修改删除保护为 100%,也即,去除保护
    5. windows 触发同步
    6. 这时候应该同步成功了
  5. infinicloud 网站

    1. 去 infinicloud 网站,检查 testvault/testfolder1 文件夹是不是已经被删除了,期待行为是被删除了
  6. iphone

    1. iphone 触发同步
    2. iphone 应该触发了保护,同步失败
    3. iphone 的 remotely save 设置,修改删除保护为 100%,也即,去除保护
    4. iphone 触发同步
    5. 这时候应该同步成功了
    6. 检查 iphone obsidian 的 vault 内的 testfolder1 是不是被删除了,期待行为是被删除了。
nallebrean commented 1 week ago

Sorry but what will "Server Address" be for infinicloud?

2019YKL commented 1 week ago

我使用的是S3阿里云服务。我采取了以下措施来尝试正常同步,在所有的设备中,我下方的设置是一致的。

image

关掉自动运行

image

设置垃圾文件目标文件夹为系统回收站

image

全部关闭精准修改时间

现在我的行为如下:

image

Mac删除Inbox所有文件,手动同步,查看S3存储桶文件变化,文件被删除,与预期一致。

创建一个文件夹,新建文件,尝试同步,文件被新增,与预期一致。

image

此时S3的存储桶 Inbox下只有一个测试.md文件。

前往iPad同步,iPad无法正常同步,没有创建测试.md新文件,也没有删除我图中打上马赛克的旧文件

同步阶段一直显示如下日志,但同步的文件一直在变动,即时我根本没有改动这些文件。

Remotely Save 正处于此阶段:触发 manual。

running!中断
syncing progress=1377/1074,decision=conflict_modif ied_then_keep_remote,path=02 Area/B
12/2022/2022-11-17.md, source=manual

这个时候,Ipad的同步其实一直是没有完成的阶段,但是能把已经删除的文件上传上去,并且不会删除旧文件

image

这时候,存储桶重新被写入,Mac手动同步后,重新拉取了Mac上一个版本就删除的全部文件。于是同步出现问题。

抱歉我没办法新开一个库来测试,但是我已经按您的要求修改了下方几个要点

我还测试了Mac和Windows之间的同步,有一段时间他们是能如期同步的,大多同步错误都发生在iPad和iPhone当中,他们无法如期删除文件,会莫名同步一些没有修改的文件导致同步无法顺利运行,一直卡在某个同步阶段,并重新上传之前版本的文件。

由于Mac/Ipad之间的同步都无法如期运行,我没有再测试Windows/iPad之间的同步。

2019YKL commented 1 week ago

在这些情况发生的时候没有同时操作同一个文件,

但是之前有过好奇尝试两个设备同时修改同一个其他的markdown文件, 结果就是一个文件把另一个文件覆盖了,没有出现任何错误

还有就是删除单个文件的时候有的时候会成功 但是删除文件夹的时候几乎没有成功过, 总是会重新生成

是的,我测试也是如此,删除文件在iPhone和iPad表现不稳定,有时候能正常删除,有时候无法正常删除。

fyears commented 1 week ago

@2019YKL

Mac删除Inbox所有文件,手动同步

删除文件之前,mac和ipad已经进行了完全一致同步了吗?也就是说,那时候之前,mac,ipad,s3 三方是完全一致,内容一致,修改时间一致吗?这是先决条件啊

前往iPad同步,iPad无法正常同步,没有创建测试.md新文件,也没有删除我图中打上马赛克的旧文件。

ipad 上导出同步计划然后看看你马赛克的那些被重新上传的文件的信息?是一个大的json片段。可以改掉json内的实际文件名。

抱歉我没办法新开一个库来测试

为啥呢,新建一个 vault 会有什么成本?

fyears commented 1 week ago

Sorry but what will "Server Address" be for infinicloud?

@nallebrean please refer to the screenshot here https://github.com/remotely-save/remotely-save/tree/master/docs/remote_services/webdav_infinicloud_teracloud

2019YKL commented 1 week ago

删除文件之前,mac和ipad已经进行了完全一致同步了吗?也就是说,那时候之前,mac,ipad,s3 三方是完全一致,内容一致,修改时间一致吗?这是先决条件啊

不,Mac和s3是一致的,插件可以正常工作。

插件有bug后,我ipad端没有写入/删除文件变动,只是一直在测试Ipad同步。

至于您说的全部一致,是不是先决条件,我并不清楚。

因为现在插件引起的Ipad无法正常同步,我有1700多个文件,我想不到什么办法让它和Mac完全一致。

image

这是我的一部分日志,我导出日志后发现可能是全量变动的,因为记录似乎有几万条。

image
2019YKL commented 1 week ago

问题描述

我新开了一个库,并只设置了所需的最小信息(服务地址、区域、Access key ID、Secret Access Key、Bucket Name),其他全部保持默认,发现同步问题依旧。

image

我在Mac上有一份创建库新生成的Welcome.md,我第一次使用同步,成功将文件同步上S3,此时Ipad是空库(刚刚创建)

image

随后我在Ipad填入所需最小信息,成功拉取S3文件,同步了Welcome。

IMG_1643

这时候完全符合您说的三端文件一致

删除文件之前,mac和ipad已经进行了完全一致同步了吗?也就是说,那时候之前,mac,ipad,s3 三方是完全一致,内容一致,修改时间一致吗?这是先决条件啊

然后我尝试在Mac删除文件,然后手动同步,这时候,S3文件没有被删除,反而还同步回了本地。

https://github.com/remotely-save/remotely-save/assets/51532948/ad4d3a7f-fc19-4844-a1b6-67c452a1c115

视频演示如上。

插件的配置

image image

最新一份日志情况

{
  "Welcome.md": {
    "key": "Welcome.md",
    "remote": {
      "key": "Welcome.md",
      "keyRaw": "Welcome.md",
      "mtimeSvr": 1714974035000,
      "mtimeCli": 1714974035000,
      "sizeRaw": 203,
      "size": 203,
      "etag": "\"5DCE4937496AD2D20178A7578F1A1368\"",
      "synthesizedFolder": false,
      "keyEnc": "Welcome.md",
      "sizeEnc": 203,
      "mtimeCliFmt": "2024-05-06T13:40:35+08:00",
      "mtimeSvrFmt": "2024-05-06T13:40:35+08:00"
    },
    "decisionBranch": 3,
    "decision": "remote_is_created_then_pull"
  },
  "/$@meta": {
    "key": "/$@meta",
    "sideNotes": {
      "version": "2024047 fs version",
      "generateTime": 1714974863174,
      "generateTimeFmt": "2024-05-06T13:54:23+08:00"
    }
  }
}
fyears commented 1 week ago

@2019YKL

上万份文件不知道如何一致

是的,所以新建测试 vault 来进行

然后我尝试在Mac删除文件,然后手动同步,这时候,S3文件没有被删除,反而还同步回了本地。

唉,这里真的,完全按照我的步骤来操作,是否可以呢?关键在于,有welcome文件的情况下,新建文件夹和里面的文件,然后做同步和删除。

如果只有一份 welcome 文件,你删除了,本地会变成空库,那么会走到特殊逻辑把远程的文件重新下载,这不是 bug,也和本群的问题无关。

fyears commented 1 week ago

@nallebrean @2019YKL @Barmaid1076 @seyeeL


Don't need to guess. Please follow the steps precisely, and see any step doesn't return the same result as my description. Please, really precisely, do not do anything more or less.

  1. Windows

    1. On Windows, create new vault naming "testvault"

    2. On Windows, Obsidian should create a default file "Welcome.md".

    3. On Windows, create new folder "testfolder1", create new file inside the folder "testfolder1/testfile1.md". Write something into that md file.

    4. On Windows, install remotely save

    5. On Windows, configure webdav (I use infinicloud). DO NOT TOUCH any other settings!!!! No setting password, not setting auto run, and deletion destination by default should be system trash.

    6. On Windows, sync

  2. infinicloud website

    1. go to infinicloud website, check these are generated: folder testvault, folder testvault/testfolder1, file testvault/testfolder1/testfile1.md, file testvault/Welcome.md. The expected behaviour is that all of them are generated.
  3. iphone

    1. On iphone, create new vault naming "testvault"

    2. On iphone, Obsidian should create a default file "Welcome.md".

    3. On iphone, install remotely save

    4. On iphone, configure webdav (I use infinicloud). DO NOT TOUCH any other settings!!!! No setting password, not setting auto run, and deletion destination by default should be system trash.

    5. On iphone, sync

    6. On iphone, check all these are generated in the vault: folder testfolder1, file testfolder1/testfile1.md, file Welcome.md. The expected behaviour is that all of them are generated.

  4. windows

    1. On Windows, delete the folder testfolder1

    2. On Windows, sync

    3. On Windows, the sync should fail, because of the deletion protection

    4. On Windows, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)".

    5. On Windows, sync

    6. The sync should succeed.

  5. infinicloud website

    1. go to infinicloud website, check these are deleted or not: folder testvault/testfolder1 and file testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.
  6. iphone

    1. On iphone, sync

    2. On iphone, the sync should fail, because of the deletion protection

    3. On iphone, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)".

    4. On iphone, sync

    5. The sync should succeed.

    6. On iphone: check these are deleted or not: folder testvault/testfolder1 and file testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.


不需要猜测。请完全按照以下步骤操作,看看哪一步操作结果和我的描述不一样。请注意,完全按照,不要做多了,不要做少了。

  1. Windows

    1. Windows 创建新的库,库名字叫做 testvault

    2. Windows 里 Obsidian 自动在新的库创建了 Welcome.md 文件。

    3. Windows 创建文件夹 testfolder1 ,文件夹里创建文件 testfolder1/testfile1.md,随便写点东西

    4. Windows 安装 remotely save

    5. Windows 设置 webdav。我用 infinicloud。不要修改其他任何设置!!!不设置密码,不设置自动运行,删除目的地默认是系统回收站。

    6. Windows 触发同步。

  2. infinicloud 网站

    1. 去 infinicloud 网站,检查 testvault文件夹是否有生成,testvault/testfolder1 文件夹是否有生成,testvault/testfolder1/testfile1.md 是否有生成,testvault/Welcome.md 是否有生成。期待行为是所有都生成了。
  3. iphone

    1. 打开 iphone Obsidian,创建新的 vault,名字叫 testvault

    2. iphone Obsidian 自动在新的库创建了 Welcome.md 文件。

    3. iphone obsidian 安装 remotely save

    4. iphone obsidian 设置 webdav。我用 infinicloud。不要修改其他任何设置!!!不设置密码,不设置自动运行,删除目的地默认是系统回收站。

    5. iphone 触发同步

    6. 检查 iphone obsidian 的 valut 内是不是生成了:testfolder1 文件夹,testfolder1/testfile1.md 文件,Welcome.md 文件

  4. windows

    1. windows ,删除 testfolder1 文件夹

    2. windows 触发同步

    3. windows 应该触发了保护,同步失败

    4. windows 的 remotely save 设置,修改删除保护为 100%,也即,去除保护

    5. windows 触发同步

    6. 这时候应该同步成功了

  5. infinicloud 网站

    1. 去 infinicloud 网站,检查 testvault/testfolder1 文件夹是不是已经被删除了,期待行为是被删除了
  6. iphone

    1. iphone 触发同步

    2. iphone 应该触发了保护,同步失败

    3. iphone 的 remotely save 设置,修改删除保护为 100%,也即,去除保护

    4. iphone 触发同步

    5. 这时候应该同步成功了

    6. 检查 iphone obsidian 的 vault 内的 testfolder1 是不是被删除了,期待行为是被删除了。

@2019YKL 精确按照这里操作,除了 webdav 换成 s3 之外,其他步骤精确按照每一步进行,看有没有问题。求求了,不这样精确按照步骤进行测试的话,我们都是在浪费时间,查不出来的。

nallebrean commented 1 week ago

My created test note on windows will be created in the vaults root and not in the testdir1. I have to move it unless I change settings in Obsidan. Does it matter?

Den mån 6 maj 2024 12:11fyears @.***> skrev:

@nallebrean https://github.com/nallebrean @2019YKL https://github.com/2019YKL @Barmaid1076 https://github.com/Barmaid1076 @seyeeL https://github.com/seyeeL

Don't need to guess. Please follow the steps precisely, and see any step doesn't return the same result as my description. Please, really precisely, do not do anything more or less.

1.

Windows 1.

  On Windows, create new vault naming "testvault"
  2.

  On Windows, Obsidian should create a default file "Welcome.md".
  3.

  On Windows, create new folder "testfolder1", create new file inside
  the folder "testfolder1/testfile1.md". Write something into that md file.
  4.

  On Windows, install remotely save
  5.

  On Windows, configure webdav (I use infinicloud). DO NOT TOUCH any
  other settings!!!! No setting password, not setting auto run, and deletion
  destination by default should be system trash.
  6.

  On Windows, sync
  2.

infinicloud website

  1. go to infinicloud website, check these are generated: folder testvault, folder testvault/testfolder1, file testvault/testfolder1/testfile1.md, file testvault/Welcome.md. The expected behaviour is that all of them are generated.
  2. iphone

  3. On iphone, create new vault naming "testvault" 2.

    On iphone, Obsidian should create a default file "Welcome.md". 3.

    On iphone, install remotely save 4.

    On iphone, configure webdav (I use infinicloud). DO NOT TOUCH any other settings!!!! No setting password, not setting auto run, and deletion destination by default should be system trash. 5.

    On iphone, sync 6.

    On iphone, check all these are generated in the vault: folder testfolder1, file testfolder1/testfile1.md, file Welcome.md. The expected behaviour is that all of them are generated. 4.

    windows

  4. On Windows, delete the folder testfolder1 2.

    On Windows, sync 3.

    On Windows, the sync should fail, because of the deletion protection 4.

    On Windows, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)". 5.

    On Windows, sync 6.

    The sync should succeed. 5.

    infinicloud website

  5. go to infinicloud website, check these are deleted or not: folder testvault/testfolder1 and file testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.
  6. iphone

  7. On iphone, sync 2.

    On iphone, the sync should fail, because of the deletion protection 3.

    On iphone, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)". 4.

    On iphone, sync 5.

    The sync should succeed. 6.

    On iphone: check these are deleted or not: folder testvault/testfolder1 and file testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.


不需要猜测。请完全按照以下步骤操作,看看哪一步操作结果和我的描述不一样。请注意,完全按照,不要做多了,不要做少了。

1.

Windows 1.

  Windows 创建新的库,库名字叫做 testvault
  2.

  Windows 里 Obsidian 自动在新的库创建了 Welcome.md 文件。
  3.

  Windows 创建文件夹 testfolder1 ,文件夹里创建文件 testfolder1/testfile1.md,随便写点东西
  4.

  Windows 安装 remotely save
  5.

  Windows 设置 webdav。我用
  infinicloud。**不要修改其他任何设置!!!**不设置密码,不设置自动运行,删除目的地默认是系统回收站。
  6.

  Windows 触发同步。
  2.

infinicloud 网站

  1. 去 infinicloud 网站,检查 testvault文件夹是否有生成,testvault/testfolder1 文件夹是否有生成,testvault/testfolder1/testfile1.md 是否有生成,testvault/Welcome.md 是否有生成。期待行为是所有都生成了。
  2. iphone

  3. 打开 iphone Obsidian,创建新的 vault,名字叫 testvault 2.

    iphone Obsidian 自动在新的库创建了 Welcome.md 文件。 3.

    iphone obsidian 安装 remotely save 4.

    iphone obsidian 设置 webdav。我用 infinicloud。不要修改其他任何设置!!!不设置密码,不设置自动运行,删除目的地默认是系统回收站。 5.

    iphone 触发同步 6.

    检查 iphone obsidian 的 valut 内是不是生成了:testfolder1 文件夹,testfolder1/testfile1.md 文件,Welcome.md 文件 4.

    windows

  4. windows ,删除 testfolder1 文件夹 2.

    windows 触发同步 3.

    windows 应该触发了保护,同步失败 4.

    windows 的 remotely save 设置,修改删除保护为 100%,也即,去除保护 5.

    windows 触发同步 6.

    这时候应该同步成功了 5.

    infinicloud 网站

  5. 去 infinicloud 网站,检查 testvault/testfolder1 文件夹是不是已经被删除了,期待行为是被删除了
  6. iphone

  7. iphone 触发同步 2.

    iphone 应该触发了保护,同步失败 3.

    iphone 的 remotely save 设置,修改删除保护为 100%,也即,去除保护 4.

    iphone 触发同步 5.

    这时候应该同步成功了 6.

    检查 iphone obsidian 的 vault 内的 testfolder1 是不是被删除了,期待行为是被删除了。

@2019YKL https://github.com/2019YKL 精确按照这里操作,除了 webdav 换成 s3 之外,其他步骤 精确按照每一步进行,看有没有问题。求求了,不这样精确按照步骤进行测试的话,我们都是在浪费时间,查不出来的。

— Reply to this email directly, view it on GitHub https://github.com/remotely-save/remotely-save/issues/611#issuecomment-2095629897, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEN5HFJCY36IYUAY4AQL5BTZA5JLLAVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJVGYZDSOBZG4 . You are receiving this because you were mentioned.Message ID: @.***>

2019YKL commented 1 week ago

我多次重新按你的步骤执行了,与预期行为是一致的,但不稳定。

Ipad那边几率出现不删文件,并同步Mac已经删除的文件上去。

我测试了三组,表现不一致。

这次我ipad和mac都录屏下来了。

Mac录屏

https://github.com/remotely-save/remotely-save/assets/51532948/64071046-cd19-4971-84d5-f629136766e5

ipad录屏,头尾两次都同步错误了,中间1:00的时候同步成功了,与预期一致。

https://github.com/remotely-save/remotely-save/assets/51532948/93209955-f813-430f-875a-ef3229081c90

我的行为就是重复

Mac:创建文件-同步-写入文件-同步-删除文件-同步

Ipad:同步-查看是否写入/删除

fyears commented 1 week ago

出错的那次导出一下同步记录?

2019YKL commented 1 week ago

出错的那次导出一下同步记录?

最近五次的同步记录

{
  "Welcome.md": {
    "key": "Welcome.md",
    "remote": {
      "key": "Welcome.md",
      "keyRaw": "Welcome.md",
      "mtimeSvr": 1714993171000,
      "mtimeCli": 1714993171000,
      "sizeRaw": 4,
      "size": 4,
      "etag": "\"81DC9BDB52D04DC20036DBD8313ED055\"",
      "synthesizedFolder": false,
      "keyEnc": "Welcome.md",
      "sizeEnc": 4,
      "mtimeCliFmt": "2024-05-06T18:59:31+08:00",
      "mtimeSvrFmt": "2024-05-06T18:59:31+08:00"
    },
    "prevSync": {
      "key": "Welcome.md",
      "keyRaw": "Welcome.md",
      "mtimeSvr": 1714993171000,
      "mtimeCli": 1714993171000,
      "sizeRaw": 4,
      "size": 4,
      "etag": "\"81DC9BDB52D04DC20036DBD8313ED055\"",
      "synthesizedFolder": false,
      "keyEnc": "Welcome.md",
      "sizeEnc": 4,
      "mtimeCliFmt": "2024-05-06T18:59:31+08:00",
      "mtimeSvrFmt": "2024-05-06T18:59:31+08:00"
    },
    "local": {
      "key": "Welcome.md",
      "keyRaw": "Welcome.md",
      "mtimeCli": 1714991246000,
      "mtimeSvr": 1714991246000,
      "size": 4,
      "sizeRaw": 4,
      "mtimeCliFmt": "2024-05-06T18:27:26+08:00",
      "mtimeSvrFmt": "2024-05-06T18:27:26+08:00",
      "keyEnc": "Welcome.md",
      "sizeEnc": 4
    },
    "decisionBranch": 10,
    "decision": "local_is_modified_then_push"
  },
  "testfolder/testfile.md": {
    "key": "testfolder/testfile.md",
    "remote": {
      "key": "testfolder/testfile.md",
      "keyRaw": "testfolder/testfile.md",
      "mtimeSvr": 1714993183000,
      "mtimeCli": 1714993183000,
      "sizeRaw": 9,
      "size": 9,
      "etag": "\"25F9E794323B453885F5181F1B624D0B\"",
      "synthesizedFolder": false,
      "keyEnc": "testfolder/testfile.md",
      "sizeEnc": 9,
      "mtimeCliFmt": "2024-05-06T18:59:43+08:00",
      "mtimeSvrFmt": "2024-05-06T18:59:43+08:00"
    },
    "decisionBranch": 3,
    "decision": "remote_is_created_then_pull"
  },
  "testfolder/": {
    "key": "testfolder/",
    "remote": {
      "key": "testfolder/",
      "keyRaw": "testfolder/",
      "size": 0,
      "sizeRaw": 0,
      "sizeEnc": 0,
      "mtimeSvr": 1714993183000,
      "mtimeSvrFmt": "2024-05-06T18:59:43+08:00",
      "mtimeCli": 1714993183000,
      "mtimeCliFmt": "2024-05-06T18:59:43+08:00",
      "synthesizedFolder": true,
      "keyEnc": "testfolder/"
    },
    "decisionBranch": 103,
    "decision": "folder_existed_remote_then_also_create_local"
  },
  "/$@meta": {
    "key": "/$@meta",
    "sideNotes": {
      "version": "2024047 fs version",
      "generateTime": 1714993191557,
      "generateTimeFmt": "2024-05-06T18:59:51+08:00"
    }
  }
}
2019YKL commented 1 week ago

出错的那次导出一下同步记录?

我又重新复现了一次,也可以参考这个。

{
  "Welcome.md": {
    "key": "Welcome.md",
    "remote": {
      "key": "Welcome.md",
      "keyRaw": "Welcome.md",
      "mtimeSvr": 1714993171000,
      "mtimeCli": 1714993171000,
      "sizeRaw": 4,
      "size": 4,
      "etag": "\"81DC9BDB52D04DC20036DBD8313ED055\"",
      "synthesizedFolder": false,
      "keyEnc": "Welcome.md",
      "sizeEnc": 4,
      "mtimeCliFmt": "2024-05-06T18:59:31+08:00",
      "mtimeSvrFmt": "2024-05-06T18:59:31+08:00"
    },
    "prevSync": {
      "key": "Welcome.md",
      "keyRaw": "Welcome.md",
      "mtimeSvr": 1714993171000,
      "mtimeCli": 1714993171000,
      "sizeRaw": 4,
      "size": 4,
      "etag": "\"81DC9BDB52D04DC20036DBD8313ED055\"",
      "synthesizedFolder": false,
      "keyEnc": "Welcome.md",
      "sizeEnc": 4,
      "mtimeCliFmt": "2024-05-06T18:59:31+08:00",
      "mtimeSvrFmt": "2024-05-06T18:59:31+08:00"
    },
    "local": {
      "key": "Welcome.md",
      "keyRaw": "Welcome.md",
      "mtimeCli": 1714991246000,
      "mtimeSvr": 1714991246000,
      "size": 4,
      "sizeRaw": 4,
      "mtimeCliFmt": "2024-05-06T18:27:26+08:00",
      "mtimeSvrFmt": "2024-05-06T18:27:26+08:00",
      "keyEnc": "Welcome.md",
      "sizeEnc": 4
    },
    "decisionBranch": 10,
    "decision": "local_is_modified_then_push"
  },
  "testfolder/testfile.md": {
    "key": "testfolder/testfile.md",
    "remote": {
      "key": "testfolder/testfile.md",
      "keyRaw": "testfolder/testfile.md",
      "mtimeSvr": 1714993183000,
      "mtimeCli": 1714993183000,
      "sizeRaw": 9,
      "size": 9,
      "etag": "\"25F9E794323B453885F5181F1B624D0B\"",
      "synthesizedFolder": false,
      "keyEnc": "testfolder/testfile.md",
      "sizeEnc": 9,
      "mtimeCliFmt": "2024-05-06T18:59:43+08:00",
      "mtimeSvrFmt": "2024-05-06T18:59:43+08:00"
    },
    "decisionBranch": 3,
    "decision": "remote_is_created_then_pull"
  },
  "testfolder/": {
    "key": "testfolder/",
    "remote": {
      "key": "testfolder/",
      "keyRaw": "testfolder/",
      "size": 0,
      "sizeRaw": 0,
      "sizeEnc": 0,
      "mtimeSvr": 1714993183000,
      "mtimeSvrFmt": "2024-05-06T18:59:43+08:00",
      "mtimeCli": 1714993183000,
      "mtimeCliFmt": "2024-05-06T18:59:43+08:00",
      "synthesizedFolder": true,
      "keyEnc": "testfolder/"
    },
    "decisionBranch": 103,
    "decision": "folder_existed_remote_then_also_create_local"
  },
  "/$@meta": {
    "key": "/$@meta",
    "sideNotes": {
      "version": "2024047 fs version",
      "generateTime": 1714993191557,
      "generateTimeFmt": "2024-05-06T18:59:51+08:00"
    }
  }
}
fyears commented 1 week ago

I fixed a bug around s3 in 0.4.20. May be it's relevant

2019YKL commented 1 week ago

I fixed a bug around s3 in 0.4.20. May be it's relevant

问题似乎被成功解决了,多次测试多端写入/删除文件,问题没有再复现。

感谢你的付出~

nallebrean commented 1 week ago

I stress tested on my first 'devTest' vault with the new version .20 and some of the deleted files are still coming back, using OneDrive

fyears commented 1 week ago

I stress tested on my first 'devTest' vault with the new version .20 and some of the deleted files are still coming back, using OneDrive

any hints? can you reproduce the error using my steps?

nallebrean commented 1 week ago

I just tried on my Android phone, instead of iphone, but I don't get any Welcome.md when I create 'testvault'.

Den mån 6 maj 2024 kl 18:15 skrev JK2333 @.***>:

I fixed a bug around s3 in 0.4.20. May be it's relevant

问题似乎被成功解决了,多次测试多端写入/删除文件,问题没有再复现。

感谢你的付出~

— Reply to this email directly, view it on GitHub https://github.com/remotely-save/remotely-save/issues/611#issuecomment-2096419545, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEN5HFME5Q5XC5YYDYOSBIDZA6UB5AVCNFSM6AAAAABGLHJUIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJWGQYTSNJUGU . You are receiving this because you were mentioned.Message ID: @.***>

fyears commented 1 week ago

never mind you can manually create it and write something (cannot be empty). the spirit is that your vault cannot be empty even after you delete testfolder

nallebrean commented 1 week ago

On WebDev now first, instruction 3.6, but on Android: 'On iPhone, check that all these are generated in the vault: folder testfolder1, file testfolder1/testfile1.md, file Welcome.md. The expected behaviour is that all of them are generated.'

No, they seem to be blocked by the 50% protection. Expected?

fyears commented 1 week ago

does your android have any files? but anyways it's not relevant with deletions, so let's disable the protection and let it sync then reenable the protection

nallebrean commented 1 week ago

"does your android have any files?" Only my manually created Welcome.md.

Everything when as expected. Now I will try with OneDrive.

nallebrean commented 1 week ago

With OneDrive it worked as my previous test vid WebDev. BUT when I stood in the root dir of the vault in OneDrive in the browser after step 5.1 the files where still there at first but after a refresh of the page they where gone. Are we dealing with some cache delay and it only get a when dealing with many files?

I tried to reproduce but failed.

fyears commented 1 week ago

the plugin doesn’t have any cache. but onedrive website might have.

nallebrean commented 1 week ago

now I seams to have synced an empty file from windows to the Andriod. That should not happend because onedrive didnt accept that. the file where left in the andriod when i synced the erased folder from windows.

I then created several empty files in windows but got rejected because they where empty. But the folder "testdir6" that contain them were created.

fyears commented 1 week ago

@nallebrean

really the only thing we both want to find out, is "how to consistently reproduce the error that deleted folders coming back".

so i wrote the steps and hopefully any one can find out anything not running as my description.

please, please, please, try to strictly follow my steps to find out anything abnormal, any deleted folders coming back.

empty files should not be synced, please do not create empty files to make things more complicated. please try to focus on the original problem.

fyears commented 1 week ago

now I seams to have synced an empty file from windows to the Andriod. That should not happend because onedrive didnt accept that.

that's impossible. you must have edited the file somewhere. like what you said, empty files can not be exchanged via onedrive.

I then created several empty files in windows but got rejected because they where empty. But the folder "testdir6" that contain them were created.

that's expected, and they are not relevant to the original problem of the current issue

fyears commented 1 week ago

please, don't randomly try, don't randomly guess, don't randomly do something not relavent, just try to precisely follow the step and see any thing goes wrong. precisely, step by step, do not do any other thing, no need to do more tests, do not messy up with the database.

i really want to help, but i am really unable to guess what happen if the steps are not the same as my guides.

please, precisely follow the step, and see anything goes wrong.

  1. windows, android, onedrive

    1. on windows, delete testvault because it's useless now and we want to reset everything
    2. on android, delete testvault because it's useless now and we want to reset everything
    3. on onedrive website, delete /Apps/remotely-save/testvault because it's useless now and we want to reset everything
  2. Windows

    1. On Windows, create new vault naming "testvault2". notice, we named it testvault2 to avoid anything relavent to the previous testvault
    2. On Windows, Obsidian should create a default file "Welcome.md". if not, create the file manually, and write something into it so that it's not empty.
    3. On Windows, create new folder "testfolder1", create new file inside the folder "testfolder1/testfile1.md". Write something into that md file so that it's not empty
    4. On Windows, install remotely save
    5. On Windows, auth onedrive. DO NOT TOUCH any other settings!!!! No setting password, not setting auto run, and deletion destination by default should be system trash.
    6. On Windows, sync
  3. onederive website

    1. go to onederive website, check these are generated inside /Apps/remotely-save/: folder testvault2, folder testvault2/testfolder1, file testvault2/testfolder1/testfile1.md, file testvault/Welcome.md. The expected behaviour is that all of them are generated.
  4. android

    1. On android, create new vault naming "testvault2". notice, we named it testvault2 to avoid anything relavent to the previous testvault
    2. On android, Obsidian should create a default file "Welcome.md". if not, create the file manually, and write something into it so that it's not empty.
    3. On android, install remotely save
    4. On android, auth onedrive. DO NOT TOUCH any other settings!!!! No setting password, not setting auto run, and deletion destination by default should be system trash.
    5. On android, sync
    6. On android, check all these are generated in the vault: folder testfolder1, file testfolder1/testfile1.md, file Welcome.md. The expected behaviour is that all of them are generated.
  5. windows

    1. On Windows, delete the folder testfolder1
    2. On Windows, sync
    3. On Windows, the sync should fail, because of the deletion protection
    4. On Windows, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)".
    5. On Windows, sync
    6. The sync should succeed.
  6. onederive website

    1. go to onederive website, check these are deleted or not inside /Apps/remotely-save/: folder testvault2/testfolder1 and file testvault2/testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.
  7. android

    1. On android, sync
    2. On android, the sync should fail, because of the deletion protection
    3. On android, change the remotely save settings "Abort Sync If Modifications Above Percentage" to "100% (disable the protection)".
    4. On android, sync
    5. The sync should succeed.
    6. On android: check these are deleted or not: folder testfolder1 and file testfolder1/testfile1.md. The expected behaviour is that all of them are deleted.
nallebrean commented 1 week ago

@nallebrean

really the only thing we both want to find out, is "how to consistently reproduce the error that deleted folders coming back".

so i wrote the steps and hopefully any one can find out anything not running as my description.

please, please, please, try to strictly follow my steps to find out anything abnormal, any deleted folders coming back.

empty files should not be synced, please do not create empty files to make things more complicated. please try to focus on the original problem.

As mentioned I followed the script with onedrive and it worked and it use to work with a small number of files.

The problem with reappearing files has been with syncing changing of a large number of files in the hundreds. I found it very unlikely to recreate the bug with just 1 file and 1 folder because that is not where the bug appears to me. Of course I then try many files when the small file test succeed. And then a empty file appeared from nowhere, related or not.

nallebrean commented 1 week ago

4.vi, Fails, due to the protection. Next step?

2019YKL commented 1 week ago

4.vi, Fails, due to the protection. Next step?4.vi,由于保护而失败。下一步?

Turn off protection in the settings first, and have you updated to the latest version of the plugin?

CleanShot 2024-05-07 at 08 08 36@2x

fyears commented 1 week ago

4.vi, Fails, due to the protection. Next step?

ok, let's add a step "4.vi.2 disable the protection" right after 4.vi, and continue the steps