GNU/Linux >> Linux の 問題 >  >> Linux

Request Trackerバージョン3エラーのトラブルシューティング–参照されていないスカラー、Perlインタープリターを解放しようとしました

私はRequestTrackerバージョン3をかなり前から使用していて、うまく機能しました。しかし、突然RTサーバーがクラッシュし、Apacheエラーログに次のエラーメッセージが表示されました。

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

多くのperlスクリプトに問題があるように見えましたが、実際には perl およびcpan コマンドの結果、上記と同じエラーが発生しました:

# 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

解決策:

このエラーの原因はわかりませんでしたが、Googleでしばらく過ごした後、一部のPerlモジュールまたはオペレーティングシステムが更新された可能性があることを理解しました。でも怖いのは、最近何も更新しなかったということです。いずれにせよ、私は問題のトラブルシューティングを開始しました。

私が持っていた唯一のオプションは、Perlとそのモジュールを再インストールすることでした。

Perlを再インストール

安全のために、以下のように古いPerlインストールファイルのバックアップを取りました。

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

今、私はYumを使用してPerlを再インストールしました

#yum reinstall perl

これで、少なくとも「 perl」を実行できました。 ‘コマンド(以前はできませんでした)

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

PerlCPANをインストール

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

perl-CPANをインストールしました yumを使用するモジュール

#yum install perl-CPAN

これで、cpanも機能しました(セグメンテーション違反エラーなしで)

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

RT構成がhttpd.confで適切かどうかを確認します

以下は構成例です:

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およびmysqldサーバーを起動します:

RTの開始に必要なPerlモジュールはインストールされていないことを忘れないでください。必要なperlモジュールを知るために、 httpdを開始します。 サーバーを作成し、httpd error_logでスローされたエラーを解決します 。

予想どおり、「 httpd ‘サーバーの起動に失敗し、 error_log RTのwebmux.pl 以下のモジュールが必要です:

注: httpd error_log これらすべてのモジュール情報を一度に提供するわけではありませんが、現在問題を引き起こしているモジュールを示唆します。一度に1つのモジュールをインストールして、 httpdを起動してみてください。 サービス。失敗した場合は、 error_logを確認してください どのモジュールが原因であるかを確認します(今すぐ!)。 error_log にエラーメッセージが表示されなくなるまで、この手順を繰り返します。 。

以下は、この投稿を書くためにキャプチャしたことを覚えているいくつかのモジュールです。ただし、さらにインストールする必要があるかもしれません…。

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

CPAN経由でPerlモジュールをインストール

たとえば、httpd error_log レポート: Log / Dispatch.pm@INCが見つかりません …。次に、 CPANを介してそのモジュールをインストールする必要があります 以下のように

cpan> install Log::Dispatch

上記のコマンドを置き換えて、他のモジュールをインストールします。

perlモジュールのインストール中に、 DBD ::MySQLのバージョン互換性の問題が発生しました。 モジュール。 httpd error_log 以下のメッセージがありました:

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

mysql」を移動する必要があります ‘ /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD の下の‘フォルダ ‘および‘ /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘。

次に、「 DBD ::MySQL」をインストールします ‘モジュールを CPAN経由で再度

cpan> install DBD::MySQL

最後に、 httpd サーバーが起動し、 error_log メッセージなしできれいだった。ブラウザからRTウェブページにアクセスしてみましたが、ファイル「d ownload」を保存するように求めるダイアログのみが表示されました。 ‘。うーん…なに? httpd error_logを確認しました 役立つメッセージはありませんでした。私がしたのは、ブラウザから「ダウンロード」したファイルを保存し、テキストエディタで開くだけでした。幸いなことに、役立つメッセージがいくつかありました。

Can't located Apache/Session/MySQL.pm @ INC....
が見つかりません

Apache/ Session / MySQL.pm」をインストールしました ‘via CPAN 以下のように

cpan > install Apache::Session::MySQL

RTWebページがStyle/CSSなしで読み込まれました

必要なすべてのPerlモジュールをインストールした後、 httpdを再起動しました。 サーバーを使用して、RTWebページにアクセスしてみました。ページが読み込まれましたが、以下のようなスタイルはありません:

この問題を解決するには、「 CSS:Squish」というPerlモジュールをインストールする必要があります。 ‘

cpan > install CSS:Squish

それでおしまい。 RTWebページを正常にロードできました。この情報が誰かに役立つことを願っています。

次のようにも読むことができます:RTエラー:メールゲートの未定義サーバーエラー。


Linux
  1. Linuxでの「受け入れられないTLS証明書」エラーのトラブルシューティング

  2. RequestTrackerをLinuxコンテナに移動する方法

  3. RT:Request Tracker –エラー:rt-mailgate –未定義のサーバーエラー–500証明書を接続または検証できません[解決済み]

  1. VirtualBoxで「起動可能なメディアが見つかりません」エラーのトラブルシューティング

  2. Test / Harness.pm perlエラーが見つかりません:[解決策]

  3. PHP5-Curl インストールエラー インストール候補なし

  1. LibClamAVエラー:mpool_malloc():8388608バイトを割り当てようとしました

  2. Perlエラー:PERLXML-パーサーモジュールにはexpat-develが必要です

  3. OpenCA開始エラーを修正しますversion.pmが見つかりません