Commit graph

461 commits

Author SHA1 Message Date
Louis Chemineau
8c04dbe599
fix(Updater): Lower deadlock log level from warning to info
If this is safe to ignore, then it does not make sense to keep warning the admins.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-09-16 14:49:54 +02:00
Côme Chilliet
12532bb535
fix(encryption): Correctly set encrypted to 0 when copying
If encryption got disabled, copying should set encrypted to 0 for the
 new unencrypted copy. For instance when using encryption:decrypt-all

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-09 11:46:18 +02:00
Carl Schwan
c4e6fbdae7 fix(query-builder): Don't catch UniqueConstraintViolationException
UniqueConstraintViolationException is no longer throw directly but
instead is now wrapped inside a \OCP\DB\Exception. So check the
exception reason.

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-09-02 11:55:58 +02:00
Carl Schwan
c21b8169ff refactor(querybuilder): Port away from qb::execute() in lib/
Replace by either executeStatement or executeQuery

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-09-02 11:55:56 +02:00
Robin Appelman
1a716578fd
fix: fix moving cache items from cache jail with sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-22 19:21:31 +02:00
Robin Appelman
01147cf872 fix: add missing color select to tags usage query
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-01 02:47:04 +02:00
Marcel Klehr
43be97de08 fix(FileAccess): Use one param for rewriting home dirs and excluding non-user files mounts
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Julien Veyssier
cb221c8211 fix(FileAccess*): Change the way home dir root is found, remove the excludeTrashbinMounts param of getDistinctMounts
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-15 09:15:16 +02:00
Julien Veyssier
a2aeec0f4b fix(FileAccess*): Adress review comments
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-15 09:15:16 +02:00
Julien Veyssier
28dc4a299e fix(FileAccess): exclude trashbin nodes on the oc_filecache query, there is no trashbin mount
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-15 09:15:16 +02:00
Julien Veyssier
7e986988fe fix(FileAccess*): Adress review comments
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
131125bbb7 fix(FileAccessTest): Adress review comments
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
895160a1d3 fix(FileAccessTest): Do not use LIMIT in subquery
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
34b3f7553b fix(FileAccess#getDistinctMounts): Order results deterministically
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
10cc43041b fix(FileAccess#getByAncestorInStorage): Use a subquery to fix tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
d67c877ac5 fix(FileAccess): Add tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
5689af5a94 fix(FileAccess): Run cs:fix
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
d8c6f8d18e fix(FileAccess): Address review comments
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
611d83aa6a fix: Fix psalm issues
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
3eef614769 feat(IFileAccess#getMounts): Add new method to retrieve all distinct mounts
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
845b78086b feat(IFileAccess#getByAncestorInStorage): Add new method to retrieve all files in a mount
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Ferdinand Thiessen
5981b7eb51
chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Joas Schilling
f230abeef8
fix: Run cleanByMoundId query on all shards
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:34 +02:00
Robin Appelman
5329c373cc fix: improve error message when cache rename source can't be found
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 15:06:55 +02:00
Robin Appelman
1e72620169 fix: fix unjailedroot of nested jails if there are other wrappers in between
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 18:29:00 +02:00
Robin Appelman
0001c22668 test: add test for nested cache jail unjailedroot
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 18:29:00 +02:00
Robin Appelman
bb4cf2830a
fix: better error message when trying to scan a folder that is already being scanned
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-25 18:40:03 +02:00
Ferdinand Thiessen
3a09acebd2
fix(cache): always require updates if mtime is null
- Resolves https://github.com/nextcloud/server/issues/51941

Due to strong typings we introduced the parameter needs to be an
integer. Previously it was `null` which was equal to `0`.
So if there is no storage mtime we need to update the cache.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-04 13:41:32 +02:00
Robin Appelman
2e9222a29a
feat: add getParentId to ICacheEntry
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-03-28 16:47:07 +01:00
Benjamin Gaussorgues
9bdee76535
perf(files): faster query to fetch incomplete directories
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2025-02-13 10:11:02 +01:00
Robin Appelman
2786ca579a
fix: don't use cached root info from shared cache if the watcher has detected an update
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-02-06 19:41:43 +01:00
Ferdinand Thiessen
b48ee2e924
fix: Harden files scanner for invalid null access
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-01-28 20:08:46 +01:00
Louis Chemineau
a635710117
fix: Metadata field search
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-01-20 14:41:55 +01:00
Côme Chilliet
08c7001a04 fix: Fix copying to the root of another mountpoint
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-12-17 18:24:35 +01:00
Daniel Kesselberg
44e4fc5d41
Revert "fix: don't recalculate folder size in Cache::delete if the entry didn't exist"
This reverts commit 5ca9d884d7.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-12-16 14:03:33 +01:00
Robin Appelman
c21888e6ae
Merge pull request #47342 from nextcloud/cache-delete-notfound-size
fix: don't recalculate folder size in Cache::delete if the entry didn't exist
2024-12-12 17:54:48 +01:00
John Molakvoæ
3baa91d842
Merge pull request #40394 from nextcloud/updater-change-mimetype-objectstore 2024-12-11 08:40:58 +01:00
Robin Appelman
e7b882dd22
fix: only do cache copy in updater if the parent folder should be in cache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-06 17:47:00 +01:00
Robin Appelman
37199779de
fix: fix mimetype not being updated when changing file extention on object store
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-05 18:05:13 +01:00
Robin Appelman
c2f474ff49
Merge pull request #48769 from nextcloud/copy-share-unmasked
Fix incorrect permissions when copying shared files
2024-12-04 20:11:41 +01:00
John Molakvoæ
b4c43bb811
Merge pull request #49551 from nextcloud/dont-propagate-future-time 2024-12-04 20:11:23 +01:00
Robin Appelman
6419de7acc fix: use scan_permissions when copying cache items
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-04 19:19:08 +01:00
Robin Appelman
88c685f27c fix: store unmaked source permissions as scan_permissions when loading share cache items
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-04 19:19:08 +01:00
Louis Chemineau
199b0bd4d9
fix(files): Correctly copy the cache information on copy operations
Needed to copy the `encrypted` flag of encrypted files when those files are two level down in a moved folder.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-12-03 17:04:44 +01:00
Robin Appelman
aadfcb3fe6
fix: don't propagate future mtimes
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-11-28 17:24:36 +01:00
Louis Chemineau
f9cda54cbf
fix: Wrap partial cache entry in CacheEntry
Because it is returned here: 7b7d07c575/lib/private/Files/Cache/Cache.php (L136-L137)

And some implementation got stricter: df95bf6ba8/lib/Mount/RootEntryCache.php (L23-L28)

Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-11-21 17:13:24 +01:00
skjnldsv
4db5f708b6 fix(cache): etag constraint violation
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-11-21 10:34:39 +01:00
skjnldsv
14e2a8d3f9 feat(systemtags): add etag support and handle proppatch
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-10-29 09:08:31 +01:00
dependabot[bot]
bb598c8451
chore(deps): Bump nextcloud/coding-standard in /vendor-bin/cs-fixer
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/nextcloud/coding-standard/releases)
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/coding-standard/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: nextcloud/coding-standard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-19 07:57:35 +02:00
Git'Fellow
a1681b0756 chore(db): Apply query prepared statements
Fix: psalm

fix: bad file

fix: bug

chore: add batch

chore: add batch

chore: add batch

fix: psalm
2024-10-17 20:30:47 +02:00
Git'Fellow
c254855222 chore(db): Correctly apply query types
fix: psalm

fix: error

fix: add batch

fix: fatal error

fix: add batch

chore: add batch

chore: add batch

fix: psalm

fix: typo

fix: psalm

fix: return bool

fix: revert Manager
2024-10-17 09:21:07 +02:00
Ferdinand Thiessen
a8f46af20f
chore: Add proper deprecation dates where missing
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-09-20 00:46:03 +02:00
provokateurin
9836e9b164
chore(deps): Update nextcloud/coding-standard to v1.3.1
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Robin Appelman
b45f2420fe fix: fix share reminder job for oracle
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-18 19:24:44 +02:00
Robin Appelman
75cf17e4c4 fix: verify that parent exists in cache when inserting
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-18 14:11:27 +02:00
Côme Chilliet
492e6997d8
chore: Fix psalm issues, put back private versions of getter in private Storage interface
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-16 18:11:38 +02:00
John Molakvoæ
ff0cab5956
Merge pull request #47852 from nextcloud/sharding-code-fixes 2024-09-16 11:39:58 +02:00
provokateurin
714671a8a6
fix(files): Adjust Cache::searchQuery() parameter name to match interface
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-13 18:13:44 +02:00
Robin Appelman
da59fd4389
fix: misc code fixes around db sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-09 16:59:59 +02:00
Anna Larch
8af7ecb257 chore: adjust code to adhere to coding standard
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-09-05 21:23:38 +02:00
Louis Chemineau
2574cbfa61
chore: Apply php:cs recommendations
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-08-28 10:44:18 +02:00
Robin Appelman
390f6a78b4
fix: hint storage id in more places
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 10:21:19 +02:00
Robin Appelman
62f8b6517f
feat: implement distributing partitioned queries over multiple shards
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 10:21:19 +02:00
Daniel Kesselberg
af6de04e9e
style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
Robin Appelman
5ca9d884d7
fix: don't recalculate folder size in Cache::delete if the entry didn't exist
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-20 12:50:42 +02:00
Robin Appelman
c5b687271b
fix: make batch propagator work with sharding restrictions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 19:16:07 +02:00
Robin Appelman
ad88fd07e3
fix: make joining on tags in search queries work with sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 15:46:39 +02:00
Robin Appelman
80f8c7949e
fix: always set storage id in Cache::get
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 15:46:31 +02:00
Robin Appelman
5ff7bde3fb
fix: add set storage id for more cache queries
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 15:46:21 +02:00
Robin Appelman
c82d382a20 feat: add base class for extending the query builder
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-12 17:01:39 +02:00
Robin Appelman
3a60e40a81
Merge pull request #45172 from nextcloud/test-scanner-no-transactions
feat: add option to disable scanner transactions
2024-06-13 14:01:34 +02:00
Robin Appelman
082c6c6e1d
fix: get child ids for folder in a separate query during move
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-06-13 10:38:57 +02:00
Louis Chemineau
a93d3a5a10 fix(files): Use isRetryable to catch retryable exceptions
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-06-11 15:15:14 +02:00
Andy Scherzinger
dae7c159f7
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00
Côme Chilliet
e68544d9f4
Merge pull request #43794 from nextcloud/fix/files/scanner-metadata-diff
fix(files): handle multidimensional arrays in scanner
2024-05-13 11:05:40 +02:00
Josh
3c3e45f0ad fix(Files): Change how scanner diffs for changed metadata
Fixes #43408 

Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-05-08 08:36:42 -04:00
Christoph Wurst
6258823aba
Merge pull request #45058 from nextcloud/perf/db/sort-before-chunking
perf(db): Sort data for IN before chunking
2024-05-07 12:11:32 +02:00
Robin Appelman
f5219a19b2
feat: add option to disable scanner transactions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-05-03 16:40:15 +02:00
Robin Appelman
8d870a32c2
fix: fix FileAccess::getByFileId(InStorage)
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-05-01 18:00:20 +02:00
Christoph Wurst
f3d6309e36
perf(db): Sort data for IN before chunking
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-04-26 15:38:29 +02:00
Maxence Lange
b4004a2582
Merge pull request #43574 from nextcloud/enh/noid/lazyappconfig-migrate-metadata
enh(metadata): migrate metadata to lazy appconfig
2024-04-17 16:20:33 -01:00
Robin Appelman
d31ed8dbca
fix: use proper jailed patch in watcher
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-04-08 18:37:05 +02:00
Côme Chilliet
ec5133b739 fix: Apply new coding standard to all files
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
Louis Chemineau
751795999a
feat(files)): Add retry logic to cover deadlock situations when moving many files
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-28 09:05:47 +01:00
Robin Appelman
1d9354a81e
feat: add interface for lower level filecache acess without having to do direct db queries
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-03-25 16:48:41 +01:00
Andrew Summers
45eb4a839d Refactor OC\Server::getLockingProvider
Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
2024-03-15 13:11:33 +01:00
Thomas Citharel
ffeb797ecc
refactor(mimeloader): modernize MimeTypeLoader
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-03-14 17:24:36 +01:00
Git'Fellow
575159b819
fix(filecache): Move from array_merge to avoid memory exhaustion
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-03-04 18:13:45 +01:00
Robin Appelman
63ffaab95e
fix types + autoloader
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-15 17:55:43 +01:00
Robin Appelman
2e14a7a4a6
optimize query pattern used by storage filter
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-15 17:55:40 +01:00
Maxence Lange
4e1814acd1 migrate metadata to lazy appconfig
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-02-14 13:30:27 -01:00
Robin Appelman
e9d97a568f
use OCP\Server
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-12 16:39:00 +01:00
Robin Appelman
e50c176428 also improe cache ci for shared cache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-09 14:00:26 +01:00
Robin Appelman
7a91abb439 improve di performance for cache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-09 13:28:30 +01:00
Christoph Wurst
67a3ab48b5
Merge pull request #43131 from nextcloud/fix/files/cache-wrapper-no-partial-cache-entry-formatting
fix(files): Don't attempt to format a partial cache entry
2024-02-06 13:51:51 +01:00
Robin Appelman
b777304a77
also updated parent etags when a changed etag is detected during scanning
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-01-31 18:06:18 +01:00
Robin Appelman
e14bceb63f
dont reuse etag for folders marked explicitly unscanned
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-01-31 18:05:09 +01:00
Christoph Wurst
7e5303bec7
fix(files): Don't attempt to format a partial cache entry
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-01-25 19:30:38 +01:00
Julius Härtl
cc75294eb6 perf: Avoid updating the folder size if we know the size difference
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-01-12 14:21:08 +01:00
Git'Fellow
394cd75322
Merge pull request #41272 from nextcloud/fixOccScans
fix: reduce memory consumption of scans
2023-11-28 11:36:59 +01:00