Ir para conteúdo
  • Cadastre-se

dev botao

Possível memory leak na classe ACBrReinfLoteEventos


Ver Solução Respondido por Renato Rubinho,
  • Este tópico foi criado há 222 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa tarde! Estou utilizando o ACBr para envio de lotes de Reinf, e ao realizar testes de memory leak, percebi um vazamento no objeto TLeitor na unit ACBrReinfLoteEventos, criado na linha 401 e aparentemente nunca liberado.

Os metódos que estou chamando são respectivamente:
    FACBrReinf.Configuracoes.Arquivos.Salvar := true;
    FACBrReinf.Configuracoes.Geral.Salvar := true;
    FACBrReinf.AssinarEventos; >>> o leak acontece a partir desta função....
Result := FACBrReinf.Enviar; 

Segue em anexo os prints do call stack do memory leak.

 

MicrosoftTeams-image.png

Editado por Alexandre Felippeto Henzen
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde,

Criada a TK-4435 para avaliação.

Obrigado

  • Curtir 1
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
Em 13/09/2023 at 16:53, Renato Rubinho disse:

O mesmo acontece com o programa de exemplo?

Bom dia Alexandre,

Os testes que você está realizando são com o programa exemplo?
É importante usarmos o mesmo cenário para conseguirmos identificar a ocorrência.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
6 minutos atrás, Alexandre de Paula disse:

Bom dia Alexandre,

Os testes que você está realizando são com o programa exemplo?
É importante usarmos o mesmo cenário para conseguirmos identificar a ocorrência.

Não, são na minha própria aplicação. Nunca utilizei o programa exemplo, mas posso tentar se for o caso...

O objeto em questão que apresenta o leak é este, que é criado e nunca destruído na unit ACBrReinfLoteEventos:

image.thumb.png.12880c424960936c48e3f87176b876f7.png

Segue outro print para visualizacao do mesmo sendo criado e destruído em outros momentos.

MicrosoftTeams-image(1).thumb.png.53ad7e5df3f21c42ca8cc891159c0477.png
 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 13/09/2023 at 14:22, Alexandre Felippeto Henzen disse:

Boa tarde! Estou utilizando o ACBr para envio de lotes de Reinf, e ao realizar testes de memory leak, percebi um vazamento no objeto TLeitor na unit ACBrReinfLoteEventos, criado na linha 401 e aparentemente nunca liberado.

Os metódos que estou chamando são respectivamente:
    FACBrReinf.Configuracoes.Arquivos.Salvar := true;
    FACBrReinf.Configuracoes.Geral.Salvar := true;
    FACBrReinf.AssinarEventos; >>> o leak acontece a partir desta função....
Result := FACBrReinf.Enviar; 

Segue em anexo os prints do call stack do memory leak.

 

MicrosoftTeams-image.png

Bom dia @Alexandre Felippeto Henzen,

qual tela é essa para controle de vazamento de memória?

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • Consultores
8 minutos atrás, Alexandre Felippeto Henzen disse:

Não, são na minha própria aplicação. Nunca utilizei o programa exemplo, mas posso tentar se for o caso...

Então... para poder auxiliar e até identificar uma possível ocorrencia no componente é preciso que estejamos usando o mesmo ambiente.
Na sua aplicação não temos como validar e identificar se o memory leak é do componente ou do seu código.
Se você conseguir reproduzir o problema no programa exemplo aí temos como corrigir pois além de termos o mesmo ambiente para testar sabemos que a ocorrencia é no fonte do componente.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
27 minutos atrás, Cleber Ferreira disse:

Bom dia @Alexandre Felippeto Henzen,

qual tela é essa para controle de vazamento de memória?

Essa em específico nós utilizamos a biblioteca MadExcept com a propriedade de Resource Leaks ativa.
image.png.71edf1139221f00ab61bd9b5ede888a6.png

 

22 minutos atrás, Alexandre de Paula disse:

Então... para poder auxiliar e até identificar uma possível ocorrencia no componente é preciso que estejamos usando o mesmo ambiente.
Na sua aplicação não temos como validar e identificar se o memory leak é do componente ou do seu código.
Se você conseguir reproduzir o problema no programa exemplo aí temos como corrigir pois além de termos o mesmo ambiente para testar sabemos que a ocorrencia é no fonte do componente.

Certo, sobre isso vamos tentar reproduzir aqui desta forma.

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Consultores
4 horas atrás, Alexandre Felippeto Henzen disse:

O objeto em questão que apresenta o leak é este, que é criado e nunca destruído na unit ACBrReinfLoteEventos:

image.thumb.png.12880c424960936c48e3f87176b876f7.png

Boa tarde @Alexandre Felippeto Henzen

Obrigado pelas informações.

Tendo identificado o item que não foi liberado da memória, provavelmente já temos como simular o mesmo problema.

Assim que tivermos um posicionamento, retornaremos aqui.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa noite,

Obrigado pela colaboração.
Foram enviadas correções ao SVN que devem resolver o problema relatado, Rev-30651
Por favor atualize os fontes, reinstale os componentes, verifique se o problema foi resolvido e, se possível, nos informe se foi o resultado esperado.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Fala pessoal, boa tarde! 
 

Em 15/09/2023 at 21:14, Renato Rubinho disse:

Boa noite,

Obrigado pela colaboração.
Foram enviadas correções ao SVN que devem resolver o problema relatado, Rev-30651
Por favor atualize os fontes, reinstale os componentes, verifique se o problema foi resolvido e, se possível, nos informe se foi o resultado esperado.


Novamente testei após as modificações e resolvido o problema, muito obrigado!

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Consultores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 222 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.