Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugins: Timeout debuggen?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Plugins: Timeout debuggen?

    Eines meiner Plugins erzeugt regelmäßig einen Eintrag im Log wie
    WARNING Thread exited TIMEOUT running PLUGIN [...]
    Da dieses Plugin intern mehrere Ausführungspfade hat (per dickem if/elsif/.../else ausgewählt), kann ich mit dieser Fehlermeldung leider nicht wirklich herausfinden, wo der Fehler steckt.

    => Kann ich irgendwie zumindest die Zeilennummer feststellen, an der das Plugin abgebrochen wurde?

    Und da ich vermute, dass das bei einem Betriessystem-Aufruf war - wie wäre hier der richtige Weg einen Befehl (wo der Rückgabewert nicht interessiert) abzusetzen?
    Mein
    Code:
    [...]
    `my_command &`;
    [...]
    scheint wohl so nicht zu funktionieren (zumindest anders kann ich mir den timeout nicht erklären...)
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    #2
    Zum Debuggen vielleicht am elegantesten selber ins plugin-log schreiben:
    Code:
    plugin_log($plugname,"bis hierhin kam ich");
    Anderweitig derzeit keine grosse Chance, weil jegliche Varianten entweder an der kaputten Signalisierung in Perl-threads oder in einem der 37 Möglichen Speicherlecks münden.

    Etwas ausführen, ohne auf den Rückgabewert zu warten sollte wie folgt gehen:
    Code:
    my $pluginforkpid = fork();
    if (!$pluginforkpid) {
    	# ich bin das dicke child - aber dank exec gleich weg
            # aber hier sind wir ein eigener, sep. prozess!
    	[B]exec[/B] "sleep 30";
            # `sleep 30` würde dagegen 30 sekunden lang >30 MB RAM verbraten! da reichen 5 lahme plugins, dann ist schicht im Schacht..
    	# das hier passiert nie, ausser exec ist syntaktisch falsch, trotzdem leichen vermeiden:
    	exit;
    } 
    # plugin läuft hier weiter 
    return;
    Ist also mit bedacht zu verwenden..

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar

    Lädt...
    X