Ankündigung

Einklappen

Sammelbestellung ETS6 Vollversionen aktiv!

Sammelbestellung für ETS6 Vollversionen (Prof., Home, Lite) mit 40% Rabatt aktiv! Infos im Forum!
Mehr anzeigen
Weniger anzeigen

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