Probleme, wenn OTRS mit mod_perl läuft

Hallo allerseits,
bin neu hier in der Liste und hoffe hier eine Lösung für ein dummes
Problem zu finden. :-)
Ich habe OTRS auf einem Webserver (RedHat 8, Apache 2.0.40, Perl
5.8.0) installiert und kürzlich von Version 1.1 auf 2.0 aktualisiert.
Die alte Version funktionierte wunderbar.
Das Upgrade hat Anfangs eine ganze Reihe an Problemen mit sich
gebracht, erst wollte der Webserver nicht mehr starten (wegen
apache2-perl-startup.pl und nicht gegebener Abhängigkeiten), dann
bekam ich immerzu CGI-Fehlermeldungen im Browser...
Inzwischen läuft OTRS wieder, allerdings ohne mod_perl. Leider ist
das System damit quälend langsam (Antwortzeiten an die 10 Sekunden und
mehr).
Wenn ich mod_perl wieder aktiviere, dann läuft OTRS nur die halbe
Zeit. Eher zufällig wird eine Seite korrekt angezeigt oder hingegen es
erscheint folgende Meldung:
------------8<------------------------------------------------------
Fehler: ???
Kommentar:
Fehler berichten:
Traceback: ERROR: OTRS-CGI-10 Perl: 5.8.0 OS: linux Time: Thu Jun 15 15:04:07 2006
Message: ???
Traceback (19611):
Module: Kernel::Output::HTML::Generic::NavigationBar (v1.197) Line: 1851
Module: Kernel::Modules::AgentTicketQueue::Run (v1.9) Line: 111
Module: Kernel::System::Web::InterfaceAgent::Run (v1.8) Line: 651
Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler (v) Line: 51
Module: (eval) (v1.80) Line: 187
Module: ModPerl::RegistryCooker::run (v1.80) Line: 187
Module: ModPerl::RegistryCooker::default_handler (v1.80) Line: 159
Module: ModPerl::Registry::handler (v1.99) Line: 16
------------8<------------------------------------------------------
Womit ich nicht wirklich viel anfangen kann...
Meistens hilft es dann auch schon, die Seite einfach neu zu laden
(seltsam!?).
Woran kann das liegen?
Ich musste übrigens auch /usr/lib/perl5/5.8.0/CGI.pm anpassen, da es
Probleme mit einer "register_cleanup"-Funktion gegeben hatte. Folgende
Zeile hat Abhilfe geschaffen:
use Apache::compat;
Dabei hatte ich vorher eine ganze Reihe Module über CPAN
aktualisiert...
Hier noch die Apache-Konfiguration für OTRS:
------------8<-------------------------------------------------------
# agent, admin and customer frontend
Alias /otrs-web/ "/opt/otrs/var/httpd/htdocs/"
ScriptAlias /otrs/ "/opt/otrs/bin/cgi-bin/"
<IfModule mod_perl.c>
# load all otrs modules
Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl
# Apache::Reload - Reload Perl Modules when Changed on Disk
PerlModule Apache::Reload
PerlInitHandler Apache::Reload
</IfModule>
# set mod_perl2 options

Hi Udo, On Thu, Jun 15, 2006 at 03:11:00PM +0200, Udo Giacomozzi wrote:
bin neu hier in der Liste und hoffe hier eine Lösung für ein dummes Problem zu finden. :-)
Ich habe OTRS auf einem Webserver (RedHat 8, Apache 2.0.40, Perl 5.8.0) installiert und kürzlich von Version 1.1 auf 2.0 aktualisiert. Die alte Version funktionierte wunderbar.
Das Upgrade hat Anfangs eine ganze Reihe an Problemen mit sich gebracht, erst wollte der Webserver nicht mehr starten (wegen apache2-perl-startup.pl und nicht gegebener Abhängigkeiten), dann bekam ich immerzu CGI-Fehlermeldungen im Browser...
Inzwischen läuft OTRS wieder, allerdings ohne mod_perl. Leider ist das System damit quälend langsam (Antwortzeiten an die 10 Sekunden und mehr).
Wenn ich mod_perl wieder aktiviere, dann läuft OTRS nur die halbe Zeit. Eher zufällig wird eine Seite korrekt angezeigt oder hingegen es erscheint folgende Meldung:
------------8<------------------------------------------------------ Fehler: ??? Kommentar: Fehler berichten: Traceback: ERROR: OTRS-CGI-10 Perl: 5.8.0 OS: linux Time: Thu Jun 15 15:04:07 2006
Message: ???
Traceback (19611): Module: Kernel::Output::HTML::Generic::NavigationBar (v1.197) Line: 1851 Module: Kernel::Modules::AgentTicketQueue::Run (v1.9) Line: 111 Module: Kernel::System::Web::InterfaceAgent::Run (v1.8) Line: 651 Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler (v) Line: 51 Module: (eval) (v1.80) Line: 187 Module: ModPerl::RegistryCooker::run (v1.80) Line: 187 Module: ModPerl::RegistryCooker::default_handler (v1.80) Line: 159 Module: ModPerl::Registry::handler (v1.99) Line: 16 ------------8<------------------------------------------------------
Womit ich nicht wirklich viel anfangen kann...
Meistens hilft es dann auch schon, die Seite einfach neu zu laden (seltsam!?).
Woran kann das liegen?
Die eingesetzte mod_perl-Version und das verwendete CGI.pm passen nicht zusammen. Leider kenne ich mich mit Red Hat nicht so gut aus, als dass ich die benutzen Versionen kennen würde.... Schreibe doch bitte mal ein paar mehr Details über deine Installation, vor allen die Versionen der eingesetzten Komponenten.
Ich musste übrigens auch /usr/lib/perl5/5.8.0/CGI.pm anpassen, da es Probleme mit einer "register_cleanup"-Funktion gegeben hatte. Folgende Zeile hat Abhilfe geschaffen:
use Apache::compat;
Dabei hatte ich vorher eine ganze Reihe Module über CPAN aktualisiert...
Hmm, hört sich alles recht wild an :(. Ich weiß nicht, ob das wirklich nötig gewesen wäre.
Udo
Ciao, Christian -- Christian Schoepplein ((otrs)) :: OTRS GmbH :: Europaring 4 :: D - 94315 Straubing Fon: +49 (0) 9421 1862 760 :: Fax: +49 (0) 9421 1862 769 http://www.otrs.com/ :: Communication with success!

Hello Christian, Saturday, June 17, 2006, 4:56:38 PM, you wrote:
Woran kann das liegen?
CS> Die eingesetzte mod_perl-Version und das verwendete CGI.pm passen nicht CS> zusammen. Leider kenne ich mich mit Red Hat nicht so gut aus, als dass CS> ich die benutzen Versionen kennen würde.... CS> Schreibe doch bitte mal ein paar mehr Details über deine Installation, CS> vor allen die Versionen der eingesetzten Komponenten. Wie kann ich die Versionen anzeigen lassen? Der Verzeichnisname lässt auf Perl 5.8.0 schliessen, OTRS Version 2.0.4. Was Perl betrifft wurden nur zusätzliche Module installiert, ansonsten blieb alles wie bei der ursprünglichen Red Hat Installation. Perl wird ausschließlich für OTRS verwendet, habe leider auch keine Erfahrung mit Perl...
Ich musste übrigens auch /usr/lib/perl5/5.8.0/CGI.pm anpassen, da es Probleme mit einer "register_cleanup"-Funktion gegeben hatte. Folgende Zeile hat Abhilfe geschaffen:
use Apache::compat;
Dabei hatte ich vorher eine ganze Reihe Module über CPAN aktualisiert...
CS> Hmm, hört sich alles recht wild an :(. Ich weiß nicht, ob das wirklich CS> nötig gewesen wäre. "Aktualisiert" war vielleicht der falsche Ausdruck, ich musste jedenfalls ein paar Module nach-installieren. Den Tipp mit "Apache::compat" hatte ich in irgendeiner Newsgroup gefunden. Soweit ich mich erinnern kann wurden zwischen der Version 1.9.99 und 2.0 (vom Apache2-Modul?) Funktionsnamen geändert (daher auch der Fehler mit register_cleanup). Idee? Udo

Hallo Udo, On Mon, Jun 19, 2006 at 09:48:32AM +0200, Udo Giacomozzi wrote:
CS> Schreibe doch bitte mal ein paar mehr Details über deine Installation, CS> vor allen die Versionen der eingesetzten Komponenten.
Wie kann ich die Versionen anzeigen lassen?
- Perl: perl --version - apache: apache2ctl -v - mod_perl: grep mod_perl /var/log/apache2/error.log
Der Verzeichnisname lässt auf Perl 5.8.0 schliessen, OTRS Version 2.0.4.
Wichtig ist vor Allem auch die mod_perl Version. Gruß Henning -- Henning Oschwald ((otrs)) :: OTRS GmbH :: Europaring 4 :: D - 94315 Straubing Fon: +49 (0) 9421 1862 760 :: Fax: +49 (0) 9421 1862 769 http://www.otrs.com/ :: Communication with success!

Hallo Henning, Monday, June 19, 2006, 1:38:14 PM, you wrote: HO> - Perl: perl --version This is perl, v5.8.0 built for i386-linux-thread-multi HO> - apache: apache2ctl -v Apache Version ist 2.0.40 (RedHat RPM Paket httpd-2.0.40-8) HO> - mod_perl: grep mod_perl /var/log/apache2/error.log Keine Informationen im errorlog zu finden, obwohl "LogLevel debug" Auch in den HTTP Response Headers ist kein Hinweis zu finden. mod_perl läuft aber, da <IfConfig mod_perl.c> greift. Das Modul ist auch *nicht* direkt in httpd compiliert. Ebenso schlägt folgendes Kommando fehl: [root@server2 conf]# perl -MApache -e 'print $Apache::VERSION, "\n"' Can't locate Apache.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .). BEGIN failed--compilation aborted. "locate mod_perl" findet u.a.: /root/.cpan/build/mod_perl-1.29 Udo

Hallo Udo, On Mon, Jun 19, 2006 at 02:26:01PM +0200, Udo Giacomozzi wrote:
Monday, June 19, 2006, 1:38:14 PM, you wrote: HO> - mod_perl: grep mod_perl /var/log/apache2/error.log
Keine Informationen im errorlog zu finden, obwohl "LogLevel debug"
Wird mod_perl dann überhaupt geladen? Leider kenne ich mich mit Redhat nicht aus und weis somit auch nicht, wie das Laden der Module in den Apache da organisiert ist, bzw. was da distributionsspeziefisches drum rum gebaut ist. Auf jeden Fall brauchst du mod_perl.so. Auf meinem Debian liegt die Datei z. B. unter /usr/lib/apache2/modules. Weiterhin muß das Modul in der Apache Konfig via LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so geladen werden (da es bei Dir ja nicht direkt einkompiliert ist.) Ich vermute mal, daß das bei Dir nicht passiert.
mod_perl läuft aber, da <IfConfig mod_perl.c> greift. Das Modul ist auch *nicht* direkt in httpd compiliert.
Hmm... Wenn es läuft, sollte man das aber auf jeden Fall beim Start von Apache im Log sehen. Gruß Henning -- Henning Oschwald ((otrs)) :: OTRS GmbH :: Europaring 4 :: D - 94315 Straubing Fon: +49 (0) 9421 1862 760 :: Fax: +49 (0) 9421 1862 769 http://www.otrs.com/ :: Communication with success!

Hello Henning, Monday, June 19, 2006, 3:41:35 PM, you wrote: HO> Wird mod_perl dann überhaupt geladen? Leider kenne ich mich mit Redhat HO> nicht aus und weis somit auch nicht, wie das Laden der Module in den HO> Apache da organisiert ist, bzw. was da distributionsspeziefisches drum HO> rum gebaut ist. Es gibt eine /etc/httpd/conf/httpd.conf, welche mittels Include conf.d/*.conf wiederum (u.a.) die Datei /etc/httpd/conf.d/perl.conf lädt, die praktisch nur folgende Zeile enthält: LoadModule perl_module modules/mod_perl.so Im gleichen Verzeichnis habe ich auch mein "zz_otrs.conf". Der Dateiname wurde so gewählt damit Apache diese Datei *nach* perl.conf lädt. Die Datei ist so aufgebaut, dass sie sowohl mit Perl-Modul als auch als CGI-Version funktioniert, z.B.: <IfModule mod_perl.c> # load all otrs modules Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl # Apache::Reload - Reload Perl Modules when Changed on Disk PerlModule Apache::Reload PerlInitHandler Apache::Reload </IfModule> (Die vollständige Datei ist im ersten Posting zu sehen) Syntaxfehler innerhalb dieses <IfModule mod_perl.c> führen dazu, dass der Server nicht startet, also wird es wohl geladen werden. HO> Ich vermute mal, daß das bei Dir nicht passiert. Irgendwo im OTRS code (oder vielleicht CPI.pm) wird kontrolliert, ob mod_perl läuft und nur dann wird dieses register_cleanup aufgerufen, welches anfangs *jeden* OTRS-Seitenaufruf blockierte. Das, wie bereits beschrieben, habe ich mittels "Apache::compat" bereits lösen können. Jedenfalls scheint mod_perl schon zu laufen. HO> Hmm... Wenn es läuft, sollte man das aber auf jeden Fall beim HO> Start von Apache im Log sehen. Denke ich auch. Vielleicht habe ich eine ältere Version von mod_perl, welche dies nicht macht? In einem VirtualHost-Log wird es wohl *nicht* landen, oder? Hier die Ausgaben von httpd: [Mon Jun 19 16:15:12 2006] [info] Init: Initializing OpenSSL library [Mon Jun 19 16:15:12 2006] [info] Init: Seeding PRNG with 136 bytes of entropy [Mon Jun 19 16:15:12 2006] [info] Init: Generating temporary RSA private keys (512/1024 bits) [Mon Jun 19 16:15:12 2006] [info] Init: Generating temporary DH parameters (512/1024 bits) [Mon Jun 19 16:15:12 2006] [debug] ssl_scache_dbm.c(416): Inter-Process Session Cache (DBM) Expiry: old: 0, new: 0, removed: 0 [Mon Jun 19 16:15:12 2006] [info] Init: Initializing (virtual) servers for SSL [Mon Jun 19 16:15:12 2006] [info] Server: Apache/2.0.40, Interface: mod_ssl/2.0.40, Library: OpenSSL/0.9.6b [Mon Jun 19 16:15:12 2006] [info] mod_unique_id: using ip addr x.x.x.x [Mon Jun 19 16:15:17 2006] [info] Init: Initializing OpenSSL library [Mon Jun 19 16:15:17 2006] [info] Init: Seeding PRNG with 136 bytes of entropy [Mon Jun 19 16:15:17 2006] [info] Init: Generating temporary RSA private keys (512/1024 bits) [Mon Jun 19 16:15:17 2006] [info] Init: Generating temporary DH parameters (512/1024 bits) [Mon Jun 19 16:15:17 2006] [debug] ssl_scache_dbm.c(416): Inter-Process Session Cache (DBM) Expiry: old: 0, new: 0, removed: 0 [Mon Jun 19 16:15:17 2006] [info] Init: Initializing (virtual) servers for SSL [Mon Jun 19 16:15:17 2006] [info] Server: Apache/2.0.40, Interface: mod_ssl/2.0.40, Library: OpenSSL/0.9.6b [Mon Jun 19 16:15:17 2006] [notice] Digest: generating secret for digest authentication ... [Mon Jun 19 16:15:17 2006] [notice] Digest: done [Mon Jun 19 16:15:17 2006] [info] mod_unique_id: using ip addr x.x.x.x [Mon Jun 19 16:15:18 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() [Mon Jun 19 16:15:18 2006] [notice] Apache/2.0.40 (Red Hat Linux) configured -- resuming normal operations [Mon Jun 19 16:15:18 2006] [info] Server built: Sep 4 2002 17:20:34 [Mon Jun 19 16:15:18 2006] [debug] prefork.c(1039): AcceptMutex: sysvsem (default: sysvsem) [Mon Jun 19 16:15:18 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() [Mon Jun 19 16:15:18 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() [Mon Jun 19 16:15:18 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() ERROR: OTRS-CGI-10 Perl: 5.8.0 OS: linux Time: Mon Jun 19 16:15:18 2006 Message: ??? Traceback (31317): Module: Kernel::Output::HTML::Generic::NavigationBar (v1.197) Line: 1851 Module: Kernel::Modules::AgentTicketMailbox::Run (v1.4) Line: 84 Module: Kernel::System::Web::InterfaceAgent::Run (v1.8) Line: 651 Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler (v) Line: 51 Module: (eval) (v1.80) Line: 187 Module: ModPerl::RegistryCooker::run (v1.80) Line: 187 Module: ModPerl::RegistryCooker::default_handler (v1.80) Line: 159 Module: ModPerl::Registry::handler (v1.99) Line: 16 [Mon Jun 19 16:15:19 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() [Mon Jun 19 16:15:19 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() [Mon Jun 19 16:15:19 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() [Mon Jun 19 16:15:19 2006] [debug] mod_headers.c(564): headers: ap_headers_output_filter() ... Mir fällt erst jetzt diese OTRS-Fehlermeldung auf (kommt wohl von apache2-perl-startup.pl). Kann die etwas damit zu tun haben? Udo

Hallo Udo, On Mo, Jun 19, 2006 at 04:20:59 +0200, Udo Giacomozzi wrote: [...]
Syntaxfehler innerhalb dieses <IfModule mod_perl.c> führen dazu, dass der Server nicht startet, also wird es wohl geladen werden.
Ja, sieht so aus. In dem Fall ist Dein Mod_Perl zu alt, was auch die Probleme mit register_cleanup erklärt. Mod_Perl hat leider in der Vergangenheit immer wieder probleme gemacht. Dir wird wohl nichts Anderes übrig bleiben, als Mod_Perl auf Version 2 zu updaten oder OTRS im CGI-Modus zu betreiben. Gruß Henning -- Henning Oschwald ((otrs)) :: OTRS GmbH :: Europaring 4 :: D - 94315 Straubing Fon: +49 (0) 9421 1862 760 :: Fax: +49 (0) 9421 1862 769 http://www.otrs.com/ :: Communication with success!

Hello Henning, Tuesday, June 20, 2006, 8:59:48 AM, you wrote: HO> On Mo, Jun 19, 2006 at 04:20:59 +0200, Udo Giacomozzi wrote: HO> [...]
Syntaxfehler innerhalb dieses <IfModule mod_perl.c> führen dazu, dass der Server nicht startet, also wird es wohl geladen werden.
HO> Ja, sieht so aus. In dem Fall ist Dein Mod_Perl zu alt, was auch die HO> Probleme mit register_cleanup erklärt. Mod_Perl hat leider in der HO> Vergangenheit immer wieder probleme gemacht. Dir wird wohl nichts HO> Anderes übrig bleiben, als Mod_Perl auf Version 2 zu updaten oder OTRS HO> im CGI-Modus zu betreiben. Nur zur Info: Ich habe das Problem gelöst, indem ich OTRS über FastCGI betreibe. Läuft angenehm schnell und war weit weniger problematisch zu konfigurieren.. Udo
participants (3)
-
Christian Schoepplein
-
Henning Oschwald
-
Udo Giacomozzi