GNU/Linux >> Znalost Linux >  >> Linux

Odstraňování problémů Chyba nástroje Request Tracker verze 3 – Pokus o uvolnění nereferencovaného skalárního interpretu Perl

Už nějakou dobu používám Request Tracker verze 3 a fungovalo to skvěle. Náhle se však server RT zhroutil a protokol chyb Apache měl níže uvedenou chybovou zprávu:

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

Zdálo se, že mnoho perlových skriptů mělo problémy a ve skutečnosti perl a cpan příkazy měly za následek stejnou chybu jako výše:

# 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

Řešení:

Nebyl jsem si jistý, co by tuto chybu způsobilo, ale po nějaké době strávené na Googlu jsem pochopil, že některé moduly perlu nebo operační systém mohly být aktualizovány. Ale děsivé je, že jsem nedávno nic neaktualizoval. Každopádně jsem začal problém řešit.

Jedinou možností, kterou jsem měl, bylo znovu nainstalovat Perl a jeho moduly.

Přeinstalujte Perl

Pro jistotu jsem si udělal zálohu starých instalačních souborů Perlu, jak je uvedeno níže:

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

Nyní jsem znovu nainstaloval Perl pomocí Yum

#yum reinstall perl

Dobře, teď se mi podařilo spustit alespoň ‘perl ‘ příkaz (což jsem dříve nebyl schopen)

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

Instalovat Perl CPAN

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

Nainstaloval jsem perl-CPAN modulu pomocí yum

#yum install perl-CPAN

Nyní cpan také fungoval (bez chyby segmentace)

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

Zkontrolujte, zda jsou konfigurace RT správné v httpd.conf

Níže je ukázková konfigurace:

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>

Spusťte server httpd a mysqld : 

Pamatujte, že jsme nenainstalovali žádný modul Perl, který je nutný ke spuštění RT. Abychom věděli, jaké moduly perlu jsou potřeba, začneme httpd serveru a vyřešte chyby vyvolané v httpd error_log .

Jak se očekávalo, „httpd “ se nepodařilo spustit server a error_log uvedl, že webmux.pl společnosti RT  vyžadují níže uvedené moduly:

Poznámka: httpd error_log neposkytne všechny tyto informace o modulu najednou, ale napoví, který modul aktuálně způsobuje problém. Budete muset nainstalovat jeden modul po druhém a zkusit spustit httpd servis. Pokud selže, zkontrolujte error_log zjistit, který modul je viníkem (teď!). Pokračujte v tomto kroku, dokud v error_log nenajdete žádné chybové zprávy .

Níže je uvedeno několik modulů, které jsem si zapamatoval zachytit pro psaní tohoto příspěvku. Ale možná budete muset nainstalovat více….

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

Instalovat moduly Perl přes CPAN

Například pokud httpd error_log zprávy : Nelze najít Log/Dispatch.pm @ INC ….pak musíte tento modul nainstalovat pomocí CPAN jak je uvedeno níže

cpan> install Log::Dispatch

Nahraďte výše uvedený příkaz a nainstalujte další moduly.

Během instalace modulu perl jsem narazil na problém s kompatibilitou verzí pro DBD::MySQL modul. httpd error_log měl níže uvedenou zprávu:

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

Musíme přesunout ‘mysql složka ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD ‘ a ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘.

Nyní nainstalujte ‘DBD::MySQL “ modul znovu přes CPAN

cpan> install DBD::MySQL

Nakonec httpd  server spuštěn a error_log byl čistý bez jakýchkoli zpráv. Pokusil jsem se přejít na webovou stránku RT přes prohlížeč, ale zobrazilo se mi pouze dialogové okno s žádostí o uložení souboru ‘dstáhnout ‘. Ufff...co to bylo? Zkontroloval jsem httpd error_log a neobsahovala žádnou zprávu, která by pomohla. Vše, co jsem udělal, bylo uložit soubor „stáhnout“ z prohlížeče a otevřít jej pomocí textového editoru. Naštěstí to mělo nějakou zprávu, která měla pomoci:

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

Nainstaloval jsem ‘Apache/Session/MySQL.pm “ prostřednictvím CPAN jak je uvedeno níže

cpan > install Apache::Session::MySQL

Webová stránka RT načtena bez stylu/CSS

Po instalaci všech potřebných modulů Perl jsem restartovalhttpd server a pokusil se o přístup na webovou stránku RT. Stránka se načetla, ale bez jakéhokoli stylu, jak je uvedeno níže:

Chcete-li problém vyřešit, musíte nainstalovat modul Perl s názvem „CSS:Squish

cpan > install CSS:Squish

A je to. Podařilo se mi úspěšně načíst webovou stránku RT. Doufám, že tyto informace mohou někomu pomoci.

Můžete si také přečíst:Chyba RT :Nedefinovaná chyba serveru Mailgate.


Linux
  1. Nelze najít Test/Harness.pm perl Chyba:[Řešení]

  2. Chyba Perlu:Modul PERL XML-Parser vyžaduje expat-devel

  3. Opravit chybu spuštění OpenCA Nelze najít version.pm

  1. Jak přesunout Sledování požadavků do kontejneru Linux

  2. Modul PERL DB_File vyžaduje db4-devel [Opravit]

  3. Chyba ldconfig:není symbolický odkaz

  1. Chyba LibClamAV:mpool_malloc():Pokus o přidělení 8388608 bajtů

  2. RT:Request Tracker – Chyba:rt-mailgate – Nedefinovaná chyba serveru – 500 Nelze se připojit nebo ověřit certifikát [Vyřešeno]

  3. Žádná taková chyba souboru nebo adresáře při spouštění binárního souboru