scieloorg / PC-Programs

SciELO PC Programs
7 stars 24 forks source link

Acesso ilegal a variável nunca inicializada pelo sistema de envio de e-mails #3308

Closed joffilyfe closed 4 years ago

joffilyfe commented 4 years ago

Descrição do problema

Durante a execução do XC server é possível que o sistema de envio de e-mail esteja desabilitado. Quando o programa tenta instanciar a classe SMTP um erro será lançado e capturado como esperado, contudo o código tenta acessar uma variável que nunca foi instanciada, o trecho de código a baixo demonstra isto, especificamente no bloco finally:

https://github.com/scieloorg/PC-Programs/blob/09f1b27862b21cb532e64f427b426ed90814d979/src/scielo/bin/xml/prodtools/utils/email_service.py#L85-L102

Passos para reproduzir o problema

  1. Configure o XC server;
  2. Habilite o envio de e-mail;
  3. Garanta que não exista programas de SMTP na instância de testes;
  4. Gere uma exceção de execução do XC (por exemplo: configure a pasta errada para as bases MST);
  5. Execute o XC com qualquer pacote SPF válido;
  6. Observe que o programa tentará enviar o e-mail informando do erro relacionado a base MST mas cairá na exceção e tentará fechar a conexão nunca aberta;
  7. O programa será encerrado com um grande traceback;

Comportamento esperado

Espera-se que os logs informem apenas que o erro relacionado a base MST e que também informem que não foi possível enviar o e-mail de erro, se e somente se, a execução tenha utilizado --loglevel DEBUG.

Screenshots ou vídeos

N/A

Anexos

N/A

Ambiente utilizado