Cannot fork: Cannot allocate memory | BlockingInformParent

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

Vorheriges Thema - Nächstes Thema

SouzA

Hi, vielen Dank für deine Tests.
Aber du musst nun nicht böse sein.
Vielleicht liegt das ja wirklich an was ganz anderem....

Aber eine bescheidene Frage habe ich noch an dich:
DOIFTOOLS lief bei deinem Test auch mit?

Vielleicht kannst du mir mal dein DOIF code schicken, den du zum Test verwendet hast?
Ich sehe zu, dass ich das am WE mal aufm Raspi laufen lasse.

Vielen Dank und bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Damian

Im Testsystem habe ich einfach definiert:

define bla dummy

und 10 verschiedene DOIFs mit jeweils:

define test DOIF ([+1] or [+1] or [+1] or [+1])(set bla on)
attr test do always


Die vier Timer fallen zusammen, deswegen würde hier auch einer ausreichen (DOIF erkennt das und macht nur einen daraus), aber auch diesen Fall wollte ich testen.

Wenn du das lange genug beobachtet hast, kannst du noch definieren:

define bla2 dummy

define n DOIF ([bla] eq "on") (set bla2 on)
attr n do always


Dieser reagiert auf das Setzen von bla.

Dann hast du schon 20 Aktionen (10 mal bla setzen und 10 mal bla2 setzen) pro Sekunde. Damit könnte ein raspi schon etwas beschäftigt sein.


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Burny4600

Bei einer dummy Konfiguration hatte ich eine Überraschung erlebt was vielleicht mit dem Fehler zu tun hat.
Ein definierter Dummy mit der Bezeichnung define AB_VG_WBLD dummy hatte ständig ein und ausgeschaltet was das System sehr stark belastet hatte.
Was ich daran nicht verstehen kann ist dass der Dummy derzeit nur als Dummy vorhanden war und trotzdem mehrfach im Sekundenbereich geschaltet hatte.
Anfangs dachte ich das über FHEM2FHEM irgend etwas diesen Dummy schalten ließ was auch nicht der Fall war weil diese Bezeichnung auf keinem anderen System vorhanden war und zudem auch noch in einer FHEM2FHEM Definition eingetragen war.
Ein rename auf eine andere Bezeichung bendete diese Phänomen. Ein rename zurück ließt den Dummy wiederum ständig schalten.
Erst ein reboot des Systems beendete das Schauspiel.
Ich bin nur durch Zufall darüber gestolpert, weil ich den Eventmonitor laufen ließ und nicht beendet hatte.
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

SouzA

Hi,

@Damian
Läuft!
{ int(keys %intAt) } = 14
RAM ~80MB

Version:
Latest Revision: 16632

File              Rev   Last Change

fhem.pl           16609 2018-04-13 19:53:08Z rudolfkoenig
90_at.pm          15795 2018-01-05 20:46:21Z rudolfkoenig
98_autocreate.pm  15620 2017-12-16 18:10:36Z rudolfkoenig
98_copy.pm        16366 2018-03-09 21:33:00Z justme1968
98_DOIF.pm        16630 2018-04-17 18:28:20Z Damian
98_dummy.pm       12700 2016-12-02 16:49:42Z rudolfkoenig
91_eventTypes.pm  14888 2017-08-13 12:07:12Z rudolfkoenig
01_FHEMWEB.pm     16599 2018-04-13 17:28:07Z rudolfkoenig
92_FileLog.pm     15874 2018-01-13 17:16:33Z rudolfkoenig
91_notify.pm      15937 2018-01-20 13:43:28Z rudolfkoenig
99_SUNRISE_EL.pm  16632 2018-04-17 19:00:21Z rudolfkoenig
98_SVG.pm         16631 2018-04-17 18:50:09Z rudolfkoenig
42_SYSMON.pm      15910 2018-01-16 23:07:56Z hexenmeister
98_telnet.pm      16293 2018-02-28 21:33:57Z rudolfkoenig
99_Utils.pm       15713 2017-12-28 11:01:02Z rudolfkoenig
98_version.pm     15140 2017-09-26 09:20:09Z markusbloch

Blocking.pm       15412 2017-11-09 14:34:29Z rudolfkoenig
Color.pm          11159 2016-03-30 16:08:06Z justme1968
DevIo.pm          16623 2018-04-15 18:44:05Z rudolfkoenig
HttpUtils.pm      16407 2018-03-14 19:43:35Z rudolfkoenig
RTypes.pm         10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm  16568 2018-04-08 09:44:42Z rudolfkoenig
TcpServerUtils.pm 15707 2017-12-27 14:41:21Z rudolfkoenig


@Burny4600
Hmm, sowas hab ich noch nie beobachtet. Wodurch sollte sowas geschehen?
Vielleicht noch irgendwo ne "alte" Ansteuerung noch aktiv gehabt?

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Burny4600

@SouzA
ZitatVielleicht noch irgendwo ne "alte" Ansteuerung noch aktiv gehabt?
Kann nicht sein denn das fällt dir gleich auf wenn eine Verknüpfung irgend wo gewesen wäre unter Probably associated with

Bisher hatte ich noch nie einen solchen Fall.
So etwas fällt dir für normal auch nicht auf. Das war ein Zufall das ich das durch den Event Monitor nach einem Update beobachtet hatte.
Wir sind hier um Umfälligkeiten zusammen zu tragen um dem Problem auf die Spur zu kommen, darum der Eintrag einer Beobachtung von mir.
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

MadMax-FHEM

Probably associated "findet" bzw. zeigt aber nicht alle "Abhängigkeiten"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Amenophis86

Würde mal manuell in der cfg bzw DB nach de Namen des Dummy suchen. Außer jemand weiß dafür einen Befehl über die Kommandozeile :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

MadMax-FHEM

MyUtils nicht vergessen...

Aber gegen 'grep' auf OS-Ebene spricht in dem Fall ja nichts...
...ist ja nur lesend... ;)

Allerdings geht das wohl nicht bei einer DB...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mumpitzstuff

Wenn es oft zu Abbrüchen mit BlockingKill kommen sollte, dann können Memory leaks die Folge sein. So lese ich jedenfalls die Beschreibung.

Zitat
kill('KILL', ...) can be used to terminate a pseudo-process by passing it the ID returned by fork(). The outcome of kill on a pseudo-process is unpredictable and it should not be used except under dire circumstances, because the operating system may not guarantee integrity of the process resources when a running thread is terminated. The process which implements the pseudo-processes can be blocked and the Perl interpreter hangs. Note that using kill('KILL', ...) on a pseudo-process() may typically cause memory leaks, because the thread that implements the pseudo-process does not get a chance to clean up its resources.

rudolfkoenig

Meines Wissens gibt es die Perl-Pseudo-Prozesse nur unter Windows.

SouzA

Hi,

ich habe den Test-Raspi nun fast zwei Tage mit den DOIFs von Damian laufen lassen. (Die Version mit den 20 Zugriffen pro Sekunde...)
Da fällt nix auf. Keine Speicherzunahme. Ich hätte jetzt behauptet, an DOIF liegt es nicht.
Hatte auch DOIFTools mitlaufen lassen...
Aktuelle version vom Test-Raspi:
Latest Revision: 16632

File              Rev   Last Change

fhem.pl           16609 2018-04-13 19:53:08Z rudolfkoenig
90_at.pm          15795 2018-01-05 20:46:21Z rudolfkoenig
98_autocreate.pm  15620 2017-12-16 18:10:36Z rudolfkoenig
98_count.pm       11992 2016-08-19 18:18:00Z betateilchen
98_DOIF.pm        16630 2018-04-17 18:28:20Z Damian
98_DOIFtools.pm   16245 2018-02-23 13:16:23Z Ellert
98_dummy.pm       12700 2016-12-02 16:49:42Z rudolfkoenig
91_eventTypes.pm  14888 2017-08-13 12:07:12Z rudolfkoenig
01_FHEMWEB.pm     16599 2018-04-13 17:28:07Z rudolfkoenig
92_FileLog.pm     15874 2018-01-13 17:16:33Z rudolfkoenig
98_help.pm        15223 2017-10-10 10:14:24Z betateilchen
91_notify.pm      15937 2018-01-20 13:43:28Z rudolfkoenig
99_SUNRISE_EL.pm  16632 2018-04-17 19:00:21Z rudolfkoenig
98_SVG.pm         16631 2018-04-17 18:50:09Z rudolfkoenig
42_SYSMON.pm      15910 2018-01-16 23:07:56Z hexenmeister
32_SYSSTAT.pm     10567 2016-01-18 21:34:09Z justme1968
98_telnet.pm      16293 2018-02-28 21:33:57Z rudolfkoenig
99_Utils.pm       15713 2017-12-28 11:01:02Z rudolfkoenig
98_version.pm     15140 2017-09-26 09:20:09Z markusbloch

Blocking.pm       15412 2017-11-09 14:34:29Z rudolfkoenig
Color.pm          11159 2016-03-30 16:08:06Z justme1968
DevIo.pm          16623 2018-04-15 18:44:05Z rudolfkoenig
HttpUtils.pm      16407 2018-03-14 19:43:35Z rudolfkoenig
RTypes.pm         10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm  16568 2018-04-08 09:44:42Z rudolfkoenig
TcpServerUtils.pm 15707 2017-12-27 14:41:21Z rudolfkoenig

console.js                 16348 2018-03-07 21:02:42Z rudolfkoenig
doif.js                    15546 2017-12-03 09:57:42Z Ellert
fhemweb.js                 16546 2018-04-03 19:51:36Z rudolfkoenig


Mein Produktivsystem ist allerdings wieder nahezu am Ende.
version:
Latest Revision: 16685

File                 Rev   Last Change

fhem.pl              16675 2018-04-29 22:15:41Z rudolfkoenig
96_allowed.pm        16295 2018-02-28 22:11:09Z rudolfkoenig
73_AMADCommBridge.pm 16559 2018-04-06 12:37:35Z CoolTux
74_AMADDevice.pm     16559 2018-04-06 12:37:35Z CoolTux
90_at.pm             15795 2018-01-05 20:46:21Z rudolfkoenig
98_autocreate.pm     15620 2017-12-16 18:10:36Z rudolfkoenig
No Id found for 74_BleTagBattery.pm
98_cmdalias.pm       16300 2018-03-01 08:48:21Z rudolfkoenig
10_CUL_HM.pm         16588 2018-04-11 18:21:53Z martinp876
95_Dashboard.pm      12251 2016-10-03 09:45:43Z talkabout
98_DOIF.pm           16651 2018-04-23 06:28:53Z Damian
98_DOIFtools.pm      16245 2018-02-23 13:16:23Z Ellert
98_dummy.pm          12700 2016-12-02 16:49:42Z rudolfkoenig
10_EnOcean.pm        16029 2018-01-28 18:43:46Z klaus.schauer
91_eventTypes.pm     14888 2017-08-13 12:07:12Z rudolfkoenig
72_FB_CALLLIST.pm    16433 2018-03-18 08:20:35Z markusbloch
72_FB_CALLMONITOR.pm 16607 2018-04-13 18:31:53Z markusbloch
01_FHEMWEB.pm        16677 2018-04-29 22:36:01Z rudolfkoenig
92_FileLog.pm        15874 2018-01-13 17:16:33Z rudolfkoenig
72_FRITZBOX.pm       16461 2018-03-21 18:26:03Z tupol
98_GOOGLECAST.pm     16589 2018-04-11 19:01:32Z dominik
20_GUEST.pm          14136 2017-04-29 16:31:46Z loredo
98_help.pm           15223 2017-10-10 10:14:24Z betateilchen
98_HMinfo.pm         16612 2018-04-14 09:28:35Z martinp876
00_HMUARTLGW.pm      16166 2018-02-13 19:52:08Z mgernoth
95_holiday.pm        16502 2018-03-27 20:59:14Z rudolfkoenig
98_HTTPMOD.pm        16216 2018-02-18 15:26:11Z StefanStrobel
02_HTTPSRV.pm        13976 2017-04-12 13:35:44Z neubert
36_JeeLink.pm        14707 2017-07-13 18:08:33Z justme1968
98_JsonList2.pm      16293 2018-02-28 21:33:57Z rudolfkoenig
36_LaCrosse.pm       16168 2018-02-13 21:01:41Z HCS
91_notify.pm         15937 2018-01-20 13:43:28Z rudolfkoenig
73_PRESENCE.pm       16177 2018-02-14 08:58:43Z markusbloch
33_readingsGroup.pm  16299 2018-03-01 08:06:55Z justme1968
10_RESIDENTS.pm      14136 2017-04-29 16:31:46Z loredo
20_ROOMMATE.pm       14136 2017-04-29 16:31:46Z loredo
32_speedtest.pm      12056 2016-08-22 19:30:31Z justme1968
99_SUNRISE_EL.pm     16632 2018-04-17 19:00:21Z rudolfkoenig
98_SVG.pm            16656 2018-04-24 21:12:43Z rudolfkoenig
42_SYSMON.pm         15910 2018-01-16 23:07:56Z hexenmeister
32_SYSSTAT.pm        10567 2016-01-18 21:34:09Z justme1968
00_TCM.pm            14876 2017-08-11 18:46:35Z klaus.schauer
50_TelegramBot.pm    16382 2018-03-11 13:20:55Z viegener
98_telnet.pm         16293 2018-02-28 21:33:57Z rudolfkoenig
59_Twilight.pm       16005 2018-01-27 06:05:51Z igami
98_update.pm         16551 2018-04-04 18:50:38Z rudolfkoenig
99_Utils.pm          15713 2017-12-28 11:01:02Z rudolfkoenig
98_version.pm        15140 2017-09-26 09:20:09Z markusbloch
70_VIERA.pm          10463 2016-01-11 18:03:07Z teevau
59_Weather.pm        16644 2018-04-22 08:07:35Z neubert
98_weblink.pm        16293 2018-02-28 21:33:57Z rudolfkoenig
32_WifiLight.pm      15907 2018-01-16 20:58:44Z herrmannj
98_WOL.pm            10595 2016-01-22 17:05:38Z dietmar63

# $Id:  $
Blocking.pm          15412 2017-11-09 14:34:29Z rudolfkoenig
Color.pm             11159 2016-03-30 16:08:06Z justme1968
DevIo.pm             16623 2018-04-15 18:44:05Z rudolfkoenig
FritzBoxUtils.pm     16344 2018-03-06 21:06:34Z rudolfkoenig
HMConfig.pm          16265 2018-02-25 18:22:43Z martinp876
HttpUtils.pm         16407 2018-03-14 19:43:35Z rudolfkoenig
myUtilsTemplate.pm    7570 2015-01-14 18:31:44Z rudolfkoenig
RESIDENTStk.pm       14160 2017-05-01 19:43:40Z loredo
RTypes.pm            10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm     16568 2018-04-08 09:44:42Z rudolfkoenig
TcpServerUtils.pm    15707 2017-12-27 14:41:21Z rudolfkoenig
UConv.pm             14398 2017-05-28 09:40:42Z loredo
Unit.pm              14136 2017-04-29 16:31:46Z loredo
YahooWeatherAPI.pm   16641 2018-04-21 12:28:38Z neubert

doif.js                    15546 2017-12-03 09:57:42Z Ellert
fhemweb.js                 16678 2018-04-29 22:42:09Z rudolfkoenig
fhemweb_readingsGroup.js   15189 2017-10-03 17:53:27Z justme1968
svg.js                     16617 2018-04-15 09:30:12Z rudolfkoenig


Siehe Bilder...

Bin ratlos...  :-\

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Burny4600

#251
Ich habe jetzt herausgefunden wie man den Speicherüberlauf mit DIOF provozieren kann.
Mit diesem Test wird der Speicherüberlauf sehr rasch erreicht.
Ich habe mir ein PWM mit DIOF für Solarpumpen erstellt und das ist FHEM jedenfalls in der Form mit DOIF zu viel des Guten.
Dieses benötigte PWM Modul muss ich mir irgendwie anders erstellen obwohl es mit DOIF grundsätzlich funktioniert.
Ich hoffe dieses Test pm bringt die Lösung des Problems.

EDIT: 17:05
Wird diese PWM Funktion wieder angehalten wird aber der Speicher nicht mehr freigegeben.
Somit wird auch bei vielen kleineren Timing Funktionen mit der Zeit der Speicher immer weniger bis dann zu wenig frei ist und kein Speichern mehr möglich ist und die Meldung Cannot allocate memory eintritt.
Bei normalen DIOF Anwendungen gibt es auch keine Probleme, nur dort wo Timing Funktionen benötigt werden
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

rudolfkoenig

Muss man nach einem "include test_DOIF.pm" was unternehmen?Ich sehe auf einem Ubuntu-VM selbst mit einem "define a at +*00:00:01 set PID20_RA {(rand(100))}" keinen Speicherzuwachs.

Burny4600

#253
@rudolfkoenig
Es ist in der fhem.cfg nur die Zeile include /.....link.../test_DOIF.pm einzufügen.
Im Anschluß ist der Wert vom Dummy PID20_RA ab 36 zu verwenden.
Ab dem Einstellwert >= 36 kannst du zusehen wie ram %tuel steigt.
Um so höher der Einstellwert um so schneller wird ram %tuel steigen.

TestumgebungJessie Stretch lite
Linux ccs-ht-rasp10 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

FHEM Version
Latest Revision: 16759

File              Rev   Last Change

fhem.pl           16744 2018-05-15 20:06:23Z rudolfkoenig
96_allowed.pm     16295 2018-02-28 22:11:09Z rudolfkoenig
90_at.pm          15795 2018-01-05 20:46:21Z rudolfkoenig
98_autocreate.pm  15620 2017-12-16 18:10:36Z rudolfkoenig
98_DOIF.pm        16755 2018-05-18 13:47:23Z Damian
98_dummy.pm       12700 2016-12-02 16:49:42Z rudolfkoenig
91_eventTypes.pm  14888 2017-08-13 12:07:12Z rudolfkoenig
93_FHEM2FHEM.pm   15006 2017-09-05 09:37:33Z rudolfkoenig
01_FHEMWEB.pm     16677 2018-04-29 22:36:01Z rudolfkoenig
92_FileLog.pm     15874 2018-01-13 17:16:33Z rudolfkoenig
No Id found for 52_I2C_SUSV.pm
98_logProxy.pm    16299 2018-03-01 08:06:55Z justme1968
# $Id: 99_myUtils.pm  2016-09-25  V1.0  Christian Schmidt $
91_notify.pm      15937 2018-01-20 13:43:28Z rudolfkoenig
94_PWM.pm         16090 2018-02-05 11:04:56Z jamesgo
00_RPII2C.pm      15021 2017-09-06 19:48:55Z klausw
No Id found for 99_sethmkey.pm
99_SUNRISE_EL.pm  16632 2018-04-17 19:00:21Z rudolfkoenig
98_SVG.pm         16737 2018-05-13 12:26:00Z rudolfkoenig
42_SYSMON.pm      15910 2018-01-16 23:07:56Z hexenmeister
98_telnet.pm      16293 2018-02-28 21:33:57Z rudolfkoenig
99_Utils.pm       15713 2017-12-28 11:01:02Z rudolfkoenig
98_version.pm     15140 2017-09-26 09:20:09Z markusbloch
98_weblink.pm     16293 2018-02-28 21:33:57Z rudolfkoenig

Blocking.pm       15412 2017-11-09 14:34:29Z rudolfkoenig
Color.pm          11159 2016-03-30 16:08:06Z justme1968
HttpUtils.pm      16759 2018-05-19 07:24:56Z rudolfkoenig
RTypes.pm         10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm  16568 2018-04-08 09:44:42Z rudolfkoenig
TcpServerUtils.pm 15707 2017-12-27 14:41:21Z rudolfkoenig

doif.js                    15546 2017-12-03 09:57:42Z Ellert
fhemweb.js                 16727 2018-05-11 09:12:01Z rudolfkoenig
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

Damian

Ich habe das Problem gefixed. Du kannst die angehängte Version testen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF