-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Path specific Filesystem setup #55072
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
base: fix/directoryAsINodeByPath
Are you sure you want to change the base?
Path specific Filesystem setup #55072
Conversation
a1a6278 to
cf952ce
Compare
7f95870 to
07f4028
Compare
|
Possible performance regression detected Show Output |
07f4028 to
89d174e
Compare
754f4e5 to
4da6b5f
Compare
| * todo: $mountInfo may need to be an array of paths (string[]) | ||
| * @param ICachedMountInfo[] $mountsInfo | ||
| * @param ICacheEntry[] $mountsMetadata |
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.
I would suggest adding a data class (something like IMountProviderArgs) that has the ICachedMountInfo, ICacheEntry and mountpoint and pass an array of that. So we have a stricter relationship between the various parts.
| * todo: $mountInfo may need to be an array of paths (string[]) | ||
| * @param ICachedMountInfo[] $mountsInfo | ||
| * @param ICacheEntry[] $mountsMetadata | ||
| * @return IMountPoint[] |
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.
@return array<string, IMountPount> and requiring them to be indexed by mountpoint will probably prove useful
lib/private/DB/Connection.php
Outdated
| protected function logQueryToFile(string $sql, array $params): void { | ||
| $logFile = $this->systemConfig->getValue('query_log_file'); | ||
| if ($logFile !== '' && is_writable(dirname($logFile)) && (!file_exists($logFile) || is_writable($logFile))) { | ||
| if ($logFile !== '' && (!file_exists($logFile) || is_writable($logFile))) { |
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.
is this related?
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.
No just a temp change to allow outputting query logs when the file is writable but the parent directory is not. It's gone.
| $table->addColumn('parent_id', 'integer', [ | ||
| 'length' => 4, | ||
| 'notnull' => false, | ||
| ]); |
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.
this will also need it's own migration for existing instances
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.
Yep, my current problem is how to fill the column 😮💨
I was thinking we could populate it when we add or update entries in oc_mounts since at that moment we build a list of all available mounts (although this won't work for long if we need to split) but I ran into a few issues:
- currently we don't use the
idcolumn fromoc_mountsat all, so it needs to be exposed - the fact we wrap
IMountPoints in cache entries gets in the way and I didn't manage to find a way to reliably transport the parent id into the db. I'll need to give it another try.
89d174e to
1d4abcd
Compare
ab0dc8c to
5b58935
Compare
ae0c613 to
cdc7233
Compare
5b58935 to
fd5de92
Compare
cdc7233 to
70b0ecc
Compare
d504579 to
b5977e7
Compare
70b0ecc to
b94b74f
Compare
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
…erShares Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
This commit adds a workaround to restore the functionality of apps that rely on descending the file-tree to check for access permissions, like files_accesscontrol. The navigation is done navigating the tree upwards, from the target node, to the root node. Signed-off-by: Salvatore Martire <[email protected]>
…p ci] Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
b5977e7 to
831e780
Compare
b94b74f to
7f26f7e
Compare
replace array_reduce + array_merge with array_merge(...) replace conditional assignment with ??= Signed-off-by: Salvatore Martire <[email protected]>
IMountProviders implementing this interface will be able to take advantage of authoritative mounts. The function `getMountsFromMountPoints` will receive the path that the provider is asked to set-up and an array of IMountProviderArgs providing information regarding the stored mount points and the file cache data for the related root. The mount provider should verify the validity of the mounts and return IMountPoints related to them. Signed-off-by: Salvatore Martire <[email protected]>
Signed-off-by: Salvatore Martire <[email protected]>
7f26f7e to
6e43ef9
Compare
Signed-off-by: Salvatore Martire <[email protected]>
c0c82fd to
2477163
Compare
3959a22 to
7ae8463
Compare
Summary
This branch introduces WIP changes to
setupForPathto implement a version taking advantage of the authoritative mount point list.The branch is part of this set of branches:
TODO
Checklist