[Bug]: Can't fetch All Contacts: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 36.9k
- Forks
- 5.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 713
Description
⚠️ This issue respects the following points: ⚠️
- This is a bug, not a question or a configuration/webserver/proxy issue.
- This issue is not already reported on Github OR Nextcloud Community Forum (I've searched it).
- Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
- I agree to follow Nextcloud's Code of Conduct.
Bug description
When trying to display All contacts, an error is thrown server side. See PHP logs.
We've grown the PHP memory_limit to several GiB of RAM without success. It seems that the generated array is too big.
Steps to reproduce
- Go to contacts app
- Wait for server to fetch all contacts (+22K from LDAP)
- Observe 500 error on browser console
Expected behavior
Contacts are fetched.
Installation method
None
Nextcloud Server version
27
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.2
Web server
Apache (supported)
Database engine version
MariaDB
Is this bug present after an update or on a fresh install?
Upgraded to a MAJOR version (ex. 22 to 23)
Are you using the Nextcloud Server Encryption module?
Encryption is Disabled
What user-backends are you using?
- Default user-backend (database)
- LDAP/ Active Directory
- SSO - SAML
- Other
Configuration report
No response
List of activated Apps
No response
Nextcloud Signing status
No response
Nextcloud Logs
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 28672 bytes) in /var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Result.php on line 104" while reading response, request: "REPORT /remote.php/dav/addressbooks/users/user.test@cloud.com/z-server-generated--system/ HTTP/1.1"
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 24576 bytes) in /var/www/nextcloud/apps/dav/lib/CardDAV/CardDavBackend.php on line 1045" while reading response, request: "REPORT /remote.php/dav/addressbooks/users/user.test@cloud.com/z-server-generated--system/ HTTP/1.1"
Additional info
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Inspect apps/dav/lib/CardDAV/CardDavBackend.php at line 1045 and 3rdparty/doctrine/dbal/src/Driver/PDO/Result.php at line 104. Reproduce the REPORT request against an address book with more than 22,000 LDAP contacts and trace the memory failure; done means All Contacts can be fetched without a 500 response or PHP memory exhaustion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- apache, mariadb, php
- Domain
- api, backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100