Skip to content

Conversation

@PVince81
Copy link
Contributor

Description

Related Issue

Hopefully fixes the issue described in #26702

Motivation and Context

There's a perf regression in 9.0 that didn't exist in 8.2 due to the introduction of oc_mounts.
Perf was improved in 9.1 through #25789 so hopefully backporting a subset of it will also improve performance in 9.0.

How Has This Been Tested?

Steps:

  1. Setup OC 9.0
  2. Run https://gist.github.com/PVince81/4c4c2e938ae29065dcf02cdc2cc6d0bc (requires latest pyocclient)
  3. curl -D - -X GET -u recipient:recipient http://localhost/owncloud/remote.php/webdav/file1.txt > file.txt => ignore the result
  4. curl -D - -X GET -u recipient:recipient http://localhost/owncloud/remote.php/webdav/file1.txt > file.txt, again, and have a look at the value of "Time spent"

Before this fix (v9.0.7): time spent was 7 seconds
After this fix: time spent is down to 4 seconds

Running the same test on v9.1.3 also gives 4 seconds.

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

TODOs:

⚠️ it is likely that the introduction of LazyStorageMountInfo will cause a regression due to a new recursive behavior (this was observed on 9.1, need to confirm if it will appear as well here through this PR). This was fixed by the PR #25789 which itself brought its own regressions fixed by subsequent PRs.

  • analyze whether this PR now contains the shared storage recursion hell and requires further backports
  • @mrow4a please rerun your powerful tests on this branch

Vincent Petry and others added 30 commits June 21, 2016 16:07
[9.0] Catch exceptions while creating shared mounts
[stable9] Fix null pointer exception in user_ldap
[stable9] Rollback version must also adjust cached size
#23937)

Scenario:
user0 shares a folder 'foo' with user2
user1 shares a folder 'foo' with user2
user2 logs in

Before: show only the 'foo' from user1

After: show both.

* Added intergration tests
[stable9] On mount make sure multiple shares with same target map to unique one…
If an error occurs during setup checks, do not let the global ajax
error handler reload the page.
…load

[stable9] Don't reload page in case of auth errors during setup checks
When outside the "All files" list, the search result link must properly
redirect to the "All files" list.
When clicking on a folder result in the search result list, the result
box for "results in another folder" must disappear.
[stable9] Init the headers in iedavclient.js
…therfilelists

[stable9] Fix search result link for file results outside default list
* Fix Decrypt message via occ

* Comments fixed

* Fixed reviews

* Originally:
commit 2304e4b
Author: Joas Schilling <nickvergessen@owncloud.com>
Date:   Tue Jun 7 09:13:11 2016 +0200

    Allow to decrypt user '0' files only

* Fix uid comparison
* Initial web executor

* Fix PHPDoc

Fix broken integration test

OccControllerTests do not require database access - moch them all!

Kill unused sprintf
Makes sure that the share owner is set before entering the checks that
need it.

Partial backport of afa37d3
Add integration test for the use case where a group share exists and
then the same owner creates a direct share to a user in that group.
…ble9

[stable9] get only vcards which match both the address book id and the vcard uri
[stable9] Change order of share creation validation
Revert "Remove repair steps for broken updater repair"
…8e99e379449792eeaf8

[stable9] Ignore invalid paths in the JS file list
Vincent Petry and others added 22 commits November 24, 2016 15:11
…actoring

Stable9 integration tests refactoring
* Add transfer ownership integration tests

* Added more transfer ownership tests and OCC checks
Added read and share permissions instead of all (default ones)

Added positive case

Check also permissions update

Added tests for resharing with public links when the user doesn't have enough permisssions
[stable9] Don't fetch preview images if `enable_previews` is set to `false`
Partial backport of the integration tests from #26610
[stable9] Add transfer ownership integration tests (#26543)
…e-fix

[stable9] commit transaction after select query
[stable9] Properly convert OCS params + more tests
[stable9] Skip local shares in bkg scan and occ files:scan (#26590)
…-findtransferfolder

[stable9] Fix finding transferred folder in integration tests
[stable9] Use the correct realm for basic authentication - fixes #23427
To prevent recursions in initMountPoints which requires the numeric id
to populate oc_mounts
@PVince81 PVince81 added this to the 9.0.8 milestone Jan 10, 2017
@PVince81 PVince81 self-assigned this Jan 10, 2017
@mention-bot
Copy link

@PVince81, thanks for your PR! By analyzing the history of the files in this pull request, we identified @ringmaster, @DeepDiver1975, @tanghus and @Xenopathic to be potential reviewers.

@PVince81
Copy link
Contributor Author

Wrong target branch...

@PVince81 PVince81 closed this Jan 10, 2017
@lock
Copy link

lock bot commented Aug 4, 2019

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot locked as resolved and limited conversation to collaborators Aug 4, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.