Não tem idéia de como solucionar problemas de email do Bugzilla

3

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).

    
por Bratchley 12.06.2013 / 19:32

2 respostas

7

Quando fico preso assim, costumo usar strace para procurar pistas.

Aqui está um guia prático para fazer isso

ps -ef |grep apache |grep -v grep |awk '{print $2}' | while read pid ; do sudo strace -p$pid -o /tmp/strace.$pid & done

Ele obtém todos os apache pids e anexa um strace a cada um deles, gravando cada saída em um arquivo diferente em / tmp /

Depois de fazer isso, reproduza o erro e, em seguida, mate todos os processos strace:

sudo killall strace

Procure o (s) maior (s) arquivo (s) gerado (s) pelo strace, eles provavelmente serão o strace do (s) processo (s) do apache em questão:

ls -lSrh /tmp/strace.*

Veja se há alguma pista (as linhas que contêm ENO ou ERR são especialmente interessantes).

    
por 12.06.2013 / 23:46
1

Aqui estão alguns itens adicionais para experimentar.

# 1 - aumenta o log do Apache

Você pode aumentar o nível de registro no Apache? Como segue: LogLevel info . Os detalhes estão aqui .

# 2 - / var / log / maillog

Existe alguma mensagem adicional que aparece em /var/log/maillog quando o Bugzilla tenta enviar e-mail?

# 3 - enviando e-mail

Você pode enviar e-mails da caixa? Eu tentaria na linha de comando. Você deve poder usar o comando mail para construir um email.

    
por 18.06.2013 / 04:46