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

  • makki
    antwortet
    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

    Einen Kommentar schreiben:


  • Chris M.
    hat ein Thema erstellt [wiregate] Plugins: Timeout debuggen?.

    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...)
Lädt...
X