-
Notifications
You must be signed in to change notification settings - Fork 806
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VFS wipe moved folder when conflict #3425
VFS wipe moved folder when conflict #3425
Conversation
so if I understand correctly this is going to happen in those cases:
what is not clear to me is what is being sent by server and client when sync happen for client B ? why conflict detection is not being triggered ? back to your patch are you sure the criteria is going to work because I would imagine that renaming a folder would also happen when you already had read some files inside it ? |
If client B had a folder
Conflict detection works only when the same file modified (the content of the file is changed) from 2 places simultaneously. Renaming the file does not trigger a conflict. With non-VFS mode, renaming is not resulting in a conflict, because both files are uploaded. You can try it yourself to confirm. I've tested this multiple times. Simultaneous renaming does not work when using WebUI from 2 different accounts. The second rename just does not work and there is an error that pops up. This wouldn't work the same way in the desktop client. We can rename files while we are offline too.
In case a client B had at least one file hydrated in the folder This is the case for |
I did a quick check on Linux side and renaming a directory would result in a |
@mgallien Yes this happens in a similar fashion on Windows. With and without CfAPI. However, this will not work the same way if you rename/move the same directory by 2 different clients with 2 different accounts. The second client will not detect rename and will not issue a MOVE request. Have you tried this scenario as well? |
@allexzander So if I understand the PROPFIND that are called before deciding if it is a rename are making it decide something else ? |
@mgallien |
so maybe we can conclude this one and then we try to fix logic of rename and conflict detection because from the log I am not very happy with current state
or
|
b0afaf0
to
3896ce8
Compare
Yes. Sounds like a plan. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please clean history before merging
d62c088
to
6450549
Compare
…re are hydrated items inside. Signed-off-by: allexzander <blackslayer4@gmail.com>
6450549
to
cf2560d
Compare
{ | ||
const auto folderInstance = FolderMan::instance()->folder(folderAlias); | ||
if (!folderInstance) | ||
return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing braces
void User::slotCheckExpiredActivities() | ||
{ | ||
for (const Activity &activity : _activityModel->errorsList()) { | ||
if (activity._expireAtMsecs > 0 && QDateTime::currentDateTime().toMSecsSinceEpoch() >= activity._expireAtMsecs) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In some places you use ms and in other msecs. I would settle for one :)
Signed-off-by: allexzander <blackslayer4@gmail.com>
d7fd6d3
to
a3d12a6
Compare
AppImage file: Nextcloud-PR-3425-a3d12a616b589571e5189a97d061c8039484c87b-x86_64.AppImage |
No description provided.