Bugzilla 4.2.4をインストールしましたが、今すぐEメールを送信できません。約1ヶ月前までは何の問題もなくメールを送っていました(約3ヶ月前までは問題ありませんでした)。誰かがコメント、新しいバグ、または電子メールを生成する必要がある他のアイテムを投稿している場合は、[送信]をクリックすると次のページが永久にタイムアウトしますが、最終的には[内部サーバーエラー]が返されます。
彼らがしようとしているすべて(エラーの生成、ファイルの添付、コメントの投稿など)が成功するため、問題は電子メールの生成にのみあるようです。フォローする公式ガイドトラブルシューティングの提案を作成しましたが、errorlog
出力は非常にあいまいです。
---------------------------------------------------------------------------
[11817] 06/03/13 13:02:02 global/code-error.html.tmpl mail_send_error 127.0.0.1
[11817] $env(ANSI_COLORS_DISABLED) = 1;
[11817] $env(HOME) = "/root";
[11817] $env(LOGNAME) = "root";
[11817] $env(OLDPWD) = "/root";
[11817] $env(PATH) = "/usr/lib:/usr/sbin:/usr/ucblib";
[11817] $env(PWD) = "/var/www/bugzilla";
[11817] $env(SHELL) = "/bin/sh";
[11817] $env(SHLVL) = 1;
[11817] $env(USER) = "root";
[11817] $env(_) = "/var/www/bugzilla/whine.pl";
---------------------------------------------------------------------------
[23266] 06/03/13 13:17:02 global/code-error.html.tmpl mail_send_error 127.0.0.1
[23266] $env(ANSI_COLORS_DISABLED) = 1;
[23266] $env(HOME) = "/root";
[23266] $env(LOGNAME) = "root";
[23266] $env(OLDPWD) = "/root";
[23266] $env(PATH) = "/usr/lib:/usr/sbin:/usr/ucblib";
[23266] $env(PWD) = "/var/www/bugzilla";
[23266] $env(SHELL) = "/bin/sh";
[23266] $env(SHLVL) = 1;
[23266] $env(USER) = "root";
[23266] $env(_) = "/var/www/bugzilla/whine.pl";
トラブルシューティングプロセス全体でSELinuxを許可モードに切り替えて、SELinuxが問題ではないことを確認し、Apache httpdを介して呼び出すときに私の個人的な電子メールアカウントに送信する簡単なPerlスクリプトを作成しました。このエラーについては、httpderror_log
についてあまり興味深い点はありません。
[Wed Jun 12 13:21:20 2013] [warn] [client 152.xx.99.118] Timeout waiting for output from CGI script /var/www/bugzilla/post_bug.cgi, referer: http://bugs.xxx.edu/enter_bug.cgi?product=Banner%20INB
[Wed Jun 12 13:21:20 2013] [error] [client 152.xx.99.118] Premature end of script headers: post_bug.cgi, referer: http://bugs.xxx.edu/enter_bug.cgi?product=Banner%20INB
基本的に、私はそれをどこで得ることができるのかわかりませんが、Bugzillaが私に詳細なエラーメッセージを提供する方法を知りません。管理上何も変更しておらず、プロセッサの時間と利用可能な記憶領域が十分であることを知っていますが、なぜ突然中断したのかわかりません。
これは、Perl 5.8.8がインストールされているRHEL5システムにあります。
答え1
このような困難を経験するとき、私はしばしば次のような方法を使用します。ストレス手がかりを見つけてください。
これを行う便利なシングルライナーは次のとおりです。
ps -ef |grep apache |grep -v grep |awk '{print $2}' | while read pid ; do sudo strace -p$pid -o /tmp/strace.$pid & done
すべてのApache PIDを取得し、各PIDにstraceを追加して出力を別のファイルに書き込みます。/tmp/
これが完了すると、エラーが再現され、すべてのstraceプロセスが終了します。
sudo killall strace
straceによって生成された最大のファイルを見つけます。関連するApacheプロセスのstraceである可能性が高いです。
ls -lSrh /tmp/strace.*
手がかりがあることを確認してください(ENOまたはERRを含む行が特に興味深い)。
答え2
試すことができるいくつかの追加項目は次のとおりです。
#1 - Apacheロギングの増加
Apacheでロギングレベルを上げることはできますか?次のようになりますLogLevel info
。詳しくはこちら。
#2 - /var/log/maillog
/var/log/maillog
Bugzillaが電子メールを送信しようとすると、他のメッセージが表示されますか?
#3 - メールを送信
メールボックスからメールを送信できますか?コマンドラインで試してみましょう。このmail
コマンドを使用して電子メールを作成できる必要があります。