pengovbr / mod-sei-pen

Módulo de Integração ao Tramita.GOV.BR
30 stars 23 forks source link

Download de todas as partes de documentos acima do tamanho máximo aceito pelo sistema #155

Closed guilhermeadc closed 3 months ago

guilhermeadc commented 2 years ago

Descreva o erro Módulo aparentemente está realizando a validação do tamanho do documento somente após o final do download, não recusando-o antecipadamente através da análise dos metadados. Isto faz com que seja realizado o download de arquivos de forma desnecessária.


Para reproduzir Passos para reproduzir o comportamento:

  1. Configure uma das instâncias do sistema para aceitar apenas documentos abaixo de 20 Mbs.
  2. Utilizando outra instância do sistema, envio um processo contendo 1 documento acima de 20 Mbs.
  3. Veja o erro que ao receber o processo, o sistema realiza o download de todo o documento antes de rejeitá-lo devido ao limite aceito pelo destinatário.

Comportamento esperado Esperado que o trâmite seja rejeitado imediatamente após análise dos metadados em que um determinado documento ultrapasse os limites estabelecidos pelo administrador.


Screenshots Nenhum


Contexto da falha (Por favor, complete a seguinte informação):

Informações adicionais Adicione qualquer outro contexto sobre o problema aqui.


Log de Erros

[2m2022-05-18 09:43:02.074  INFO 11 --- [nio-8081-exec-5] b.g.m.p.b.a.s.w.v.e.TramiteEndpointV3    : sistema : Sistema SEI - Ministério da Fazenda, exceto vinculadas. recusarTramite: parametros = RecusaDeTramite [idt=463443, justificativa=O tamanho máximo geral permitido para documentos externos é 300Mb., motivo=99]
09:43:02.074
2022-05-18 09:43:02.074  INFO 11 --- [nio-8081-exec-5] b.g.m.p.b.a.s.w.v.e.TramiteEndpointV3    : sistema : Sistema SEI - Ministério da Fazenda, exceto vinculadas. recusarTramite: parametros = RecusaDeTramite [idt=463443, justificativa=O tamanho máximo geral permitido para documentos externos é 300Mb., motivo=99]
higodf commented 1 year ago

Não foi identificado um PR ativo para validação.

mrglaydson commented 1 year ago

tarefa já encontra-se feita

guilhermeadc commented 1 year ago

Prezado,

Houve um entendimento errado sobre o que deveria ser feito. O vídeo anterior alega que nenhuma implementaçâo deverá ser feita pois o comportamento descrito já é feito pelo módulo, o que não está correto.

É de conhecimento que o sistema valida o tamanho do documento durante o recebimento e rejeita o processo caso ultrapasse, mas não é isto que se pede nesta demanda. O problema é que o sistema de destino está baixando todo o documento, para somente ao final, validar e rejeitar o processo devido a existência de um documento grande. O que se pede é que esta validação seja feita antes de baixar os documentos, avaliando o tamanho dos arquivos a partir das informações presentes nos metadados.

Abaixo segue uma evidência de testes onde demonstra que um arquivo de 20MBs foi baixado no sistema destinatário e, somente depois, o erro foi lançado e o processo rejeitado, consumindo banda de rede e tempo desnecessário.

[root@8d91d94c08fc mod-pen]# php MonitoramentoTarefasPEN.php > /debug.log &
[1] 1228
[root@8d91d94c08fc mod-pen]# Xdebug: [Step Debug] Could not connect to debugging client. Tried: host.docker.internal:9003 (fallback through xdebug.client_host/xdebug.client_port) :-(

[root@8d91d94c08fc mod-pen]# 
[root@8d91d94c08fc mod-pen]# tail -f /debug.log 
00001 - [23/04/2023 23:55:37] (1228) [MONITORAMENTO]  Iniciando serviço de monitoramento de pendências de trâmites de processos
00002 - [23/04/2023 23:55:37] (1228) [MONITORAMENTO]      Recuperando lista de pendências do PEN
00003 - [23/04/2023 23:55:42] (1228) [MONITORAMENTO]          1 pendências de trâmites identificadas
00004 - [23/04/2023 23:55:42] (1228) [MONITORAMENTO]              >>> Enviando pendência 104386 (status 2) para fila de processamento
00005 - [23/04/2023 23:55:42]    Processando recebimento de protocolo [receberProcedimento] com IDT 104386
00006 - [23/04/2023 23:55:42] (1228) [PROCESSAMENTO]      Solicitando metadados do trâmite 104386
00007 - [23/04/2023 23:55:45] (1228) [PROCESSAMENTO]          1 componentes digitais identificados no protocolo 99990.000016/2023-79 [+3,76s]
00008 - [23/04/2023 23:55:45] (1228) [PROCESSAMENTO]              Baixando componente digital 1 particionado [+0s]
00009 - [23/04/2023 23:55:51] (1228) [PROCESSAMENTO]                  Recuperado parte 1 de 4 do componente digital 1 (5120 kbs). Taxa de transferência: 906,19 kb/s [+5,65s]
00010 - [23/04/2023 23:55:54] (1228) [PROCESSAMENTO]                  Recuperado parte 2 de 4 do componente digital 1 (5120 kbs). Taxa de transferência: 1753,42 kb/s [+2,93s]
00011 - [23/04/2023 23:55:56] (1228) [PROCESSAMENTO]                  Recuperado parte 3 de 4 do componente digital 1 (5120 kbs). Taxa de transferência: 2295,96 kb/s [+2,24s]
00012 - [23/04/2023 23:55:57] (1228) [PROCESSAMENTO]                  Recuperado parte 4 de 4 do componente digital 1 (2207,58 kbs). Taxa de transferência: 2164,29 kb/s [+1,03s]
00013 - [23/04/2023 23:55:57] (1228) [PROCESSAMENTO]                  Validando integridade de componente digital 1 [+0s]
00014 - [23/04/2023 23:55:57] (1228) [PROCESSAMENTO]                  Tempo total de validação de integridade: 0,12s (17567,58 kb/s) [+0,12s]
00015 - [23/04/2023 23:55:57] (1228) [PROCESSAMENTO]              Inicializado transação para recebimento do trâmite 104386 do protocolo 99990.000016/2023-79 [+0s]
00016 - [23/04/2023 23:55:57] (1228) [PROCESSAMENTO]      Sincronizando o recebimento de processos concorrentes... [+0s]
00017 - [23/04/2023 23:55:57] (1228) [PROCESSAMENTO]      Liberando processo concorrente de recebimento de processo ... [+0s]
00018 - [23/04/2023 23:55:58] (1228) [PROCESSAMENTO]          Persistindo/atualizando dados do processo com NRE 0000018001822023 [+0,3s]
00019 - [23/04/2023 23:55:58] (1228) [PROCESSAMENTO]          Quantidade de documentos para recebimento: 1 [+0,35s]
00020 - [23/04/2023 23:55:58] (1228) [PROCESSAMENTO]          Registrando trâmite externo do processo [+0,15s]
00021 - [23/04/2023 23:55:59] (1228) [PROCESSAMENTO]          Iniciando o armazenamento dos componentes digitais pendentes [+0,62s]
00022 - [23/04/2023 23:55:59] (1228) [PROCESSAMENTO]  Validação:
O tamanho máximo geral permitido para documentos externos é 5Mb.

Trilha de Processamento:
#0 /opt/sei/web/rn/DocumentoRN.php(668): InfraRN->__call('alterarRN0004In...', Array)
#1 /opt/sei/web/modulos/pen/rn/ReceberComponenteDigitalRN.php(377): DocumentoRN->alterarRN0004(Object(DocumentoDTO))
#2 /opt/sei/web/modulos/pen/rn/ReceberComponenteDigitalRN.php(99): ReceberComponenteDigitalRN->cadastrarAnexoDoDocumento(Object(AnexoDTO))
#3 /opt/sei/web/modulos/pen/rn/ReceberProcedimentoRN.php(573): ReceberComponenteDigitalRN->atribuirComponentesDigitaisAoDocumento(120, Array)
#4 /opt/sei/web/modulos/pen/rn/ReceberProcedimentoRN.php(181): ReceberProcedimentoRN->atribuirComponentesDigitaisAosDocumentos(Object(ProcedimentoDTO), '000001800182202...', 104386, Array, Object(stdClass))
#5 /opt/infra/infra_php/InfraRN.php(140): ReceberProcedimentoRN->receberProcedimentoInternoControlado(Object(stdClass))
#6 /opt/sei/web/modulos/pen/rn/ReceberProcedimentoRN.php(88): InfraRN->__call('receberProcedim...', Array)
#7 /opt/sei/web/modulos/pen/rn/ProcessarPendenciasRN.php(179): ReceberProcedimentoRN->receberProcedimento(104386)
#8 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(400): ProcessarPendenciasRN->receberProcedimento('104386')
#9 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(370): PendenciasTramiteRN->enviarPendenciaProcessamentoDireto(Object(PendenciaDTO))
#10 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(95): PendenciasTramiteRN->enviarPendenciaProcessamento(Object(PendenciaDTO), false)
#11 /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php(30): PendenciasTramiteRN->encaminharPendencias(false, false, false)
#12 {main}

 [+0,04s]
00023 - [23/04/2023 23:55:59] (1228) [PROCESSAMENTO]  Validação:
O tamanho máximo geral permitido para documentos externos é 5Mb.

Trilha de Processamento:
#0 /opt/sei/web/modulos/pen/rn/ReceberProcedimentoRN.php(88): InfraRN->__call('receberProcedim...', Array)
#1 /opt/sei/web/modulos/pen/rn/ProcessarPendenciasRN.php(179): ReceberProcedimentoRN->receberProcedimento(104386)
#2 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(400): ProcessarPendenciasRN->receberProcedimento('104386')
#3 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(370): PendenciasTramiteRN->enviarPendenciaProcessamentoDireto(Object(PendenciaDTO))
#4 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(95): PendenciasTramiteRN->enviarPendenciaProcessamento(Object(PendenciaDTO), false)
#5 /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php(30): PendenciasTramiteRN->encaminharPendencias(false, false, false)
#6 {main}

 [+0,02s]
00024 - [23/04/2023 23:56:01] (1228) [MONITORAMENTO]  Validação:
O tamanho máximo geral permitido para documentos externos é 5Mb.

Trilha de Processamento:
#0 /opt/sei/web/modulos/pen/rn/ReceberProcedimentoRN.php(88): InfraRN->__call('receberProcedim...', Array)
#1 /opt/sei/web/modulos/pen/rn/ProcessarPendenciasRN.php(179): ReceberProcedimentoRN->receberProcedimento(104386)
#2 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(400): ProcessarPendenciasRN->receberProcedimento('104386')
#3 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(370): PendenciasTramiteRN->enviarPendenciaProcessamentoDireto(Object(PendenciaDTO))
#4 /opt/sei/web/modulos/pen/rn/PendenciasTramiteRN.php(95): PendenciasTramiteRN->enviarPendenciaProcessamento(Object(PendenciaDTO), false)
#5 /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php(30): PendenciasTramiteRN->encaminharPendencias(false, false, false)
#6 {main}
mrglaydson commented 1 year ago

Testes feito após correção do erro mencionado: https://drive.google.com/file/d/1ITW2OyCNbb1pn0CmoQUKPWJ_D5YDL51s/view?usp=sharing

euviniciusmendonca commented 1 year ago

Solicita-se uma comprovação que a mensagem foi ajustada para contemplar a grandeza !!!!

mrglaydson commented 1 year ago

@euviniciusmendonca segue imagens de como ficou os textos (painel e log), como mencionei image

no log de erro: image

euviniciusmendonca commented 1 year ago

Como Product Owner, eu aprovo essa issue. @caduvieira @pedrohpms.

yurioliveiramgi commented 4 months ago

Como a parte negocial não tem como realizar a validação da issue, encaminho aos cuidados da CGSIS, para eventual validação técnica e posterior aceite.

Para ciência @caduvieira , @euviniciusmendonca , @mateussbh , @amelquia

amelquia commented 3 months ago

05/06/24 Card movido para a Sprint 43.

mrglaydson commented 3 months ago

@mateussbh essa correção foi realizada na issue #343, além da substituição da mensagem solicitada, essa solução também resolve o problema da validação que ocorria apenas após o download.

mateussbh commented 3 months ago

Diante da informação trazida pelo comentário https://github.com/pengovbr/mod-sei-pen/issues/155#issuecomment-2155015884, estou concluindo essa issue por já ter sido contemplada pela entrega 3.7.0, issue #343.