Unable to run occ on command line - PHP fatal error memory exhausted in autoreload_real.php

Hi all! Love what you are doing here and am super appreciative of the community support you are providing to each other. I hope to become an active member here. NC21 is sweet! :heart_eyes_cat: I’d be grateful for any guidance.

Nextcloud version (eg, 20.0.5): 21.0.1
Operating system and version (eg, Ubuntu 20.04): Ubuntu 20.04
Apache or nginx version (eg, Apache 2.4.25): Apache/2.4.41 (Ubuntu)
PHP version (eg, 7.4): 7.4.3

Since upgrading my digital ocean droplet from an old version of Ubuntu and then NC from an old version, I am getting a similar problem to [SOLVED] Occ command; PHP Fatal error, Allowed memory size of XXX bytes exhausted and tried everything suggested in that topic with no luck. That’s a valuable topic but confusing to look at, and the error message described in the OP and by some of the people replying there is different from my own.

My error message when I run occ is below. Otherwise the upgrade appears to be have been very successful and everything seems to be working very well.

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 438272 bytes) in /var/www/nextcloud/3rdparty/composer/autoload_real.php on line 37

Is this the first time you’ve seen this error? (Y/N): Y

Steps to replicate it:

  1. from CLI, run sudo -u www-data php -f /var/www/nextcloud/occ

The output of your Nextcloud log in Admin > Logging:

nothing relevant

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

<?php
$CONFIG = array (
  'instanceid' => 'nnn',
  'passwordsalt' => 'nnn',
  'secret' => 'nnn',
  'trusted_domains' => 
  array (
    0 => 'nextcloud.nnn',
  ),
  'datadirectory' => '/mnt/volume-nyc3-01/nextcloud',
  'overwrite.cli.url' => 'nnn',
  'dbtype' => 'mysql',
  'version' => '21.0.1.1',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nnn',
  'dbpassword' => 'nnn',
  'logtimezone' => 'UTC',
  'installed' => true,
  'htaccess.RewriteBase' => '/',
  'mail_from_address' => 'nnn',
  'mail_smtpmode' => 'smtp',
  'mail_domain' => 'nnn',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpauth' => 1,
  'mail_smtphost' => 'nnn',
  'mail_smtpname' => 'nnn',
  'mail_smtppassword' => 'nnn',
  'mail_smtpport' => '25',
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 2,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'mysql.utf8mb4' => true,
  'default_phone_region' => 'US',
  'debug' => false,
);

The output of your Apache/nginx/system log in /var/log/____:

nothing relevant

There are some warnings on the admin overview still that I am concerned about.

Hi Tobias!

Sounds much like what I’m experiencing on my nextcloud instance. I just created a similar topic myself.
https://help.nextcloud.com/t/newly-upgraded-nc-21-0-1-runs-oom-during-cron-and-process-gets-killed/114687/2

I wonder if we are facing the same issue, or if its a different problem.

1 Like

Thanks for reaching out! I don’t know if our problems are related. What happens when you run occ from the command line?

Besides not being able to run occ my server is fine as far as I can tell.

1 Like

Yes when running occ (tried enabling maintenance mode), my memory got exhausted, so same effect as when cron runs.

Can you try removing your APCu cache from your config, restart PHP engine and retry?

Thanks for helping me! Which config do you mean? It’s referenced in several places. And how do I restart the php engine?

Hi Tobias,

I solved my problem by using [SOLVED] Occ command; PHP Fatal error, Allowed memory size of XXX bytes exhausted - #17 by andreasus (comment 17)

The config under the correct PHP version solved that. My OCC stop OOM errors.

1 Like

awesome! good for you, @denNorske! Thanks for updating me. Unfortunately that does not work for me.

/etc/php/7.4/cli/conf.d/20-apcu.ini contains just this:

extension=apcu.so
apc.enable_cli=1

I’ve also tried adding this apc.enable_cli=1 to /etc/php/7.4/cli/php.ini with no success. Removed it from there again now.

my /var/www/nextcloud/config/config.php contains this line. When I try removing the line entirely, I get a notice on the admin overview panel. Trying occ command without it has no effect on the error I am getting.

  'memcache.local' => '\\OC\\Memcache\\APCu',

Is it possible something entirely different is going on here, like maybe file permissions or something missing from the config file? I did just recently upgrade from a very old version so maybe there’s some stray issue.

I have a suspicion, and that is you are running the commands with “php” which runs a different version. What does sudo -u www-data php -v output for you?

Can you try adding this to the config;
apc.enable_cli=1
in the
/etc/php/7.4/cli/conf.d/20-apcu.ini
file again (because it’s needed)

and then run this (ensure it’s 7.4, so run “php7.4” and Max 1 GB Memory):

sudo -u www-data PHP_MEMORY_LIMIT=1G php7.4 -f /var/www/nextcloud/occ

Let me know how it goes :slight_smile:

1 Like
root@nextcloud:/var/www/nextcloud# sudo -u www-data php -v
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

That is still in place. I just removed it from /etc/php/7.4/cli/php.ini.

Same error. :frowning:

I think I had tried this combination of things already. I tried pretty much everything suggested in the [SOLVED] Occ command; PHP Fatal error, Allowed memory size of XXX bytes exhausted topic.

Driving me cray-zee! :crazy_face:

I am still stuck on this, finding no solution despite lots of research and experimenting with settings. I’d really appreciate any guidance with troubleshooting!

@chrisu did you ever get your occ working from the command line? I see you and I had exactly the same error message, about the same file and location.

Yes, occ command was working fine before upgrade to 21 version. Now the only way to run it is:
docker exec nextcloud su - www-data -s /bin/bash -c 'php -d memory_limit=-1 -f /var/www/html/occ' - that’s how I was able to add missing db indices. Any other method do not work for me.

1 Like

Wow! I owe you a :beers: - you shared one version of all the advice I’ve read that for some reason works!? This is what I run. I guess I will update cron so it runs this command instead. :man_shrugging:

sudo -u www-data php -d memory_limit=-1 -f /var/www/nextcloud/occ

Incidentally, I figured out that my problem was related to a typo I made in my /etc/php/7.4/cli/php.ini file. Having fixed the typo, now I am able to run sudo -u www-data /var/www/nextcloud/occ as usual, without error. :rocket:

I had written

memory_limit = 2GB

instead of the correct

memory_limit = 2G
1 Like