GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fehlerbehebung Request Tracker Version 3 Fehler – Versuchen Sie, einen nicht referenzierten Skalar-Perl-Interpreter freizugeben

Ich benutze Request Tracker Version 3 seit geraumer Zeit und es hat großartig funktioniert. Aber plötzlich stürzte der RT-Server ab und das Apache-Fehlerprotokoll hatte die folgende Fehlermeldung:

Attempt to free unreferenced scalar: SV 0x811ef70, Perl interpreter: 0x7f5a010 at
 /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6.
 Segmentation fault

Es schien, als hätten viele der Perl-Skripte Probleme und tatsächlich perl und cpan Befehle ergaben den gleichen Fehler wie oben:

# cpan
 Attempt to free unreferenced scalar: SV 0x811ef70, Perl interpreter: 0x7f5a010 at
 /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6.
 Segmentation fault

Lösung:

Ich war mir nicht sicher, was diesen Fehler verursacht hätte, aber nachdem ich mich einige Zeit mit Google beschäftigt hatte, wurde mir klar, dass einige der Perl-Module oder das Betriebssystem möglicherweise aktualisiert wurden. Aber das Beängstigende ist, dass ich in letzter Zeit nichts aktualisiert habe. Wie auch immer, ich habe begonnen, das Problem zu beheben.

Die einzige Option, die ich hatte, war, Perl und seine Module erneut zu installieren.

Perl neu installieren

Sicherheitshalber habe ich wie folgt eine Sicherungskopie der alten Perl-Installationsdateien erstellt:

#mv /usr/lib/perl5 /usr/lib/perl5.bak
#mv /usr/lib64/perl5 /usr/lib64/perl5.bak

Jetzt habe ich Perl mit Yum

neu installiert
#yum reinstall perl

Gut, jetzt konnte ich zumindest das 'perl ausführen ‘ Befehl (was ich früher nicht konnte)

# perl -v
This is perl, v5.8.8 built for x86_64-linux-thread-multi

Installieren Sie Perl CPAN

# perl -MCPAN -e shell
Can't locate CPAN.pm in @INC (@INC contains:

Ich habe perl-CPAN installiert Modul mit yum

#yum install perl-CPAN

Jetzt funktionierte auch der cpan (ohne den Segmentierungsfehler)

# cpan
cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')
cpan>

Überprüfen Sie, ob die RT-Konfigurationen in httpd.conf korrekt sind

Unten ist die Beispielkonfiguration:

NameVirtualHost rt_server:443
<VirtualHost rt_server:443>
ServerName rt_server_in
DocumentRoot /opt/rt3/share/html
AddDefaultCharset UTF-8
PerlModule Apache::DBI
PerlRequire "/opt/rt3/bin/webmux.pl"
<Location /NoAuth/images>
SetHandler default
</Location>
<Location />
SetHandler perl-script
PerlResponseHandler RT::Mason
</Location>
ErrorLog logs/error_log
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/rt_server_cert.pem
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/rt_server_key.pem
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>

httpd- und mysqld-Server starten: 

Denken Sie daran, dass wir kein Perl-Modul installiert haben, das zum Starten von RT erforderlich ist. Um zu wissen, welche Perl-Module erforderlich sind, starten wir httpd server und lösen Sie die Fehler, die in httpd error_log geworfen werden .

Wie erwartet ist die Datei „httpd ‘ Server konnte nicht gestartet werden und das error_log angegeben, dass webmux.pl von RT  erfordern die folgenden Module:

Hinweis: Das httpd error_log wird nicht alle diese Modulinformationen auf einmal bereitstellen, aber es wird darauf hingewiesen, welches Modul derzeit das Problem verursacht. Sie müssen jeweils ein Modul installieren und versuchen, httpd zu starten Service. Wenn dies fehlschlägt, überprüfen Sie error_log um herauszufinden, welches Modul der Übeltäter ist (jetzt!). Führen Sie diesen Schritt so lange aus, bis Sie keine Fehlermeldungen mehr im error_log finden .

Unten sind die wenigen Module, an die ich mich erinnert habe, um diesen Beitrag zu schreiben. Aber Sie müssen möglicherweise mehr installieren….

Apache2/Response.pm
Can't locate Log::Dispatch
Params::Validate.pm
Can't locate Module::Implementation
Attribute::Handlers
Can't locate File::ShareDir
Can't locate Locale::Maketext::Lexicon
[error] Base class package "Locale::Maketext::Fuzzy" is empty.\n (Perhaps
you need to 'use' the module which defines that package first.)\n at /opt/rt3/bin/../lib/RT/I18N.pm line
62.\nBEGIN failed--compilation aborted at /opt/rt3/bin/../lib/RT/I18N.pm line 62.\nCompilation failed in
require at /opt/rt3/bin/../lib/RT.pm line 152.\nBEGIN failed--compilation aborted at
/opt/rt3/bin/webmux.pl line 102.\nCompilation failed in require at (eval 2) line 1.\n
Can't locate MIME::Entity
Can't locate DBIx::SearchBuilder
Can't locate Email::Address
Can't locate UNIVERSAL::require
Text::Template
Can't locate File::Slurp
HTML::Element
HTML::FormatText
Font::Metrics::Courier
Can't locate Text::Wrapper
Time::ParseDate
Test::EOL
HTML::Scrubber
Test/Memory/Cycle.pm
Test/CPAN/Meta.pm
Base class package "HTML::Mason::Request" is empty.\n
install_driver(mysql) failed: Can't locate DBD/mysql.pm

Perl-Module über CPAN installieren

Wenn zum Beispiel httpd error_log Berichte: Kann Log/Dispatch.pm @ INC nicht finden ….dann müssen Sie dieses Modul über CPAN installieren wie unten

cpan> install Log::Dispatch

Ersetzen Sie den obigen Befehl, um andere Module zu installieren.

Während der Installation des Perl-Moduls stieß ich auf ein Versionskompatibilitätsproblem für DBD::MySQL Modul. Das httpd error_log hatte die folgende Nachricht:

install_driver(mysql) failed: DBD::mysql object version 4.013 does not match bootstrap parameter 4.031

Wir müssen „mysql“ verschieben ‘-Ordner unter ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD ‘ und ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘.

Installieren Sie nun ‘DBD::MySQL ‘-Modul erneut über CPAN

cpan> install DBD::MySQL

Schließlich der httpd  Server gestartet und das error_log war sauber ohne irgendwelche Nachrichten. Ich habe versucht, über den Browser auf die RT-Webseite zuzugreifen, aber es wurde nur ein Dialogfeld angezeigt, in dem ich aufgefordert wurde, eine Datei zu speichern, die ownload ist ‘. Uff…was war das? Ich habe das httpd error_log überprüft und es gab keine hilfreiche Nachricht. Alles, was ich getan habe, war, die Datei „Download“ aus dem Browser zu speichern und sie einfach mit einem Texteditor zu öffnen. Glücklicherweise hatte es eine hilfreiche Nachricht:

Can't located Apache/Session/MySQL.pm @ INC....

Ich habe „Apache/Session/MySQL.pm installiert ‘ über CPAN wie unten

cpan > install Apache::Session::MySQL

RT-Webseite ohne Style/CSS geladen

Nachdem ich alle notwendigen Perl-Module installiert hatte, startete ich den httpd neu Server und versuchte, auf die RT-Webseite zuzugreifen. Die Seite wurde geladen, aber ohne Stil wie unten:

Um das Problem zu beheben, müssen Sie ein Perl-Modul namens „CSS:Squish installieren ‘

cpan > install CSS:Squish

Das ist es. Ich konnte die RT-Webseite erfolgreich laden. Ich hoffe, diese Informationen könnten jemandem da draußen helfen.

Sie könnten auch lesen:RT error :Mailgate undefined server error.


Linux
  1. Fehlerbehebung „Kein bootfähiges Medium gefunden“-Fehler in VirtualBox

  2. Fehlerbehebung „Inakzeptables TLS-Zertifikat“-Fehler in Linux

  3. So verschieben Sie Request Tracker in einen Linux-Container

  4. LibClamAV-Fehler:mpool_malloc():Versuch, 8388608 Bytes zuzuweisen

  5. RT:Request Tracker – Fehler:rt-mailgate – Undefinierter Serverfehler – 500 Verbindung oder Überprüfung des Zertifikats nicht möglich [Gelöst]

Virtualbox-Fehler – Fehler beim Laden des Ring-0-Moduls VBoxEhciR0.r0

Behebung des Nginx-Fehlers:413 Request Entity Too Large

Fehlerbehebung „Inakzeptables TLS-Zertifikat“-Fehler in Linux

Fehlerbehebung „Kein bootfähiges Medium gefunden“-Fehler in VirtualBox

Fehlerbehebung „Bash:Command Not Found“-Fehler in Linux

PHP5-Curl-Installationsfehler kein Installationskandidat