GNU/Linux >> Belajar Linux >  >> Linux

Pemecahan Masalah Pelacak Permintaan versi 3 Kesalahan – Mencoba untuk membebaskan skalar yang tidak direferensikan, juru bahasa Perl

Saya telah menggunakan Request Tracker versi 3 cukup lama dan itu bekerja dengan baik. Tapi tiba-tiba server RT mogok dan log kesalahan Apache memiliki pesan kesalahan di bawah ini:

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

Sepertinya banyak skrip perl mengalami masalah dan sebenarnya, perl dan cpan perintah menghasilkan kesalahan yang sama seperti di atas:

# 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

Solusi:

Saya tidak yakin apa yang menyebabkan kesalahan ini, tetapi setelah menghabiskan beberapa waktu di Google, saya mengerti bahwa beberapa modul perl atau sistem operasi mungkin telah diperbarui. Tapi yang menakutkan adalah, saya tidak memperbarui apa pun baru-baru ini. Apa pun itu, saya mulai memecahkan masalah.

Satu-satunya opsi yang saya miliki adalah menginstal Perl dan modulnya lagi.

Instal ulang Perl

Agar lebih aman, saya mengambil cadangan file instalasi Perl lama seperti di bawah ini:

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

Sekarang, saya menginstal ulang Perl menggunakan Yum

#yum reinstall perl

Bagus, sekarang saya bisa menjalankan setidaknya 'perl ' perintah (yang sebelumnya tidak bisa saya lakukan)

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

Instal Perl CPAN

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

Saya menginstal perl-CPAN modul menggunakan yum

#yum install perl-CPAN

Sekarang, cpan juga berfungsi (tanpa kesalahan kesalahan segmentasi)

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

Periksa apakah konfigurasi RT sudah tepat di httpd.conf

Di bawah ini adalah contoh konfigurasi:

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>

Mulai server httpd dan mysqld : 

Ingat, kami belum menginstal modul Perl yang diperlukan untuk memulai RT. Untuk mengetahui modul perl apa saja yang diperlukan, kita akan memulai httpd server dan selesaikan kesalahan yang terjadi di httpd error_log .

Seperti yang diharapkan, 'httpd ' server gagal memulai dan error_log menunjukkan bahwa webmux.pl RT  memerlukan modul di bawah ini:

Catatan: httpd error_log tidak akan memberikan semua informasi modul ini sekaligus, tetapi akan mengisyaratkan modul mana yang saat ini menyebabkan masalah. Anda harus memasang modul satu per satu dan mencoba memulai httpd melayani. Jika gagal, periksa error_log untuk menemukan modul mana yang menjadi penyebabnya (sekarang!). Terus lakukan langkah ini, hingga Anda tidak menemukan pesan kesalahan di error_log .

Di bawah ini adalah beberapa modul yang saya ingat untuk diambil untuk menulis posting ini. Tetapi Anda mungkin harus menginstal lebih banyak….

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

Instal modul Perl melalui CPAN

Misalnya, jika httpd error_log laporan : Tidak dapat menemukan Log/Dispatch.pm @ INC ….maka Anda harus menginstal modul itu melalui CPAN seperti di bawah ini

cpan> install Log::Dispatch

Ganti perintah di atas untuk menginstal modul lain.

Selama instalasi modul Perl, saya menemukan masalah kompatibilitas versi untuk DBD::MySQL modul. httpd error_log memiliki pesan di bawah ini:

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

Kita harus memindahkan 'mysql ' folder di bawah '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD ‘ dan ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘.

Sekarang instal ‘DBD::MySQL ' modul lagi melalui CPAN

cpan> install DBD::MySQL

Terakhir, httpd  server dimulai dan error_log bersih tanpa pesan apapun. Saya mencoba mengakses halaman web RT melalui browser, hanya melihat dialog yang meminta saya untuk menyimpan file 'dmemuat sendiri '. Uff… apa itu? Saya memeriksa httpd error_log dan tidak ada pesan untuk membantu. Yang saya lakukan hanyalah menyimpan file 'unduh' dari browser dan hanya membukanya dengan editor teks. Untungnya, ada beberapa pesan untuk membantu:

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

Saya menginstal 'Apache/Session/MySQL.pm ‘ melalui CPAN seperti di bawah ini

cpan > install Apache::Session::MySQL

Halaman web RT dimuat tanpa Style/CSS

Setelah menginstal semua modul Perl yang diperlukan, saya memulai kembali httpd server dan mencoba mengakses halaman web RT. Halaman dimuat, tetapi tanpa Gaya apa pun seperti di bawah ini:

Untuk memperbaiki masalah ini, Anda harus menginstal modul Perl yang disebut ‘CSS:Squish

cpan > install CSS:Squish

Itu dia. Saya berhasil memuat halaman web RT. Semoga informasi ini dapat membantu seseorang di luar sana.

Anda mungkin juga membaca :RT error :Mailgate undefined server error.


Linux
  1. Kesalahan LibClamAV:mpool_malloc():Mencoba mengalokasikan 8388608 byte

  2. RT:Pelacak Permintaan – Kesalahan:rt-mailgate – Kesalahan server tidak ditentukan – 500 Tidak dapat terhubung atau memverifikasi Sertifikat [Terpecahkan]

  3. Tidak dapat menemukan Test/Harness.pm perl Error:[Solution]

  1. Kesalahan Perl:Modul PERL XML-Parser memerlukan pengembangan expat

  2. Perbaiki kesalahan mulai OpenCA Tidak dapat menemukan versi.pm

  3. Modul PERL DB_File membutuhkan db4-devel [Fix]

  1. Pemecahan Masalah Kesalahan "Tidak Ada Media yang Dapat Di-boot Ditemukan" di VirtualBox

  2. Tidak ada kesalahan file atau direktori saat menjalankan biner

  3. Kesalahan pemasangan PHP5-Curl tidak ada kandidat pemasangan