crash - PHP Fehler /proc flooding  [GELÖST]

Allgemeine Diskussionen rund um KeyHelp.
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

Ok, ich hab das "error_log" jetzt überall rausgenommen, allerdings auf die Schnelle nicht manuell :mrgreen:

Code: Select all

# tables: php_settings + account_templates - alle aktualaisieren
UPDATE `php_settings` SET `disable_functions` = replace(disable_functions, 'error_log, ', '');
UPDATE `account_templates` SET `php_disable_functions` = replace(php_disable_functions, 'error_log, ', '');

# alle php user conf  aktualaisieren
find /etc/php/8.2/fpm/keyhelp_pool -type f -exec sed -i 's|error_log, ||g' {} \;
find /opt/keyhelp/php/*/etc/php-fpm.d -type f -exec sed -i 's|error_log, ||g' {} \;

# alle PHP services neu gestartet
systemctl status php8.2-fpm.service
systemctl restart keyhelp-php70-fpm.service
systemctl restart keyhelp-php71-fpm.service
systemctl restart keyhelp-php72-fpm.service
systemctl restart keyhelp-php73-fpm.service
systemctl restart keyhelp-php74-fpm.service
systemctl restart keyhelp-php80-fpm.service
systemctl restart keyhelp-php81-fpm.service
systemctl restart keyhelp-php83-fpm.service
systemctl restart keyhelp-php84-fpm.service
ich hoffe das reicht damit aus und es ist richtig so :roll:

Allerdings ist damit nicht allein die Ursache für die oben genannten Probleme komplett behoben ...
User avatar
24unix
Posts: 2056
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: crash - PHP Fehler /proc flooding

Post by 24unix »

Ralph wrote: Sun 23. Feb 2025, 16:47

Code: Select all

UPDATE `php_settings` SET `disable_functions` = replace(disable_functions, 'error_log, ', '');
Hast Du damit nicht ein Komma zu viel?
Cheers Micha
--
A backend dev walks into a bar, orders 1 beer.
Then orders 100 beers.
Then orders -1 beers.
Then orders “a lizard”.
Then explodes.

(The bartender says: “You really should validate your input.”)
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

24unix wrote: Sun 23. Feb 2025, 16:53
Ralph wrote: Sun 23. Feb 2025, 16:47

Code: Select all

UPDATE `php_settings` SET `disable_functions` = replace(disable_functions, 'error_log, ', '');
Hast Du damit nicht ein Komma zu viel?
das sollte so passen ... ist hier schwer zu erkennen, kopiere es mal plain in einen text editor ;-)

Code: Select all

'vorher, ', 'nacher'
das Komma vom "error_log, " mit space wird rausgefischt und mit 'nix' ersetzt, also gelöscht, quasi ...
Sieht alles sauber aus in den Account Templates und in den User settings + User .conf
User avatar
24unix
Posts: 2056
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: crash - PHP Fehler /proc flooding

Post by 24unix »

Ralph wrote: Sun 23. Feb 2025, 17:20 das sollte so passen ... ist hier schwer zu erkennen, kopiere es mal plain in einen text editor ;-)
Stimmt, Asche über mein Haupt, sah wirklich in meinem Kopf anders aus :-)
Aber als ich es dann rauskopiert habe, sortierte es sich wieder :-)
Cheers Micha
--
A backend dev walks into a bar, orders 1 beer.
Then orders 100 beers.
Then orders -1 beers.
Then orders “a lizard”.
Then explodes.

(The bartender says: “You really should validate your input.”)
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

24unix wrote: Sun 23. Feb 2025, 17:49 Stimmt, Asche über mein Haupt, sah wirklich in meinem Kopf anders aus :-)
Kein Problem, vielen Dank fürs drüberschauen!
User avatar
24unix
Posts: 2056
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: crash - PHP Fehler /proc flooding

Post by 24unix »

Ralph wrote: Sun 23. Feb 2025, 18:59
24unix wrote: Sun 23. Feb 2025, 17:49 Stimmt, Asche über mein Haupt, sah wirklich in meinem Kopf anders aus :-)
Kein Problem, vielen Dank fürs drüberschauen!
Mache ich bei solchen Sachen immer.

a) Ich könnte was lernen.
b) Ich könnte helfen.

Beides charmante Optionen :-)
Cheers Micha
--
A backend dev walks into a bar, orders 1 beer.
Then orders 100 beers.
Then orders -1 beers.
Then orders “a lizard”.
Then explodes.

(The bartender says: “You really should validate your input.”)
User avatar
Alexander
Keyweb AG
Posts: 4465
Joined: Wed 20. Jan 2016, 02:23

Re: crash - PHP Fehler /proc flooding

Post by Alexander »

Bei den kompilierten PHP packages, scheint "max_execution_time" nicht berücksichtigt zu werden bzw. bei überschreiten nicht gekillt.
Bei welchem OS, Architektur und welcher PHP-Version trat das auf?
Ich habe jetzt nur mal schnell alle PHP-Versionen auf Ubuntu 24 auf amd64 getestet und konnte es nicht reproduzieren.

(Mein Test: Alles auf Standard-Einstellungen lassen, und einfach mit "sleep(80);" schauen, ob das Script durchlaufen darf, oder vorher bei Standard 60sek. abbricht)


Ich erinnere mich nicht wo das error_log herkommt, war "error_log" vorher mal in den standard disable_functions?
Im Demo und bei einer neuen Installation scheint es nicht mehr vorhanden zu sein, ich hatte die Account Templates von einem x86 importiert ...
error_log ist seit KeyHelp 24.1 nicht mehr Teil der disable_function des Standard und Unlimited Templates. Also Ja, es stammt in deinem Fall aus deinen alten Vorlagen. Benutzerdefinierte Vorlagen rühre ich mit einem Update nicht an.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

Alexander wrote: Mon 24. Feb 2025, 11:23 Bei welchem OS, Architektur und welcher PHP-Version trat das auf?

Bezgl. max_execution_time das ist mir nur beim ARM aufgefallen, das Log zeigte einen 500er aber der zugehörige PHP Prozess wurde nicht gestoppt und lief dann endlos mit 100% Last.
Ich vermute diese Reaktion könnte aber auf das error_log in disable_functions zurückzuführen sein ...
Hier handelte es sich um eine alte Wordpress 5.6 auf, habe versucht die zumindest auf 7.4 umzustellen um das Update zu forcieren ... bei PHP 7.3 ist dann der Prozess einfach weitergelaufen und die Seite wurde nicht geladen. Nach umstellen auf PHP 7.1 war das wieder OK.
Diesen Fehler nachzustellen "Call to undefined function" auf ARM am besten eine alte WP verwenden < 6.0 und mal auf PHP 7.3 testen.
Dieser Part betrifft also erstmal nur ARM PHP.

Alexander wrote: Mon 24. Feb 2025, 11:23 error_log ist seit KeyHelp 24.1 nicht mehr Teil der disable_function des Standard und Unlimited Templates. Also Ja, es stammt in deinem Fall aus deinen alten Vorlagen. Benutzerdefinierte Vorlagen rühre ich mit einem Update nicht an.

Danke, dann nehme ich das bei allen Systemen auch x86 mal raus ;-)
Es scheint bei x86 ignoriert zu werden, der Hänger ist mir bisher nur auf 2 arm Systemen aufgefallen ...


Bei allen Systemen fällt hier nur immer ins Auge "Call to undefined function", vieleicht gibt es ja einen Weg diese notice logs irgendwie zu reduzieren, diese waren auch der Verursacher für das 95GB log file bei einem x86.
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

Gestern Abend kam es wieder zu einem 40GB error.log innerhalb von 15 Minuten ...
Ein Kunde hat versucht eine Joomla auf PHP 7.4 zu aktualisieren, das verwendete Theme war allerdings nicht kompatibel und es wurden hunderttausende "undefined constant" Meldungen ins error.log des Kunden geschrieben.
Fail2ban geht dabei ebenfalls in die Knie und produziert durch die Größe des Log files eine extrem hohe CPU Load, ein SSH Login hat etwas über 2 Minuten gedauert, danach mußte ich F2B killen um den Fehler zu lokalisieren und zu beheben.

Code: Select all

AH01071: Got error 'PHP message: PHP Warning:  Use of undefined constant Y - assumed 'Y' (this will throw an Error in a future version of PHP)
Mir ist dieses Problem bisher nur bei den komplierten PHP Versionen aufgefallen (kann nicht mit Sicherheit sagen ob es auch die Standard PHP Version betreffen könnte) also ein log flooding durch "Use of undefined constant" warnings ... AH01071 messages.
User avatar
Tobi
Community Moderator
Posts: 3276
Joined: Thu 5. Jan 2017, 13:24

Re: crash - PHP Fehler /proc flooding

Post by Tobi »

Ralph wrote: Thu 19. Jun 2025, 08:51 Ein Kunde hat versucht eine Joomla auf PHP 7.4 zu aktualisieren,
LOL
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

Tobi wrote: Thu 19. Jun 2025, 09:44 LOL
Haha ist auch keine Lösung :lol:
PHP 7.4 wird derzeit noch viel verwendet (Debian11 LTS läuft z.b. noch bis July 2026) Leute fangen nur langsam an auf PHP 8.x umzustellen, das wird dann nur problematisch wenn die log files mit warnings geflutet werden. Ob ein CMS Update von PHP 7.4 auf 8.x nun Sinn macht oder ob überhaupt noch etwas Sinn macht auf diesem Kack-Planeten möchte ich hier nicht diskutieren, aber ich denke mal es ist legitim wenn ein Kunde ein Update durchführen möchte.
User avatar
Tobi
Community Moderator
Posts: 3276
Joined: Thu 5. Jan 2017, 13:24

Re: crash - PHP Fehler /proc flooding

Post by Tobi »

Für mich lag der Witz woanders.

Wie alt muss ein CMS sein welches man JETZT erst auf 7.4 hieven will?
Wie tot muss das Theme sein da es nicht mal 7.4 unterstützt?

Das Anliegen deines Kunden ist mehr als nur legitim. Es ist absolut essenziell und unerlässlich.
Ich drücke ihm die Daumen dass es klappen mag.

Aus meiner Erfahrung heraus würde ich das aktuelle Problem aber als Chance begreifen und das CMS gleich mit der PHP Version wechseln 😉
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

Tobi wrote: Thu 19. Jun 2025, 10:14 Aus meiner Erfahrung heraus würde ich das aktuelle Problem aber als Chance begreifen und das CMS gleich mit der PHP Version wechseln 😉
Schon richtig Tobi, bevor man mit Updates beginnt müssen auch alle Scripts kompatibel sein (normal sterbliche Kunden wissen das nicht) ...
Aber es geht hierbei darum das logging für "Use of undefined constant" warnings in den Griff zu bekommen, damit ein System wg. so einem Unfug nicht überquillt und nicht mehr zugänglich wird. Ich habe innerhalb 15 Minuten eingreifen können weil eine Warn Email gesendet wurde ... ich schätze mal 1 Stunde später wäre das System komplett abgerauscht. Das flooding passiert erschreckend schnell!
User avatar
Alexander
Keyweb AG
Posts: 4465
Joined: Wed 20. Jan 2016, 02:23

Re: crash - PHP Fehler /proc flooding

Post by Alexander »

Es gibt eine PHP INI Anweisung fürs Logging, die mehrfaches Loggen des selben Fehlers verhindert. Ggf. gibts du das dem Kunden in seiner Config mal mit.
Es wird sicher nicht funktionieren, wenn der Fehler mit jedem Request ausgelöst wird, und nur, wenn er während einer Abarbeitung eines Requests mehrfach auftritt.

ini_set("ignore_repeated_errors", true);

bzw.

ignore_repeated_errors = 1
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
Ralph
Posts: 1287
Joined: Mon 30. Mar 2020, 16:14

Re: crash - PHP Fehler /proc flooding

Post by Ralph »

Alexander wrote: Thu 19. Jun 2025, 10:48 Es gibt eine PHP INI Anweisung fürs Logging, die mehrfaches Loggen des selben Fehlers verhindert. Ggf. gibts du das dem Kunden in seiner Config mal mit.
Es wird sicher nicht funktionieren, wenn der Fehler mit jedem Request ausgelöst wird, und nur, wenn er während einer Abarbeitung eines Requests mehrfach auftritt.

ini_set("ignore_repeated_errors", true);
bzw.
ignore_repeated_errors = 1
Danke Alex!
ich mache das mal so .... eventl. gleich bei allen Kandidaten die in Frage kommen :roll:
Hatte leider bisher nicht die Zeit um eine Systemweite Lösung zu finden ... selbiges Problem wird ja auch auftreten wenn z.b. bei einem Theme Entwickler eine Variablendeklaration vergessen/übersehen wird ...
Ich denke da z.b. an etwas wie Log Bedingung prüfen für "AH01071" das globale logging auf ignore_repeated_errors zu setzen oder z.b. via regex check auf "undefined constant" und diese Meldung dann nur einmal loggen (eventl. pro Tag).
Post Reply