equalitie / ouisync-app

GNU General Public License v3.0
66 stars 9 forks source link

[Bug] The copied files are different when used ouisync with dokan in windows. #387

Closed fbewivpjsbsby closed 8 months ago

fbewivpjsbsby commented 9 months ago

Version, approach of installation, operating system

  1. What version of ouisync are you using? v0.7.7
  2. What approach of installation do you install ouisync? github release exe.
  3. What is your operating system? Windows 10

Description

Files differ when copying files larger than 32kib to an ouisync mounted drive (dokan).

Steps to reproduce

  1. Start ouisync and create a repository.
  2. Running from non-ouisync mounted drive.
    fsutil file createnew 32kib 32768
    fsutil file createnew 31kib 31744
  3. Copy these files to the ouisync repository.
  4. Use 7zip or another tool to show checksum. It show 32kib file checksums are not equal, but 31kib file are equal.

Logs:

The 32kib origin file. size: 32768 byte (32 KiB) SHA256: C35020473AED1B4642CD726CAD727B63FFF2824AD68CEDD7FFB73C7CBD890479

The 32kib copy file. size: 32760 byte (31 KiB) SHA256: D3768B5FD2971C8D06BB709D035176F2E9E363771622F053AC760FF442AE0AA0

ERROR error=EntryNotFound :: create_entry{create_directory=false delete_access=false}:async_create_file{file_name=Ok("\\desktop.ini")} :: vfs\src\dokan\mod.rs:178
ERROR error=EntryNotFound :: async_create_file{file_name=Ok("\\desktop.ini")} :: vfs\src\dokan\mod.rs:315
DEBUG Sync progress: 65536/65536 bytes (100.0%) :: repo{C:\Users\[user name]\Documents/ouisync\databasename.db} :: lib\src\repository\mod.rs:926
ERROR error=STATUS_NOT_IMPLEMENTED :: async_set_file_attributes{file_name=Ok("\\32kib")} :: vfs\src\dokan\mod.rs:664
inetic commented 9 months ago

Thanks for reporting this issue, it should now be fixed in this commit https://github.com/equalitie/ouisync/commit/c9dc430adf42d5cdf989819e9577bd09633a5b4d . It'll be included in the next release.

fbewivpjsbsby commented 8 months ago

Thanks for reporting this issue, it should now be fixed in this commit equalitie/ouisync@c9dc430 . It'll be included in the next release.

lgtm.

Logs:

The 32kib origin file. size: 32768 byte (32 KiB) SHA256: C35020473AED1B4642CD726CAD727B63FFF2824AD68CEDD7FFB73C7CBD890479

The 32kib copy file. size: 32768 byte (32 KiB) SHA256: C35020473AED1B4642CD726CAD727B63FFF2824AD68CEDD7FFB73C7CBD890479

DEBUG Sync progress: 65536/65536 bytes (100.0%) :: repo{C:\Users\[User name]\Documents/ouisync\[repo].db} :: lib\src\repository\mod.rs:930
ERROR error=STATUS_NOT_IMPLEMENTED :: async_set_file_attributes{file_name=Ok("\\32kib")} :: vfs\src\dokan\mod.rs:662
DEBUG Sync progress: 98304/98304 bytes (100.0%) :: repo{C:\Users\[User name]\Documents/ouisync\[repo].db} :: lib\src\repository\mod.rs:930