Ergebnis 1 bis 8 von 8

Thema: Error: Allowed memory size exhausted

  1. #1
    Contao-Nutzer
    Registriert seit
    02.11.2018.
    Beiträge
    44

    Fehler Error: Allowed memory size exhausted

    Hallo liebe Community,

    ich habe auf meinem Test-Sytem versucht das ein oder andere neue Paket zu installieren, um meine Website zu erweitern (im speziellen Fall das MATE Isotope Theme). Dabei kam es immer wieder zu Installationsfehlern. Zuerst hatte ich daran gedacht, dass an dem Theme etwas nicht klappt, aber mittlerweile habe ich festgestellt, dass jedesmal ein Memory Size Error erzeugt wird, wenn ich Composer Install/Update ausführe - auch auf meinem Live-System. Somit gehe ich davon aus, dass relevante Änderungen gar nicht fertig übernommen werden, und die Installation insgesamt nicht klappt.

    Hier erstmal die Fehlermeldung aus dem "composer update":
    Code:
    $ /bin/php74 -q -dmax_execution_time=0 -dmemory_limit=-1 -dallow_url_fopen=1 -ddisable_functions= -ddate.timezone=Europe/Berlin /www/htdocs/[ACC]/[URL]/web/contao-manager.phar.php composer install --prefer-dist --no-dev --no-progress --no-ansi --no-interaction --optimize-autoloader
    Installing dependencies from lock file
    Verifying lock file contents can be installed on current platform.
    Package operations: 0 installs, 5 updates, 0 removals
      - Downloading myclabs/php-enum (1.8.3)
      - Downloading monolog/monolog (2.3.0)
      - Downloading php-http/client-common (2.4.0)
      - Downloading contao/image (1.1.1)
      - Downloading isotope/isotope-core (2.7.3)
      - Upgrading myclabs/php-enum (1.8.1 => 1.8.3): Extracting archive
      - Upgrading monolog/monolog (2.2.0 => 2.3.0): Extracting archive
      - Upgrading php-http/client-common (2.3.0 => 2.4.0): Extracting archive
      - Upgrading contao/image (1.1.0 => 1.1.1): Extracting archive
      - Upgrading isotope/isotope-core (2.7.2 => 2.7.3): Extracting archive
    Package league/uri-hostname-parser is abandoned, you should avoid using it. No replacement was suggested.
    Package league/uri-schemes is abandoned, you should avoid using it. No replacement was suggested.
    Package patchwork/utf8 is abandoned, you should avoid using it. Use symfony/polyfill-mbstring or symfony/string instead.
    Package sensiolabs/security-checker is abandoned, you should avoid using it. Use https://github.com/fabpot/local-php-security-checker instead.
    Generating optimized autoload files
    Class UnitedPrototype\GoogleAnalytics\Internals\Request\SocialinteractionRequest located in ./vendor/isotope/isotope-core/system/modules/isotope/library/UnitedPrototype/GoogleAnalytics/Internals/Request/SocialInteractionRequest.php does not comply with psr-0 autoloading standard. Skipping.
    Class League\Uri\Schemes\AbstractUri located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    Class League\Uri\Schemes\Data located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    Class League\Uri\Schemes\File located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    Class League\Uri\Schemes\Ftp located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    Class League\Uri\Schemes\Http located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    Class League\Uri\Schemes\Uri located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    Class League\Uri\Schemes\UriException located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    Class League\Uri\Schemes\Ws located in ./vendor/league/uri-schemes/src/Schemes/deprecated.php does not comply with psr-4 autoloading standard. Skipping.
    composer/package-versions-deprecated: Generating version class...
    composer/package-versions-deprecated: ...done generating version class
    contao/manager-plugin: Generating plugin class...
    contao/manager-plugin: ...done generating plugin class
    Please edit your root composer.json and set "post-install-cmd" to "@php vendor/bin/contao-setup --no-ansi" instead of using "ScriptHandler::initializeApplication()".
    97 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    > Contao\ManagerBundle\Composer\ScriptHandler::initializeApplication
    Added the web/preview.php file.
    Added the web/app.php file.
    Added the web/index.php file.
     // Clearing the cache for the prod environment with debug                      
     // false                                                                       
     [OK] Cache for the "prod" environment (debug=false) was successfully cleared.  
     // Clearing the cache for the dev environment with debug                       
     // true                                                                        
     [OK] Cache for the "dev" environment (debug=true) was successfully cleared.    
     // Warming up the cache for the prod environment with debug                    
     // false                                                                       
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /www/htdocs/[ACC]/[URL]/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php on line 2026
    PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /www/htdocs/[ACC]/[URL]/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php on line 2026
    In Php5.php line 2026:
                                                                                   
      Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate   
      20480 bytes)                                                                 
                                                                                   
    cache:warmup [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--] <command>
    11:35:42 CRITICAL  [console] Error thrown while running command "--no-ansi". Message: "An error occurred while executing the "/usr/bin/php74 /www/htdocs/[ACC]/[URL]/vendor/contao/manager-bundle/bin/contao-console cache:warmup --env=prod --no-ansi" command: PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /www/htdocs/[ACC]/[URL]/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php on line 2026
    In Php5.php line 2026:
                                                                                   
      Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate   
      20480 bytes)                                                                 
                                                                                   
    cache:warmup [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--] <command>
    " ["exception" => RuntimeException { …},"command" => "--no-ansi","message" => """  An error occurred while executing the "/usr/bin/php74 /www/htdocs/[ACC]/[URL]/vendor/contao/manager-bundle/bin/contao-console cache:warmup --env=prod --no-ansi" command: PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /www/htdocs/[ACC]/[URL]/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php on line 2026\n  \n  In Php5.php line 2026:\n                                                                                 \n    Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate   \n    20480 bytes)                                                                 \n                                                                                 \n  \n  cache:warmup [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--] <command>\n  \n  """]
    In ContaoSetupCommand.php line 128:
                                                                                   
      An error occurred while executing the "/usr/bin/php74 /www/htdocs/[ACC]/  
      [URL]/vendor/contao/manager-bundle/bin/contao-console cache  
      :warmup --env=prod --no-ansi" command: PHP Fatal error:  Allowed memory siz  
      e of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /www/htdo  
      cs/[ACC]/[URL]/vendor/nikic/php-parser/lib/PhpParser/Par  
      ser/Php5.php on line 2026                                                    
                                                                                   
      In Php5.php line 2026:                                                       
                                                                                   
                                                                                   
        Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate                                                                            
        20480 bytes)                                                               
                                                                                   
                                                                                   
                                                                                   
                                                                                   
      cache:warmup [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--  
      verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--en  
      v ENV] [--] <command>                                                        
                                                                                   
    contao:setup [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--] [<command>]
    # Process terminated with exit code 0
    # Result: OK
    Da dieser Fehler nicht unbekannt scheint (vor allem bei All-Inkl. gehosteten Seiten), habe ich mich an den Support gewandt, der mir gesagt hat, wie ich das Memory Limit erhöhen kann. Das habe ich getan. Auch über die .htaccess, wie in manch anderen Threads erwähnt - der Fehler bleibt bestehen. Die Jungs fragen nun, ob man das "-dmemory_size=-1" auf "256M" ändern könne. Leider habe ich in anderen Beiträgen dazu nix gefunden. Geht das? Wenn ja: wie? (Ich habe keinen SSH Zugriff auf die Maschine, sondern kann nur über den Browser arbeiten!)

    Ich habe auch bereits versucht den Cloud Resolver abzuschalten, und zuzuschalten, aber auch da - immer der selbe Fehler - immer die (annähernd) selbe Menge an Speicher.

    Zur weiteren Fehlerdiagnose hier mal meine composer.json.

    Code:
    {
        "name": "contao/managed-edition",
        "type": "project",
        "description": "Contao Open Source CMS",
        "license": "LGPL-3.0-or-later",
        "authors": [
            {
                "name": "Leo Feyer",
                "homepage": "https://github.com/leofeyer"
            }
        ],
        "require": {
            "php": "^7.1",
            "bugbuster/contao-visitors-bundle": "^1.3",
            "codefog/contao-cookiebar": "^2.1",
            "contao-themes-net/mate-theme-bundle": "^2.13",
            "contao/calendar-bundle": "4.11.*",
            "contao/comments-bundle": "4.11.*",
            "contao/conflicts": "*@dev",
            "contao/faq-bundle": "4.11.*",
            "contao/listing-bundle": "4.11.*",
            "contao/manager-bundle": "4.11.*",
            "contao/news-bundle": "4.11.*",
            "contao/newsletter-bundle": "4.11.*",
            "inspiredminds/contao-isotope-pdf-templates": "^2.1",
            "inszenium/isotope-export": "^2.0",
            "isotope/isotope-core": "^2.7",
            "menatwork/contao-matomotrackingtag-bundle": "^1.1",
            "richardhj/contao-isotope_simple_stockmanagement": "^2.0"
        },
        "conflict": {
            "contao-components/installer": "<1.3",
            "contao/core-bundle": "4.6.7",
            "knplabs/knp-time-bundle": "1.11.0"
        },
        "require-dev": {
            "sensiolabs/security-checker": "^4.1"
        },
        "extra": {
            "branch-alias": {
                "dev-4.7": "4.7.x-dev"
            },
            "contao-component-dir": "assets"
        },
        "autoload": {
            "psr-4": {
                "App\\": "src/"
            }
        },
        "scripts": {
            "post-install-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ],
            "post-update-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ]
        }
    }
    Ich habe auch versucht die zu "entschlacken", und ne komplette Neuinstallation aufzsetzen: selbes Problem!

    Hoffe auf hilfreiche Ratschläge zur Fehlerbehebung, oder Ideen, was ich noch weiter zur Fehleranlayse beitragen kann!

    Danke und Grüße
    Julian

    P.S.: Alle Systeme laufen auf 4.11.5.

  2. #2
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.742
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Solche Probleme sollte eigentlich die Resolver Cloud lösen. Ist die bei Dir an?
    Kein ssh-Zugriff bei All-Inkl. hört sich außerdem nach einem sehr kleinen Paket (Privat oder Privat Plus) an. Ab Premium gibt es ssh bei All-Inkl.
    Isotope gehört auf jeden Fall zu den größeren Paketen. Kann auch sein, dass das kleine Paket bei All-Inkl. auch für die Installation der aufgelösten Abhängigkeiten nicht ausreicht. Auf so einem Paket würde ich allerdings ohnehin keinen Shop betreiben.

    Nachtrag: Jetzt erst noch mal die Fehlermeldung bis zu Ende studiert. Sieht für micht so aus als wenn dass Paket beim Cache neu erstellen in die Kniee geht.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  3. #3
    Contao-Nutzer
    Registriert seit
    02.11.2018.
    Beiträge
    44

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Solche Probleme sollte eigentlich die Resolver Cloud lösen. Ist die bei Dir an?
    Ja, hab sie standardmäßig an, da All-Inkl. (zumindest war es vor einiger Zeit so) schon mit der reinen Contao Installation ohne was anderes Probleme hat(te). Aber auch wenn ich den Cloud Resolver abstelle, ändert sich nichts am Fehler.

    Zitat Zitat von mlweb Beitrag anzeigen
    Kein ssh-Zugriff bei All-Inkl. hört sich außerdem nach einem sehr kleinen Paket (Privat oder Privat Plus) an.
    Ja, PrivatPlus.

    Zitat Zitat von mlweb Beitrag anzeigen
    Auf so einem Paket würde ich allerdings ohnehin keinen Shop betreiben.
    Naja, wir haben ein Nebengewerbe, und da ist es ab und an sehr praktisch, wenn jemand etwas über einen Shop buchen, und wir auch darüber Rechnungen generieren können. Macht es für uns einfach deutlich angenehmer.

    Zitat Zitat von mlweb Beitrag anzeigen
    Nachtrag: Jetzt erst noch mal die Fehlermeldung bis zu Ende studiert. Sieht für micht so aus als wenn dass Paket beim Cache neu erstellen in die Kniee geht.
    Ja, wenn der Cache neu erstellt wird. So erscheint es mir auch.

    Ich hab gerade gesehen, dass Premium auch nur 2€ mehr im Moment kostet. Das ist jetzt theoretisch nicht das Geld, aber wenn man es mit den paar Heidelbeergroschen gegenrechnet, die wir mit dem Business einnehmen, dann ist das erstmal etwas, was man überlegen muss. Und es wäre natürlich gut zu wissen, ob das Problem dann damit wirklich gelöst wäre. Nur mit ssh Zugriff kann ich ja auch nix zaubern, wenn es am Memory scheitert.

    Die PHP Parameter kann ich nicht irgendwie auch ohne ssh anpassen? Oder macht das gar keinen Sinn, weil bei dem cache update Befehl gar kein Memory-Parameter übergeben wird?

    VG
    Julian

  4. #4
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.742
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich bin kein Entwickler, aber wenn ich es richtig verstanden habe, dann versucht der Manager das Limit ohnehin auf -1 zu stellen (siehe auch erste Zeile der Fehlermeldung).

    Was All-Inkl. betrifft. Frag doch einfach, ob sie Dir eine Testmöglichkeit einräumen - neuer Testaccount wäre ja ohnehin möglich mit Storno - eigentlich ist All-Inkl. bei vielen Sachen nach meiner Erfahrung sehr flexibel.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  5. #5
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, zu dem Zeitpunkt hat die Resolver Cloud ihr Ding bereits erledigt, das macht also keinen Unterschied mehr. Das memory_limit über eine .htaccess zu setzen ist hier nicht möglich, weil die ja nur den Apache Webserver interessiert aber nicht das PHP-CLI, mit dem das Update ausgeführt wird. Ich habe das gerade mal bei meinem Premium-Paket angeschaut. Da ist per Default in der SSH-Konsole das memory_limit auf 256M eingestellt. Beim Aufruf mit "dmemory_limit=-1" dann, oh Wunder , auf -1. Ich kann mir eigentlich nur schwer vorstellen, dass es wirklich was helfen würde, das auf 256M einzustellen. Außer wenn das -1 bei deinem Paket, aus welchem Grund auch immer, nicht greift. Das sieht allerdings nach der Fehlermeldung schon so aus, als ob das memory_limit immer noch auf 128M wäre. Und die Jungs bei all_inkl werden schon wissen, warum sie das auf 256M eingestellt haben wollen und nicht auf -1.

  6. #6
    Contao-Nutzer
    Registriert seit
    02.11.2018.
    Beiträge
    44

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Ja, zu dem Zeitpunkt hat die Resolver Cloud ihr Ding bereits erledigt, das macht also keinen Unterschied mehr. Das memory_limit über eine .htaccess zu setzen ist hier nicht möglich, weil die ja nur den Apache Webserver interessiert aber nicht das PHP-CLI, mit dem das Update ausgeführt wird. Ich habe das gerade mal bei meinem Premium-Paket angeschaut. Da ist per Default in der SSH-Konsole das memory_limit auf 256M eingestellt.
    Das Limit gilt auch für die PHP-CLI?!

    Zitat Zitat von tab Beitrag anzeigen
    Beim Aufruf mit "dmemory_limit=-1" dann, oh Wunder , auf -1. Ich kann mir eigentlich nur schwer vorstellen, dass es wirklich was helfen würde, das auf 256M einzustellen. Außer wenn das -1 bei deinem Paket, aus welchem Grund auch immer, nicht greift. Das sieht allerdings nach der Fehlermeldung schon so aus, als ob das memory_limit immer noch auf 128M wäre. Und die Jungs bei all_inkl werden schon wissen, warum sie das auf 256M eingestellt haben wollen und nicht auf -1.
    Die Jungs von All-Inkl haben auf SharedServern (also allen nicht Server Paketen) ja um die 50 Nutzer auf dem Server. Wenn da alle mal so einfach den Speicher belegen könnten, bekommen die schnell ein Problem! Demnach ja: es gibt schon einen Grund, warum das bei 128MB ist.
    Allerdings haben mir die Jungs theoretisch auch eine Möglichkeit genannt dieses Limit hochzusetzen. Allerdings stellt sich mir da grad die Frage, ob das eben auch für die CLI gilt.
    Ich geb diesen Gedanken mal weiter.

    Danke und Grüße

  7. #7
    Contao-Nutzer
    Registriert seit
    02.11.2018.
    Beiträge
    44

    Standard

    Ok, laut All-Inkl Support kann man von "aussen" den Wert für die CLI nicht verändern. Aber angeblich soll es gehen, wenn man den Parameter als z.B. 256M übergibt.

    Also wieder die Frage: kann man über irgendeine config oder sonstige Datei die Parameter für die CLI beeinflussen, und damit das -dmemory_size=256M setzen?

    Parallel habe ich mal einen SSH Testzugang angefragt, um mittels Konsole den Befehl selbst auszuführen. Allerdings fände ich das insgesamt ziemlich mühselig, wenn ich nach jeder Installation eines Pakets oder einer sonstigen Änderung immer wieder über die Konsole arbeiten müsste, wo doch der Manager so schön komfortabel ist.

    Beste Grüße
    Julian

  8. #8
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Bei All-Inkl gilt aber auf der Kommandozeile (CLI) per Default das selbe memory_limit wie für den Webprozess, beim Premium also 256 MB. Allerdings gibt der Contao-Manager beim Kommando -1 (kein Limit) als Parameter mit. Und da stellt sich halt die Frage, was denn dann gilt. Ich konnte das natürlich per SSH schnell rausfinden z.B. per "php74 -dmemory_limit=-1 -i | grep memory_limit". Da steht bei mir dann ein memory_limit -1. Natürlich bekomme ich trotzdem nicht unbegrenzt RAM, wie sollte das auch gehen. Aber der PHP-Interpreter selbst wird das jedenfalls nicht mehr überwachen und das Skript ggf beenden.

    Ich habe auch mal ein kleines Skript getestet, mit dem man das auch ohne SSH-Zugang herausfinden kann.
    PHP-Code:
    <?php
    exec
    "/usr/bin/php74 -d memory_limit=-1 -i 2>&1"$out$result);
    echo 
    "Returncode: " .$result ."<br>";
    $out shell_exec("/usr/bin/php74 -d memory_limit=-1 -i 2>&1");
    echo 
    "Ausgabe des Scripts: " ."<br>";
    echo 
    "<pre>"print_r($out);
    ?>
    In den web-Ordner gelegt und aufgerufen gibt es die gesamte PHP-Info des PHP-CLI im Browser aus, hier für PHP 7.4.

    Edit: Sorry, ob und wenn ja wie man beeinflussen kann, mit welchen Parametern der Contao-Manager die Kommandos aufruft, das weiss ich momentan leider auch nicht.
    Geändert von tab (08.07.2021 um 17:42 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •