Sou um n00b completo quando se trata do Bugzilla (e aplicações complexas de perl em geral), portanto não assuma nenhum nível de conhecimento nessa área. Se eu não tiver documentado isso neste post, suponha que eu não tenha feito isso.
Basicamente eu tenho uma instalação do Bugzilla 4.2.4 que agora não é capaz de enviar e-mail. Foi capaz de enviar e-mails sem problemas até cerca de um mês atrás (após cerca de três meses sem edição). Se alguém postar um comentário, um novo bug ou qualquer outra coisa que deva gerar um email, depois que ele clicar em enviar, a página a seguir leva uma eternidade para expirar, mas acaba voltando com "Internal Server Error".
O que quer que eles estejam tentando fazer com sucesso (bug é criado, arquivo anexado, comentário postado, etc), então parece que o problema é apenas gerar o email. Seguindo o guia oficial para solução de problemas, criei qualquer errorlog
, mas a saída é nebulosa na melhor das hipóteses:
---------------------------------------------------------------------------
[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";
Eu verifiquei que o SELinux não é o problema trocando-o para Permissivo por toda a duração desta solução de problemas, e criei scripts perl simples que enviam minha conta de e-mail pessoal quando invocada pelo httpd Apache. O error_log
do httpd não tem nada muito interessante para este erro:
[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
Basicamente, não tenho certeza de onde tirá-lo daqui, não sei como fazer com que o Bugzilla me forneça mais informações descritivas sobre erros. Eu sei que administrativamente eu não mudei nada, há muito tempo de processador e espaço de armazenamento disponível, então eu não sei por que de repente quebrou.
Se isso faz diferença, isso é em uma máquina RHEL5 com Perl 5.8.8
EDITAR:
Votar para fechar? É muito bem no assunto, a menos que você imagine que muitos administradores do Windows implantam o Bugzilla ou todos aqueles aplicativos web grandes do Perl. O Bugzilla é tanto uma questão "Unix" quanto perguntar como exportar diretórios através do NFS (ambos são serviços de rede em nível de aplicativo cuja implementação é amplamente concentrada em ambientes Unix).