Limitation on number of files per folder on local storage (PostgreSQL)

Steps to reproduce

  1. Create local storage mount
  2. Browse to folder with 100000 uploaded (WebDav) files.

Expected behaviour

Files show as usual

Actual behaviour

This directory is unavailable. Loading takes a lot of time and then at the end the page section that should show the folder content is empty.

Server configuration

Operating system: CentOS Linux release 7.9.2009 (Core)

Web server: Server version: Apache/2.4.6 (CentOS)

Database: PostgreSQL 11.15 on x86_64-pc-linux-gnu

PHP version: PHP 7.4.28 (cli)

ownCloud version: 10.9.1 (stable) (10.9.1.2 Community)

Updated from an older ownCloud or fresh install: updated

Where did you install ownCloud from: https://download.owncloud.org/community/owncloud-10.9.1.tar.bz2

Signing status (ownCloud 9.0 and above): No errors have been found.

The content of config/config.php:
{
“basic”: {
“license key”: “REMOVED SENSITIVE VALUE”,
“date”: “Wed, 13 Apr 2022 14:41:32 +0000”,
“ownCloud version”: “10.9.1.2”,
“ownCloud version string”: “10.9.1”,
“ownCloud edition”: “Community”,
“server OS”: “Linux”,
“server OS version”: “Linux 5.4.159-x86_64-jb1 #1 SMP Fri Nov 12 15:34:29 CET 2021 x86_64”,
“server SAPI”: “apache2handler”,
“webserver version”: “Apache”,
“hostname”: “”,
“logged-in user”: “admin”
},
“stats”: {
“users”: {
“Database”: {
“count”: 8,
“seen”: 7,
“logged in (30 days)”: 2
}
},
“groups”: {
“OC\Group\Database”: 6
}
},
“config”: {
“instanceid”: “ocwtsm6sdzrn”,
“passwordsalt”: “REMOVED SENSITIVE VALUE”,
“secret”: “REMOVED SENSITIVE VALUE”,
“trusted_domains”: [
REMOVED SENSITIVE VALUE
],
“datadirectory”: “/var/owncloud/data”,
“overwrite.cli.url”: “REMOVED SENSITIVE VALUE”,
“dbtype”: “pgsql”,
“version”: “10.9.1.2”,
“dbname”: “owncloud_db”,
“dbhost”: “localhost:5432”,
“dbtableprefix”: “oc_”,
“dbuser”: “REMOVED SENSITIVE VALUE”,
“dbpassword”: “REMOVED SENSITIVE VALUE”,
“allow_user_to_change_mail_address”: “”,
“logtimezone”: “Europe/Berlin”,
“apps_paths”: [
{
“path”: “REMOVED SENSITIVE VALUE”,
“url”: “/apps”,
“writable”: false
},
{
“path”: “REMOVED SENSITIVE VALUE”,
“url”: “/apps-external”,
“writable”: true
}
],
“installed”: true,
“integrity.ignore.missing.app.signature”: [
“mynewtheme”
],
“enable_previews”: false,
“maintenance”: false,
“loglevel”: 2,
“filelocking.enabled”: true,
“memcache.local”: “\OC\Memcache\Redis”,
“memcache.locking”: “\OC\Memcache\Redis”,
“redis”: {
“host”: “/var/run/redis/redis.sock”,
“port”: 0,
“timeout”: 0,
“password”: “REMOVED SENSITIVE VALUE”,
“dbindex”: 0
}
},
“integritychecker”: {
“passing”: true,
“enabled”: true,
“result”: []
},
“core”: {
“installedat”: “1640098456.2592”,
“public_webdav”: “dav/appinfo/v1/publicwebdav.php”,
“public_files”: “files_sharing/public.php”,
“first_install_version”: “10.9.0.3”,
“lastupdatedat”: “1649859903”,
“lastupdateResult”: “[]”,
“backgroundjobs_mode”: “cron”,
“vendor”: “owncloud”,
“lastcron”: “1649860201”
},.

List of activated apps:

  • comments:
    • Version: 0.3.0
  • configreport:
    • Version: 0.2.0
  • dav:
    • Version: 0.7.0
  • federatedfilesharing:
    • Version: 0.5.0
  • federation:
    • Version: 0.1.0
  • files:
    • Version: 1.5.2
  • files_external:
    • Version: 0.8.0
  • files_mediaviewer:
    • Version: 1.0.5
  • files_sharing:
    • Version: 0.14.0
  • files_trashbin:
    • Version: 0.9.1
  • files_versions:
    • Version: 1.3.0
  • firstrunwizard:
    • Version: 1.2.0
  • market:
    • Version: 0.6.2
  • mynewtheme:
    • Version: 1.0.0
  • notifications:
    • Version: 0.5.4
  • provisioning_api:
    • Version: 0.5.0
  • systemtags:
    • Version: 0.3.0
  • updatenotification:
    • Version: 0.2.1

Are you using external storage, if yes which one: no

Are you using encryption: no

Are you using an external user-backend, if yes which one: no

Client configuration

Browser: Firefox 99.0 (64-Bit)

Operating system: Windows 10

Logs

Web server error log

ownCloud log (data/owncloud.log)

{“reqId”:“Ylbk3TsAoQ-T3RTgDeN@DwAAAAU”,“level”:4,“time”:“2022-04-13T17:03:31+02:00”,“remoteAddr”:“62.245.140.240”,“user”:“admin”,“app”:“webdav”,“method”:“PROPFIND”,“url”:"/remote.php/dav/files/admin/",“message”:"Exception: An exception occurred while executing 'SELECT “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”,

… (a lot of lines of the same style) …

COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count”, “object_id” AS “id”, COUNT(“object_id”) AS “count” FROM “oc_comments” c WHERE (“object_type” = ?) AND (“object_id” IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)) AND (“object_id” NOT IN (SELECT “object_id” FROM “oc_comments_read_markers” crm WHERE (crm.“user_id” = ?) AND (crm.“marker_datetime” >= c.“creation_timestamp”) AND (c.“object_id” = crm.“object_id”))) GROUP BY “object_id”’ with params [“files”, 185554, 185555, 185556, 28284, 185557, 185558, 185559, 185560, 185561, 185562, 185563, 185564, 185565, 185566, 28285, 185567, 185568, 185569, 185570, 185571, 185572, 185573, 185574, 185575, 185576, 28286, 185577, 185578, 185579, 185580, 185581, 185582, 185583, 185584, 185585, 185586, 28287, 185587, 185588, 185589, 185590, 185591, 185592, 185593, 185594, 185595, 185596, 28288, 12565, 185597, 185598, 185599, 185600, 185601, 185602, 185603, 185604, 185605, 185606, 28289, 185607, 185608, 185609, 185610, 185611, 185612, 185613, 185614, 185615, 185616, 28290, 185617, 185618, 185619, 185620, 185621, 185622, 185623, 185624, 185625, 185626, 28291, 185627, 185628, 185629, 185630, 185631, 185632, 185633, 185634, 185635, 185636, 28292, 185637, 185638, 185639, 185640, 185641, 185642, 185643, “admin”]:\n\nSQLSTATE[54000]: Program limit exceeded: 7 FEHLER: Targetlisten k\u00f6nnen h\u00f6chstens 1664 Eintr\u00e4ge haben: {“Exception”:“Doctrine\\DBAL\\Exception\\DriverException”,“Message”:"An exception occurred while executing 'SELECT \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”,

… (a lot of lines of the same style) …

COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\”, \“object_id\” AS \“id\”, COUNT(\“object_id\”) AS \“count\” FROM \“oc_comments\” c WHERE (\“object_type\” = ?) AND (\“object_id\” IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)) AND (\“object_id\” NOT IN (SELECT \“object_id\” FROM \“oc_comments_read_markers\” crm WHERE (crm.\“user_id\” = ?) AND (crm.\“marker_datetime\” >= c.\“creation_timestamp\”) AND (c.\“object_id\” = crm.\“object_id\”))) GROUP BY \“object_id\”’ with params [\“files\”, 185554, 185555, 185556, 28284, 185557, 185558, 185559, 185560, 185561, 185562, 185563, 185564, 185565, 185566, 28285, 185567, 185568, 185569, 185570, 185571, 185572, 185573, 185574, 185575, 185576, 28286, 185577, 185578, 185579, 185580, 185581, 185582, 185583, 185584, 185585, 185586, 28287, 185587, 185588, 185589, 185590, 185591, 185592, 185593, 185594, 185595, 185596, 28288, 12565, 185597, 185598, 185599, 185600, 185601, 185602, 185603, 185604, 185605, 185606, 28289, 185607, 185608, 185609, 185610, 185611, 185612, 185613, 185614, 185615, 185616, 28290, 185617, 185618, 185619, 185620, 185621, 185622, 185623, 185624, 185625, 185626, 28291, 185627, 185628, 185629, 185630, 185631, 185632, 185633, 185634, 185635, 185636, 28292, 185637, 185638, 185639, 185640, 185641, 185642, 185643, \“admin\”]:\n\nSQLSTATE[54000]: Program limit exceeded: 7 FEHLER: Targetlisten k\u00f6nnen h\u00f6chstens 1664 Eintr\u00e4ge haben",“Code”:0,“Trace”:"#0 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/DBALException.php(182): Doctrine\\DBAL\\Driver\\AbstractPostgreSQLDriver->convertException()\n#1 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/DBALException.php(159): Doctrine\\DBAL\\DBALException::wrapException()\n#2 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Connection.php(2225): Doctrine\\DBAL\\DBALException::driverExceptionDuringQuery()\n#3 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Connection.php(1312): Doctrine\\DBAL\\Connection->handleExceptionDuringQuery()\n#4 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/DB\/Connection.php(191): Doctrine\\DBAL\\Connection->executeQuery()\n#5 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Query\/QueryBuilder.php(212): OC\\DB\\Connection->executeQuery()\n#6 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/DB\/QueryBuilder\/QueryBuilder.php(142): Doctrine\\DBAL\\Query\\QueryBuilder->execute()\n#7 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/Comments\/Manager.php(411): OC\\DB\\QueryBuilder\\QueryBuilder->execute()\n#8 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/lib\/Connector\/Sabre\/CommentPropertiesPlugin.php(114): OC\\Comments\\Manager->getNumberOfUnreadCommentsForNodes()\n#9 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/event\/lib\/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->handleGetProperties()\n#10 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1052): Sabre\\DAV\\Server->emit()\n#11 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode()\n#12 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1662): Sabre\\DAV\\Server->getPropertiesIteratorForPath()\n#13 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1642): Sabre\\DAV\\Server->writeMultiStatus()\n#14 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/http\/lib\/Sapi.php(83): Sabre\\DAV\\Server->Sabre\\DAV\\{closure}(*** sensitive parameters replaced )\n#15 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(490): Sabre\\HTTP\\Sapi::sendResponse()\n#16 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(253): Sabre\\DAV\\Server->invokeMethod()\n#17 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/lib\/Server.php(345): Sabre\\DAV\\Server->start()\n#18 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/appinfo\/v2\/remote.php(31): OCA\\DAV\\Server->exec()\n#19 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/remote.php(165): require_once(’\/var\/www\/html\/w…’)\n#20 {main}",“File”:"\/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Driver\/AbstractPostgreSQLDriver.php",“Line”:102}"}
{“reqId”:“Ylbk3TsAoQ-T3RTgDeN@DwAAAAU”,“level”:4,“time”:“2022-04-13T17:03:31+02:00”,“remoteAddr”:“REMOVED SENSITIVE VALUE”,“user”:“admin”,“app”:“webdav”,“method”:“PROPFIND”,“url”:"/remote.php/dav/files/admin/",“message”:“Caused by: {“Exception”:“Doctrine\\DBAL\\Driver\\PDO\\Exception”,“Message”:“SQLSTATE[54000]: Program limit exceeded: 7 FEHLER: Targetlisten k\u00f6nnen h\u00f6chstens 1664 Eintr\u00e4ge haben”,“Code”:“54000”,“Trace”:”#0 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Driver\/PDOStatement.php(119): Doctrine\\DBAL\\Driver\\PDO\\Exception::new()\n#1 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Connection.php(1303): Doctrine\\DBAL\\Driver\\PDOStatement->execute()\n#2 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/DB\/Connection.php(191): Doctrine\\DBAL\\Connection->executeQuery()\n#3 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Query\/QueryBuilder.php(212): OC\\DB\\Connection->executeQuery()\n#4 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/DB\/QueryBuilder\/QueryBuilder.php(142): Doctrine\\DBAL\\Query\\QueryBuilder->execute()\n#5 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/Comments\/Manager.php(411): OC\\DB\\QueryBuilder\\QueryBuilder->execute()\n#6 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/lib\/Connector\/Sabre\/CommentPropertiesPlugin.php(114): OC\\Comments\\Manager->getNumberOfUnreadCommentsForNodes()\n#7 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/event\/lib\/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->handleGetProperties()\n#8 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1052): Sabre\\DAV\\Server->emit()\n#9 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode()\n#10 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1662): Sabre\\DAV\\Server->getPropertiesIteratorForPath()\n#11 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1642): Sabre\\DAV\\Server->writeMultiStatus()\n#12 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/http\/lib\/Sapi.php(83): Sabre\\DAV\\Server->Sabre\\DAV\\{closure}(
sensitive parameters replaced )\n#13 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(490): Sabre\\HTTP\\Sapi::sendResponse()\n#14 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(253): Sabre\\DAV\\Server->invokeMethod()\n#15 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/lib\/Server.php(345): Sabre\\DAV\\Server->start()\n#16 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/appinfo\/v2\/remote.php(31): OCA\\DAV\\Server->exec()\n#17 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/remote.php(165): require_once(’\/var\/www\/html\/w…’)\n#18 {main}",“File”:"\/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Driver\/PDO\/Exception.php",“Line”:18}"}
{“reqId”:“Ylbk3TsAoQ-T3RTgDeN@DwAAAAU”,“level”:4,“time”:“2022-04-13T17:03:31+02:00”,“remoteAddr”:“REMOVED SENSITIVE VALUE”,“user”:“admin”,“app”:“webdav”,“method”:“PROPFIND”,“url”:"/remote.php/dav/files/admin/",“message”:“Caused by: {“Exception”:“PDOException”,“Message”:“SQLSTATE[54000]: Program limit exceeded: 7 FEHLER: Targetlisten k\u00f6nnen h\u00f6chstens 1664 Eintr\u00e4ge haben”,“Code”:“54000”,“Trace”:”#0 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Driver\/PDOStatement.php(117): PDOStatement->execute()\n#1 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Connection.php(1303): Doctrine\\DBAL\\Driver\\PDOStatement->execute()\n#2 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/DB\/Connection.php(191): Doctrine\\DBAL\\Connection->executeQuery()\n#3 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Query\/QueryBuilder.php(212): OC\\DB\\Connection->executeQuery()\n#4 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/DB\/QueryBuilder\/QueryBuilder.php(142): Doctrine\\DBAL\\Query\\QueryBuilder->execute()\n#5 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/private\/Comments\/Manager.php(411): OC\\DB\\QueryBuilder\\QueryBuilder->execute()\n#6 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/lib\/Connector\/Sabre\/CommentPropertiesPlugin.php(114): OC\\Comments\\Manager->getNumberOfUnreadCommentsForNodes()\n#7 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/event\/lib\/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->handleGetProperties()\n#8 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1052): Sabre\\DAV\\Server->emit()\n#9 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode()\n#10 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1662): Sabre\\DAV\\Server->getPropertiesIteratorForPath()\n#11 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(1642): Sabre\\DAV\\Server->writeMultiStatus()\n#12 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/http\/lib\/Sapi.php(83): Sabre\\DAV\\Server->Sabre\\DAV\\{closure}(
sensitive parameters replaced ***)\n#13 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(490): Sabre\\HTTP\\Sapi::sendResponse()\n#14 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/sabre\/dav\/lib\/DAV\/Server.php(253): Sabre\\DAV\\Server->invokeMethod()\n#15 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/lib\/Server.php(345): Sabre\\DAV\\Server->start()\n#16 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/apps\/dav\/appinfo\/v2\/remote.php(31): OCA\\DAV\\Server->exec()\n#17 \/var\/www\/html\/REMOVED SENSITIVE VALUE\/remote.php(165): require_once(’\/var\/www\/html\/w…’)\n#18 {main}",“File”:"\/var\/www\/html\/REMOVED SENSITIVE VALUE\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Driver\/PDOStatement.php",“Line”:117}"}

Browser log

Hey, yes, there are limitations to how many files can be feasibly put into a folder. I am not sure where exactly these limitations are, however I would guess somewhere around several hundred to a thousand objects per folder.

So far requests to increase these limits have always been met with something along the lines of:

“Nobody needs 100k files in a single folder, please adjust your workflow / processes. Neither a human can productively work with 100k files in a single folder, nor does it really make sense to scan that many files using an automated program.”

In order to get a fix for this implemented, you’d need a really good user story and money to throw at the development of this if you don’t want to fix it yourself.

1 Like