From: Roeland Jago Douma Date: Wed, 17 Apr 2019 19:37:16 +0000 (+0200) Subject: Prefetching blows up if there are a lot of files. X-Git-Tag: v17.0.0beta1~525^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c16d116fa6f27a199a7b483f91047c78dd6eddce;p=nextcloud-server.git Prefetching blows up if there are a lot of files. I saw instances where people had a lot of files (each with custom properties) and all this prefetching blew up and started to consume an insane amount of RAM resulting in the process getting killed. Signed-off-by: Roeland Jago Douma --- diff --git a/apps/dav/lib/Connector/Sabre/CustomPropertiesBackend.php b/apps/dav/lib/Connector/Sabre/CustomPropertiesBackend.php index c77a4d6be48..f3f685a8b9e 100644 --- a/apps/dav/lib/Connector/Sabre/CustomPropertiesBackend.php +++ b/apps/dav/lib/Connector/Sabre/CustomPropertiesBackend.php @@ -129,13 +129,6 @@ class CustomPropertiesBackend implements BackendInterface { return; } - if ($node instanceof Directory - && $propFind->getDepth() !== 0 - ) { - // note: pre-fetching only supported for depth <= 1 - $this->loadChildrenProperties($node, $requestedProps); - } - $props = $this->getProperties($node, $requestedProps); foreach ($props as $propName => $propValue) { $propFind->set($propName, $propValue); diff --git a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php index 91973eeff5d..3b7bd859b9f 100644 --- a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php @@ -226,10 +226,6 @@ class CustomPropertiesBackendTest extends \Test\TestCase { ->method('getPath') ->will($this->returnValue('/dummypath/test.txt')); - $rootNode->expects($this->once()) - ->method('getChildren') - ->will($this->returnValue(array($nodeSub))); - $this->tree->expects($this->at(0)) ->method('getNodeForPath') ->with('/dummypath')