Autor Thema: FHEM Log Cannot fork: Cannot allocate memory  (Gelesen 2908 mal)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 16929
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #60 am: 09 Juli 2017, 14:08:15 »
@Groby: Danke fuer die Testwerte. Es gibt wohl 100+ Module, die Attribute direkt abfragen, ohne AttrVal, mit (if($attr{$name}{myattribute}) ... ) und dadurch $attr{$name} implizit anlegen. Ich habe das selbst bei meinen Modulen gefunden, und bei 3 gerade gefixt (FHEMWEB, Blocking, structure). Habe danach in FHEM2FHEM fuer temporaere Geraete im LOG Modus das dazugehoerige $attr Eintrag auch entfernt.

@CoolTux: '' oder "" beim Ansprechen eines Hash-Wertes in perl nur dann notwendig, wenn der Schluessel nicht als Variablenname durchgeht. Ist fuer die meisten FHEM-Geraetenamen nicht notwendig.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10385
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #61 am: 09 Juli 2017, 14:44:22 »
@CoolTux: '' oder "" beim Ansprechen eines Hash-Wertes in perl nur dann notwendig, wenn der Schluessel nicht als Variablenname durchgeht. Ist fuer die meisten FHEM-Geraetenamen nicht notwendig.

Danke Rudi für den Tip.


Grüße
« Letzte Änderung: 09 Juli 2017, 14:45:57 von CoolTux »
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10385
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #62 am: 09 Juli 2017, 14:47:25 »
@Groby: Danke fuer die Testwerte. Es gibt wohl 100+ Module, die Attribute direkt abfragen, ohne AttrVal, mit (if($attr{$name}{myattribute}) ... ) und dadurch $attr{$name} implizit anlegen. Ich habe das selbst bei meinen Modulen gefunden, und bei 3 gerade gefixt (FHEMWEB, Blocking, structure). Habe danach in FHEM2FHEM fuer temporaere Geraete im LOG Modus das dazugehoerige $attr Eintrag auch entfernt.

Könnte wetten das ich das auch bei mir in meinen ersten Modulen finde. Ich fixe Mal die Tage.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline Groby

  • Full Member
  • ***
  • Beiträge: 190
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #63 am: 09 Juli 2017, 15:26:17 »
@Rudi,

ich habe mir die Files direkt abgegriffen und getestet.

Nach >150 Events sieht das bei mir für FHEM2FHEM im LOG Modus verdammt gut aus.

"{ join(",", grep { !$defs{$_} } sort keys %attr) }" liefert keinen einzigen Eintrag mehr.

Danke...


Offline michael.winkler

  • Developer
  • Full Member
  • ****
  • Beiträge: 469
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #64 am: 10 Juli 2017, 07:48:50 »
Ich habe mir gerade mein eigenes Modul angeschaut.

    # set default settings on first define
    if ($init_done) {
        $attr{$name}{icon} = 'it_server';
    }

   # set default settings on first define
    if ($init_done) {

        # use http-method POST for FritzBox environment as GET does not seem to
        # work properly. Might restrict use to newer
        # NEUTRINO Webif versions or use of OWIF only.
        if ( exists $ENV{CONFIG_PRODUKT_NAME}
            && defined $ENV{CONFIG_PRODUKT_NAME} )
        {
            $attr{$name}{"http-method"} = 'POST';
        }

        # default method is GET and should be compatible to most
        # NEUTRINO Webif versions
        else {
            $attr{$name}{"http-method"} = 'GET';
        }
        $attr{$name}{webCmd} = 'channel';
        $attr{$name}{devStateIcon} =
          'on:rc_GREEN:off off:rc_YELLOW:on absent:rc_STOP:on';
        $attr{$name}{icon} = 'dreambox';
    }


Ist dieser Code auch davon betroffen? Wenn ja, wie müsste ich den abändern?
« Letzte Änderung: 10 Juli 2017, 07:50:26 von michael.winkler »

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10385
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #65 am: 10 Juli 2017, 07:57:37 »
Nein ist nicht betroffen. Du machst ja keine Abfrage auf ein $attr sondern eine Zuweisung.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline michael.winkler

  • Developer
  • Full Member
  • ****
  • Beiträge: 469
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #66 am: 10 Juli 2017, 07:58:38 »
Nein ist nicht betroffen. Du machst ja keine Abfrage auf ein $attr sondern eine Zuweisung.
ok, danke für die Info. Dann sind meine Module erstmal nicht davon betroffen.

Offline Thyraz

  • Full Member
  • ***
  • Beiträge: 406
Antw:FHEM Log Cannot fork: Cannot allocate memory
« Antwort #67 am: 10 Juli 2017, 12:28:33 »
Wollte auch schon seit ein paar Wochen einen Thread zu dem Thema aufmachen,
da ich das selbe Problem habe.

Da es mit 1GB auf dem Pi2 meist über eine Woche dauert bis der Zustand wieder einsetzt, ist die Fehlersuche für mich sehr schwer gewesen bisher.
Danke für die vielen Tips und Änderungen hier.

Habe schon testweise nach einem Backup mal alles an Devices gelöscht was ich in den letzten Monaten neu angelegt / hinzugefügt habe.
Leider ohne Wirkung.
"Früher" lief FHEM teilweise sehr lange ohne Probleme durch.
Das Problem ist, dass ich nicht richtig eingrenzen kann wann das Ganze begonnen hat.
Wir sind am Jahresanfang umgezogen und es kam über die Zeit danach sehr viel an neuen Devices dazu.
Eine Uptime von > 1 Woche kam da durch regelmäßige Updates/Neustarts eh kaum vor.

Mal sehen ob sich das Problem nach einem Update mit euren Änderungen gelöst hat,
sonst fuchse ich mich auch mal in die Tips hier rein und versuche mehr Infos zu liefern...
« Letzte Änderung: 10 Juli 2017, 12:32:09 von Thyraz »