Keine eventgesteuerten Benachrichtigungen mehr?

Hilfe zu Znuny Problemen aller Art
Locked
srx308
Znuny newbie
Posts: 40
Joined: 22 Jun 2012, 11:10
Znuny Version: 3.2.6
Real Name: Florian

Keine eventgesteuerten Benachrichtigungen mehr?

Post by srx308 »

Hallo zusammen,

habe ein doch recht dringendes und schwerwiegendes Problem.

Seit einigen Wochen funktionieren im OTRS die eventgesteuerten Benachrichtigungen nicht mehr.

Also zum Beispiel -> Event nach Queueänderung eines Tickets

Vorne weg - das Problem ist definitiv nicht auf die Konfiguration der Benachrichtigung zurückzuführen.
Ich habe hier ein Testsystem und eben das Produktive. Am Testsystem funktioniert noch alles, am Produktiv nicht. Nach meinen Recherchen bin ich darauf gekommen, dass die Benachrichtigungen im Destruktor von Ticket.pm gefeuert werden. Hier findet anscheinend ein Art Transaktionshandling statt. Habe einen Logger eingebaut um zu sehen ob die Methode aufgerufen wird.

Am Produtiv -> nope
Am Test -> JA


Hier der Destruktor vom Ticket.pm :

Code: Select all

sub DESTROY {
    my $Self = shift;

    # execute all transaction events
    $Self->EventHandlerTransaction();

    return 1;
}

Hat vielleicht jemand Tips für mich, in welche Richtung ich weiter recherchieren kann?
Hier noch der Aufruf-Stack des DESTROY, so wie es sein sollte (also vom Testsystem geholt!).
Was mir dadurch nicht deutlich wird - wer triggert denn den Aufruf der DESTROY im Ticket.pm?

Code: Select all

Traceback (13076):
   Module: Kernel::System::Ticket::DESTROY (OTRS 3.2.6) Line: 7991
   Module: (eval) (v1.99) Line: 204
   Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler (v1.99) Line: 204
   Module: (eval) (v1.99) Line: 204
   Module: ModPerl::RegistryCooker::run (v1.99) Line: 204
   Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 170
   Module: ModPerl::Registry::handler (v1.99) Line: 31

Ich hoffe Ihr könnt mir ein paar Tips geben. Zu guter letzt: Wir benutzen OTRS 3.2.6

Vielen Dank im Voraus!

Grüße,

Flo
OTRS 3.2.6 with PostgreSQL 8.3.23 on SLES 11
srx308
Znuny newbie
Posts: 40
Joined: 22 Jun 2012, 11:10
Znuny Version: 3.2.6
Real Name: Florian

Re: Keine eventgesteuerten Benachrichtigungen mehr?

Post by srx308 »

:(
OTRS 3.2.6 with PostgreSQL 8.3.23 on SLES 11
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: Keine eventgesteuerten Benachrichtigungen mehr?

Post by reneeb »

srx308 wrote: Hat vielleicht jemand Tips für mich, in welche Richtung ich weiter recherchieren kann?
Hier noch der Aufruf-Stack des DESTROY, so wie es sein sollte (also vom Testsystem geholt!).
Was mir dadurch nicht deutlich wird - wer triggert denn den Aufruf der DESTROY im Ticket.pm?
Das DESTROY ist eine spezielle Methode in Perl. Es ist ein Destruktor der automatisch aufgerufen wird wenn ein Objekt nicht mehr benötigt wird.

Kannst Du irgendwelche Unterschiede zwischen dem Produktiv- und dem Testsystem feststellen? Konfiguration? mod_perl-Version? Apache-Version? Perl-Version? Installierte Perl-Module? Wie verhält sich der Speicherverbrauch? Wird das immer mehr oder bleibt der mehr oder weniger konstant?
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
srx308
Znuny newbie
Posts: 40
Joined: 22 Jun 2012, 11:10
Znuny Version: 3.2.6
Real Name: Florian

Re: Keine eventgesteuerten Benachrichtigungen mehr?

Post by srx308 »

Hallo,

den Speicherverbrauch kann man hier schwierig einschätzen, da es sich meiner Ansicht nicht um ein "long-running" perl Programm handelt.

Jedenfalls hatte ich heute endlich ein Erfolgserlebnis. 8)

Sollte irgendjemand mal in die Situation kommen, dass der DESTRUKTOR (Destroy) von Ticket.pm nicht mehr aufgerufen wird, liegt es höchstwahrscheinlich an (einer) Zirkelreferenz(en) bei TicketObjects.

Folgender Artikel hat mich auf diese Spur gebracht: http://perlmaven.com/eliminate-circular ... ing-weaken
Hier ist gut erklärt, warum der Destruktor nicht aufgerufen wird. -> Nämlich weil die referenzierenden Objekte gar nicht destroyed werden können, ähnlich wie in einer Datenbank Deadlocksituation. (.. im weitesten Sinne)

Zum betroffenen Object im Sourcecode hat mich das CPAN-Modul DEVEL::CYCLE gebracht.
http://search.cpan.org/~lds/Devel-Cycle ... l/Cycle.pm

Einfach zu verwenden, die Ausführung der Cycle-Suche hat zwar ca 20 Minuten gedauert - aber mit super Erfolg!


Danke an reneeb für deine Unterstützung! : -)



Viele Grüße,
Florian
OTRS 3.2.6 with PostgreSQL 8.3.23 on SLES 11
Locked