Ankündigung

Einklappen
Keine Ankündigung bisher.

suche E-Mail Plugin

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

    #76
    Hi nipponichi ...

    bist Du bei Deiner Fehlersuche schon etwas weiter gekommen? Ich stehe nach wie vor vor dem gleichen Problem.. Allerdings nur wenn ich das aktuelle Logikprozessor Script laufen lasse.. dann läuft mein Email Plugin mit der Meldung Thread eiblisten Caught TERM, exiting:TIMEOUT running PLUGIN email_triggered_by_ga gegen die Wand...

    An den timeout Werten hatte ich bereits geschraubt, leider ohne Verbesserung....

    Beste Grüße und schöne Feiertage weiterhin,

    Mike

    Kommentar


      #77
      Hallo mike

      Da dein Plugin keine Subroutinen hat könntest du es ja auf vorkompilieren umstellen. Benötigt in deinem fall einzig und alleine irgend wo im Plugin folgende Zeile:

      Code:
      # COMPILE_PLUGIN
      Der "compiler" sucht nach dieser Zeile und wenn sie vorhanden ist wird das plugin vorkopiliert was die ausführungsgeschindigkeit um einiges erhöhen kann... Wer das Plugin noch mit der alten WG Version benutzt hat dadurch keine Nachteile da diese Anweisung einfach als Komentar gewertet wird
      Gruss Patrik alias swiss

      Kommentar


        #78
        Hi Swiss,

        danke für die schnelle Rückinfo.... hat leider nicht wirklich viel gebracht. das WG läuft mit allen aktuellen patches...

        im daemon log schlagen nach wie vor folgende meldungen auf

        Dec 26 11:45:00 wiregate723 /usr/sbin/wiregated.pl: INFO - Thread eiblisten Caught TERM, exiting:TIMEOUT running PLUGIN email_triggered_by_ga
        Dec 26 11:45:07 wiregate723 /usr/sbin/wiregated.pl: INFO - *** reading config
        Dec 26 11:45:07 wiregate723 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib

        Grüße,
        Mike

        Kommentar


          #79
          Selbst wenn ich das Plugin Logikprozessor mit

          $plugin_info{$plugname.'_cycle'}=0; return 'deaktiviert';

          deaktiviere und manuell über die ETS eine 1 auf die Trigger GA schicke, löst das Email Plugin nicht mehr aus. Lösche ich das Logikprozessor Plugin dagegen komplett, funzt es wieder wie es soll..... ?????

          Grüße,
          Mike

          Kommentar


            #80
            Hallo,
            danke, das kürzt meine Fehlersuche ab :-)
            Ich habe gerade ausprobiert und kann bestätigen, daß Email-Senden möglich ist, sobald man das Logikprocessor-Script löscht. Return zu Beginn einfügen reicht nicht. Ich verwende eine recht alte Version (Release 898 von Juli 2012) für Primitivlogik.
            (Und könnte es recht schnell rauswerfen, aber eine Lösung wäre natürlich besser.)
            Grüße, Manuel

            Kommentar


              #81
              Hallo nipponichi,

              ich habe verschiedene Logikprozessor Versionen durch. Der Effekt ist der gleiche. Aktuell nutze ich die letzte Version aus dem SVN...
              Hatte zwischenzeitlich den Verdacht, dass die Namen der Variablen sich aus beiden Plugins beeinflussen, da diese zum Teil gleich sind. Hatte diese geändert, auch ohne Erfolg.

              Bin am Ende mit meinem Latein.... Wer noch eine zündende Idee hat... ich nehme Sie gerne ;-)

              Grüße,

              Mike

              Kommentar


                #82
                Idealerweise sollte Fry was dazu sagen. Du hast ja schon hier ihn darum gebeten. Ansonsten Logicprocessor-Skipt analysieren und sukzessiv abspecken, um den Fehler zu isolieren. Immerhin gibt es wieder Hoffnung.

                Kommentar


                  #83
                  Ich habe leider auch keine Idee. Der LP nutzt eigentlich keine ungewöhnlichen Features... Versucht doch mal, die Subroutines verify und limit im LP umzubenennen, vielliehct gibt es da eine Namenskollision.
                  VG, Fry

                  Kommentar


                    #84
                    Eine Bitte hätte ich:

                    Solche Angaben wie:

                    Aktuell nutze ich die letzte Version aus dem SVN...
                    sind nur im derzeitigen Kontext halbwegs verständlich. Derjenige, der dies in einem halben Jahr oder später liest, hat größte Mühe herauszufinden, auf welche Version sich das nun genau beziehen sollte vor einem halben Jahr.

                    Auch bei Angaben "WG mit neuesten Patches" usw. bitte ich sich die Mühe zu machen und die Versionsbezeichnungen jeweils genau anzugeben.

                    Der spätere Leser wird es danken.

                    lg

                    Stefan

                    Kommentar


                      #85
                      Zitat von StefanW Beitrag anzeigen
                      Eine Bitte hätte ich:

                      Solche Angaben wie:



                      sind nur im derzeitigen Kontext halbwegs verständlich. Derjenige, der dies in einem halben Jahr oder später liest, hat größte Mühe herauszufinden, auf welche Version sich das nun genau beziehen sollte vor einem halben Jahr.

                      Auch bei Angaben "WG mit neuesten Patches" usw. bitte ich sich die Mühe zu machen und die Versionsbezeichnungen jeweils genau anzugeben.

                      Der spätere Leser wird es danken.

                      lg

                      Stefan
                      Hallo Stefan... Du hast natürlich Recht..
                      WG Patchlevel 1.1.5
                      Logikprozessor Plugin r2295

                      Danke & Grüße,
                      Mike

                      Kommentar


                        #86
                        Ursache ist die Art, wie vom Logicprocessor-Skript die Konfiguration eingelesen wird.
                        Es reicht, das Skript anzuspecken (bei mir noch r898), bis man nur noch eine Minimal-Config einliest mittels:
                        Code:
                        my %logic=();
                        my $conf="/etc/wiregate/plugin/generic/conf.d/$plugname"; 
                        $conf.='.conf' unless $conf=~s/\.pl$/.conf/;
                        open FILE, "<$conf" || return "no config found";
                        $/=undef;
                        my $lines = <FILE>;
                        $lines =~ s/((?:translate|\'translate\'|\"translate\")\s*=>\s*sub\s*\{)/$1 my \(\$state,\$input\)=\@\_;/sg; 
                        close FILE;
                        eval($lines);
                        return "config error: $@" if $@;
                        und das Email-Skript bleibt hängen.
                        Warum, ist nun eine Frage für Perl-Fortgeschrittene

                        Kommentar


                          #87
                          Sehr gut! Wir kommen der Ursache schon näher.

                          Versuch mal in deinem Minimal-Plugin den Deskriptor FILE durch was anderes (zB CONFIG) zu ersetzen. Immer noch ein Fehler?

                          Da ja nur der LP mit dem Email-Plugin kollidiert und andere Plugins nicht, vermute ich immer noch eine Namenskollision. Und Filedeskriptoren sind in Perl (glaube ich) global.

                          VG, Fry

                          PS. Ich glaube, das ist es nicht, siehe nächstes Posting, DAS wird es sein.

                          Kommentar


                            #88
                            Noch wahrscheinlicher:

                            Die Variable $/ ist definitiv global. Speichere den Wert vorher ab (my $delim=$/; ) und schreibe ihn nach dem Einlesen der Config wieder zurück ($/=$delim; ).

                            (allerdings wäre es schlechter Stil, wenn das andere Plugin von einem bestimmten Wert von $/ abhängt. Da müsste man das andere Skript anpassen.)

                            VG, Fry

                            Kommentar


                              #89
                              Ok, mit dem Patch klappt es

                              Code:
                              open FILE, "<$conf" || return "no config found";
                              [B]my $delim=$/;[/B]
                              $/=undef;
                              my $lines = <FILE>;
                              $lines =~ s/((?:translate|\'translate\'|\"translate\")\s*=>\s*sub\s*\{)/$1 my \(\$state,\$input\)=\@\_;/sg; 
                              [B]$/=$delim;[/B]
                              close FILE;
                              Allerdings wird $/ in den email-Scripts nicht unmittelbar verwendet. Vielleicht in der Lib Net::SMTP::SSL?

                              Kommentar


                                #90
                                Patch ist in der SVN-Version des Logikprozessors eingecheckt.
                                VG, Fry

                                Kommentar

                                Lädt...
                                X