Skip to content

[stable29] fix: Transfer ownership with S3 as primary - #52183

Merged
skjnldsv merged 1 commit into
stable29from
backport/51020/stable29
Apr 15, 2025
Merged

[stable29] fix: Transfer ownership with S3 as primary#52183
skjnldsv merged 1 commit into
stable29from
backport/51020/stable29

Conversation

@backportbot

Copy link
Copy Markdown

Backport of PR #51020

When using S3 as primary storage, transferring ownership with the `--move` option fail with the following error:
`SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '8-45b963397aa40d4a0063e0d85e4fe7a1' for key 'fs_storage_path_hash'`
The `--move` option moves the entire home folder from one account to another.
The error means that the move failed because the destination folder already exist in `oc_filecache`.
- With S3 as primary storage, folders only exists as entries in `oc_filecache`.
- With S3 as primary storage, `moveFromStorage(...)` only moves the cache entry, as nothing needs to be moved on disk. This cache move does not delete potentially pre-existing destination folder.
- With Local storage, `moveFromStorage(...)` calls `rename(...)` which delete pre-existing folder.
- `transfer(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/apps/files/lib/Service/OwnershipTransferService.php#L112
- `oneTimeUserSetup(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/lib/private/Files/SetupManager.php#L261-L262
- `mkdir(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/lib/private/Files/ObjectStore/ObjectStoreStorage.php#L91-L135
- `moveFromStorage(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/lib/private/Files/ObjectStore/ObjectStoreStorage.php#L635-L636
Delete pre-existing folder in `moveFromStorage(...)`
Signed-off-by: Louis Chemineau <louis@chmn.me>
@backportbotbackportbotBot added bug 3. to review Waiting for reviews feature: filesystem php Pull requests that update Php code labels Apr 14, 2025
@backportbotbackportbotBot added this to the Nextcloud 29.0.16 milestone Apr 14, 2025
This was referenced Apr 15, 2025
@skjnldsv
skjnldsv merged commit cd83345 into stable29Apr 15, 2025
@skjnldsv
skjnldsv deleted the backport/51020/stable29 branch April 15, 2025 15:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to reviewWaiting for reviewsbugfeature: filesystemphpPull requests that update Php code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@artonge@come-nc@skjnldsv