GNU/Linux >> Linux Esercitazione >  >> Linux

Errore nella versione 3 di Request Tracker per la risoluzione dei problemi – Tentativo di liberare l'interprete Perl scalare senza riferimenti

Uso Request Tracker versione 3 da un po' di tempo e ha funzionato benissimo. Ma all'improvviso il server RT si è bloccato e il registro degli errori di Apache aveva il seguente messaggio di errore:

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

Sembrava che molti degli script perl avessero problemi e in effetti il ​​perl e pan i comandi hanno prodotto lo stesso errore di cui sopra:

# 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

Soluzione:

Non ero sicuro di cosa avrebbe causato questo errore, ma dopo aver trascorso un po' di tempo su Google, ho capito che alcuni dei moduli Perl o del sistema operativo potrebbero essere stati aggiornati. Ma la cosa spaventosa è che non ho aggiornato nulla di recente. Comunque, ho iniziato a risolvere il problema.

L'unica opzione che avevo era installare nuovamente Perl e i suoi moduli.

Reinstalla Perl

Per essere più sicuro, ho fatto un backup dei vecchi file di installazione di Perl come di seguito:

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

Ora ho reinstallato Perl usando Yum

#yum reinstall perl

Bene, ora sono stato in grado di eseguire almeno il 'perl ' comando (cosa che non ero in grado di fare prima)

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

Installa Perl CPAN

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

Ho installato perl-CPAN modulo utilizzando yum

#yum install perl-CPAN

Ora, anche il cpan ha funzionato (senza l'errore di segmentation fault)

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

Verifica se le configurazioni RT sono corrette in httpd.conf

Di seguito è riportata la configurazione di esempio:

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>

Avvia il server httpd e mysqld : 

Ricorda, non abbiamo installato alcun modulo Perl necessario per avviare RT. Per sapere quali sono i moduli Perl richiesti, inizieremo httpd server e risolvere gli errori generati in httpd error_log .

Come previsto, "httpd ' il server non si è avviato e il error_log ha indicato che webmux.pl di RT  richiedono i moduli seguenti:

Nota: Il httpd registro_errori non fornirà tutte queste informazioni sul modulo contemporaneamente, ma suggerirà quale modulo sta attualmente causando il problema. Dovrai installare un modulo alla volta e provare ad avviare httpd servizio. Se fallisce, controlla error_log per scoprire quale modulo è il colpevole (ora!). Continua a eseguire questo passaggio finché non trovi messaggi di errore in error_log .

Di seguito sono riportati i pochi moduli che mi sono ricordato di acquisire per aver scritto questo post. Ma potresti doverne installare di più….

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

Installa moduli Perl tramite CPAN

Ad esempio, se httpd error_log rapporti : Impossibile individuare Log/Dispatch.pm @ INC ….quindi devi installare quel modulo tramite CPAN come di seguito

cpan> install Log::Dispatch

Sostituisci il comando precedente per installare altri moduli.

Durante l'installazione del modulo perl, ho riscontrato un problema di compatibilità della versione per DBD::MySQL modulo. Il httpd registro_errori aveva il seguente messaggio:

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

Dobbiamo spostare "mysql ' cartella in '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD ' e '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI '.

Ora installa "DBD::MySQL ' di nuovo tramite CPAN

cpan> install DBD::MySQL

Infine, il httpd  server avviato e error_log era pulito senza alcun messaggio. Ho provato ad accedere alla pagina web di RT tramite browser, per vedere solo una finestra di dialogo che mi chiedeva di salvare un file "dscarica '. Uff... cos'era quello? Ho controllato il httpd error_log e non aveva alcun messaggio di aiuto. Tutto quello che ho fatto è stato salvare il file "download" dal browser e aprirlo con un editor di testo. Fortunatamente, aveva qualche messaggio di aiuto:

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

Ho installato "Apache/Session/MySQL.pm ' tramite CPAN come di seguito

cpan > install Apache::Session::MySQL

Pagina web RT caricata senza Style/CSS

Dopo aver installato tutti i moduli Perl necessari, ho riavviato httpd server e ho provato ad accedere alla pagina Web di RT. La pagina è stata caricata, ma senza alcuno Stile come di seguito:

Per risolvere il problema, devi installare un modulo Perl chiamato "CSS:Squish '

cpan > install CSS:Squish

Questo è tutto. Sono stato in grado di caricare correttamente la pagina Web RT. Spero che queste informazioni possano aiutare qualcuno là fuori.

Potresti anche leggere:Errore RT :errore del server non definito di Mailgate.


Linux
  1. Risoluzione dei problemi di errore "Nessun supporto di avvio trovato" in VirtualBox

  2. Risoluzione dei problemi "Certificato TLS inaccettabile" Errore in Linux

  3. Come spostare Request Tracker in un container Linux

  4. Nessun errore di file o directory durante l'esecuzione di un file binario

  5. Errore ldconfig:non è un collegamento simbolico

Errore Virtualbox – Impossibile caricare il modulo ring-0 VBoxEhciR0.r0

Correzione dell'errore Nginx:413 Entità richiesta troppo grande

Risoluzione dei problemi "Certificato TLS inaccettabile" Errore in Linux

Risoluzione dei problemi di errore "Nessun supporto di avvio trovato" in VirtualBox

Risoluzione dei problemi di errore "Bash:comando non trovato" in Linux

errore di aggiornamento apt con Ubuntu 18.10 versione cosmica