nextcloud / desktop

💻 Desktop sync client for Nextcloud
https://nextcloud.com/install/#install-clients
GNU General Public License v2.0
2.98k stars 784 forks source link

Client refuses to downsync with case sensitivity conflict, after the already downloaded inode is deleted, and only the not-synced one exists in server. #3162

Open jtagcat opened 3 years ago

jtagcat commented 3 years ago

How to use GitHub

Steps to reproduce

  1. Client already has Foobar folder synced. Server-side, foobar folder is added.
  2. Server has 2 folders. Foobar and foobar.
  3. Client rightfully refuses to sync, detecting a conflict.
  4. foobar directory is deleted via the WebUI, leaving only the Foobar folder.
  5. Client is restarted.
  6. Client refuses to sync, after multiple restarts, force syncs, clears with the same error. Removing and re-adding the folder seems to be the only resolution now.

Client configuration

Using VFS.

Client version: 3.2.0

Operating system: w10

OS language: EN

FlexW commented 3 years ago

Did you check if this error also happens without using virtual files?

allexzander commented 3 years ago

I guess I have experienced something similar with both .png and .PNG created on Linux or via the Web UI, but, erroring with the VFS enabled. Yet, the sync was successful, it's just those errors always pop up. We may want to come with a fix for 3.2.1-3.2.2.

jtagcat commented 3 years ago

I was about to say can't replicate this now, but I can.

What I did:

  1. setup sync client, vfs
  2. First sync is completed.
  3. Server state: created foobar and Foobar
  4. Foobar is synced to device, foobar is skipped
  5. delete foobar from cloud
  6. client syncs fine
  7. create foobar in cloud, delete Foobar in cloud (server state, newer: only foobar exists)
  8. Client state: Foobar is synced, conflict with foobar
    jctest_case_sensitivity_conflict.zip

Third replication:

  1. setup sync client, normal, non-vfs
  2. Cloud change: create foobar, Foobar dirs (added ~5 different textfiles to both)
  3. Client: Foobar is downloaded/synced. foobar is skipped due to case sensitivity conflict error.
  4. Cloud change: delete Foobar
  5. Client: Still erroring, even after force sync now, and restart of the app. (expected: Foobar is deleted locally, foobar is synced) jctest_non_vfs.zip

Edit: Tested this with remotely renaming bazfile to Bazfile, renaming doesn't cause conflicts, so it's a more minor conflict.

jtagcat commented 3 years ago

Deleting the conflicting inode also on the client is a working workaround.

github-actions[bot] commented 3 years ago

This bug report did not receive an update in the last 4 weeks. Please take a look again and update the issue with new details, otherwise the issue will be automatically closed in 2 weeks. Thank you!

jtagcat commented 3 years ago

unstale

github-actions[bot] commented 3 years ago

This bug report did not receive an update in the last 4 weeks. Please take a look again and update the issue with new details, otherwise the issue will be automatically closed in 2 weeks. Thank you!

jtagcat commented 3 years ago

unstale

github-actions[bot] commented 3 years ago

This bug report did not receive an update in the last 4 weeks. Please take a look again and update the issue with new details, otherwise the issue will be automatically closed in 2 weeks. Thank you!

jtagcat commented 3 years ago

unstale :(