Cannot fork: Cannot allocate memory | BlockingInformParent

Begonnen von Burny4600, 14 Februar 2018, 10:33:06

Vorheriges Thema - Nächstes Thema

Shadow3561

Ich habe es mit perlbrew installiert und als Standard gesetzt.
Einfach mal nach perlbrew suchen, es gibt genug Tutorials.

MfG

rudolfkoenig


Wernieman

Hatte nicht hier im Thread jemand eine Anleitung gepostet?

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Nighthawk

Im Post #273 ist eine sehr gute Anleitung für Perlbrew.
Mit Active Perl bin ich leider nicht zurechtkommen.

mark79

Hallo,

ich glaube ich habe das Problem nun auch, jedoch passiert das direkt beim Start von Fhem.

Der Fhem Prozess genehmigt sich innerhalb von 15 Sekunden nach Start gut ~50% Ram Speicher von 4 GB und 100% CPU Last auf einem Core.
Fhem ist dann natürlich nicht zu erreichen...

Meint ihr das liegt an der Perl Version?
ii  perl                                                  5.24.1-3+deb9u4                         arm64        Larry Wall's Practical Extraction and Report Language
ii  perl-base                                             5.24.1-3+deb9u4                         arm64        minimal Perl system
ii  perl-modules-5.24                                     5.24.1-3+deb9u4                         all          Core Perl modules
ii  perl-openssl-defaults:arm64                           3                                       arm64        version compatibility baseline for Perl OpenSSL packages


Das komische ist, das ich nichts upgradet habe. Vorher lief alles. Ich habe ein älteres Fhem Backup eingespielt, aber das hat auch nicht geholfen.

Bei mir läuft Fhem in einem LXC Container, dort habe ich nur das Wirtsystem aktualisiert (apt-get dist-upgrade).

Im Moment stehe ich auf dem Schlauch.... bin aber gerade dabei perlbrew mit Perl 5.20.2 zu installieren: https://forum.fhem.de/index.php/topic,84372.270.html


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Nighthawk

#321
Hallo Zusammen,

auch bei mir ist das Problem des Speicheranstiegs seit gestern (Update des Systems und FHEM) wieder zu beobachten.

Update:
Das Problem bei mir hat einen neuen (anderen Ursprung), also bitte ignorieren.

Burny4600

Es ist nun einige Zeit mit der Fehlerermittlung her.
Hat sich in der Zwischenzeit eine Fehlererörterung ergeben und entsprechende Maßnahmen?
Derzeit behelfe ich mich immer noch mit einem zyklischem Reboot ab.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

mumpitzstuff

Die Ursachen können so verschieden sein, dass es dafür nicht wirklich irgendwelche Maßnahmen gibt, die man ergreifen könnte. Es wurde bereits festgestellt, das bestimmte Regular Expressions mit bestimmten Perl Versionen ein solches Problem hervorrufen können. Diese Regular Expressions müssen nicht mal zwangsläufig in einem FHEM Modul vergraben sein, sondern können auch in einer Perl Library stecken. Im Sird Modul wurde z.B. ebenfalls ein solches Problem gefunden. Dieses wurde durch eine XML Bibliothek hervorgerufen, die in ganz bestimmten Versionen und unter Verwendung ganz spezieller Funktionen Speicher nicht mehr freigegeben hat. Mit anderen Worten, die Bugs stecken durchaus in Perl Bibliotheken drin, auf die die Entwickler von FHEM Modulen keinen Einfluss haben.

gandy

Hallo Rudi,

meine Hoffnung, dass sich das Thema mit dem Update auf Ubuntu 18.04 und Perl 5.26.1 gibt, hat sich zerschlagen, wäre wohl auch zu einfach gewesen...

Typischerweise läuft meine Produktivumgebung etwa 10 Tage, bis Forks fehlschlagen, beim letzten Monatswechsel aber auch mal nur einen Tag lang. Da ich nicht jeden Tag das Logfile checke, merke ich das mit Tagen Verzögerung anhand irgendwelcher Nebeneffekte. Schöner fände ich es, hier auf ein Event reagieren zu können.

Was würdest Du zu folgender Änderung sagen?

--- fhem.pl     (Revision 17550)
+++ fhem.pl     (Arbeitskopie)
@@ -5311,6 +5311,7 @@
   if(!defined($pid)) {
     Log 1, "Cannot fork: $!";
     stacktrace() if($attr{global}{stacktrace});
+    DoTrigger("global", "CANNOT_FORK", 1);
     return undef;
   }


Danke und beste Grüße,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

rudolfkoenig


gandy

Danke. War die stacktrace Zeile nicht drin? Hatte extra ein svn diff gemacht.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

gandy

Nachtrag auf Nachfrage: Hier als Beispiel mein zugehöriges Notify zum automatischen Restart nach einem CANNOT_FORK:


define nf.cannot_fork.restart notify global:CANNOT_FORK shutdown restart


Dieses Notify hat vorgestern erfolgreich getriggert und all die unangenehmen Nebeneffekte verhindert.

Grüße,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

maci

Ich habe das Problem auch, nur baut sich das bei mir über Tage auf.
Derzeit (seit 8. Nov) ist alles stabil im Speicherverbrauch.
Aber irgendwann wird das wieder zuschlagen.
Ich habe das nur beim 2. Server, der zur Zeit mit ca 75 MB Speicherverbrauch läuft.
Ist ein Pi2.
Hier läuft ein OWServer , Fhem und ein Midori Browser im Kioskmodus.
Allerdings erstelle ich hier keine Plots und fast keine Logs.
Die einzigen Logs sind Fhemlog und die Sysmon Logs.

Der Hauptserver ist ein Pi3, hier hatte ich das Problem noch nie.
Hier habe ich immer so um die 330 MB Speicherverbrauch. Hier läuft nur Fhem und DbLog

Bzgl Erkennung: mir ist nicht wirklich klar, wie das abfangen kann.
Das notify im Beitrag davor: Erkennt dieses das Auftreten des Fehlers, ohne zusätzliche Auswertung, das "CANNOT FORK" ?  :-\

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

mumpitzstuff

Das erkennt wenn der Speicher ausgegangen ist und startet fhem dann neu. Das kannst du eigentlich immer einbauen, wenn du irgendwelche Probleme dahingehend hast.