Ir para conteúdo
  • Cadastre-se

dev botao

AcbrLibNfe - Falha Acces Violation na Consulta Sefaz (NFE_StatusServico)


Ver Solução Respondido por Daniel InfoCotidiano,

Recommended Posts

  • Membros Pro
Postado

ACBrLibNFE-20240609.zip

Faz um tempo que utilizo as classes de alto nível em C# (versão MT)para emissão de NfCe, em alguns dias tenho erros de Access Violation na consulta de status Sefaz(NFE_StatusServico), log em anexo.

No horário 07:21:26:590 => é possível identificar o retorno de erro. 

Att.

  • Fundadores
Postado

Notei que o A.V. ocorreu na chamada do método NFE_LimparLista

Me parece ser algum erro de programação na Lib, que está tentando destruir objetos que já não existem...

09/06/24 07:21:26:575 - NFE_LimparLista
09/06/24 07:21:26:575 - Travar
09/06/24 07:21:26:590 - Destravar
09/06/24 07:21:26:590 -    SetRetorno(-10, Access violation)
09/06/24 07:21:26:606 - LIB_UltimoRetorno
09/06/24 07:21:26:606 -    MoverStringParaPChar. StrLen:16, BufLen:256
09/06/24 07:21:26:622 -    Codigo:-10, Mensagem:Access violation
09/06/24 07:21:29:840 - NFE_LimparLista

@antonio.carlos e @EMBarbosa, poderiam por favor abrir uma Tarefa para investigar esse problema ?

 

@Sistemas Drogal, consegue identificar uma situação ou sequencia de comandos, onde esse problema ocorre, para tentarmos reproduzir do nosso lado ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Consultores
Postado
8 minutes ago, Daniel Simoes said:

Notei que o A.V. ocorreu na chamada do método NFE_LimparLista

Me parece ser algum erro de programação na Lib, que está tentando destruir objetos que já não existem...

09/06/24 07:21:26:575 - NFE_LimparLista
09/06/24 07:21:26:575 - Travar
09/06/24 07:21:26:590 - Destravar
09/06/24 07:21:26:590 -    SetRetorno(-10, Access violation)
09/06/24 07:21:26:606 - LIB_UltimoRetorno
09/06/24 07:21:26:606 -    MoverStringParaPChar. StrLen:16, BufLen:256
09/06/24 07:21:26:622 -    Codigo:-10, Mensagem:Access violation
09/06/24 07:21:29:840 - NFE_LimparLista

@antonio.carlos e @EMBarbosa, poderiam por favor abrir uma Tarefa para investigar esse problema ?

 

@Sistemas Drogal, consegue identificar uma situação ou sequencia de comandos, onde esse problema ocorre, para tentarmos reproduzir do nosso lado ?

Criada a #TK-5661 para análise do caso e parecer por parte da equipe de consultores.

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Consultores
Postado
Em 28/06/2024 at 11:20, Sistemas Drogal disse:

ACBrLibNFE-20240609.zip 1.66 MB · 2 downloads

Faz um tempo que utilizo as classes de alto nível em C# (versão MT)para emissão de NfCe, em alguns dias tenho erros de Access Violation na consulta de status Sefaz(NFE_StatusServico), log em anexo.

No horário 07:21:26:590 => é possível identificar o retorno de erro. 

Att.

Enquanto analisamos o caso, olhando o log, vi que esta com a versão do ACBrLib desatualizado..
09/06/24 21:34:42:894 -    ACBrLibNFE - 0.4.6.278

Consegue atualizar para a ultima versão disponível no fórum ? e caso ocorra o A.V anexar um log atualizado.. por favor.. 


Com o programa exemplo ocorre o mesmo comportamento ?

 

  • 2 semanas depois ...
  • Consultores
Postado

Tópico reaberto a pedido do assinante.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Consultores
Postado
1 hora atrás, Sistemas Drogal disse:

@antonio.carlos Posso atualizar sim, porém esse erro ocorre faz algum tempo e é esporadicamente.

@Daniel Simoes Me perdoe não notei que o erro ocorreu no NFE_LimparLista, segue em anexo o log (02/07/24 11:24:00:868) de um caso bem recente que pegamos na própria NFE_StatusServico.

Agradeço o retorno e ajuda pra sanarmos o problema.ACBrLibNFE-20240702.zip

Olhando este ultimo log, ainda constam com a versão desatualizada, vamos aguardar atualizar a versão para ultima disponível para download no fórum.. me avise, por favor. 

  • Curtir 1
  • Membros Pro
Postado

@antonio.carlos A nova versão ainda não disponibilizamos para as nossas filiais. Mais como eu disse esse erro vem ocorrendo já algum tempo. Creio que não está devidamente tratado na Lib algum retorno do Sefaz e ta impactando nisso.

  • Consultores
Postado
13 minutos atrás, Sistemas Drogal disse:

@antonio.carlos A nova versão ainda não disponibilizamos para as nossas filiais. Mais como eu disse esse erro vem ocorrendo já algum tempo. Creio que não está devidamente tratado na Lib algum retorno do Sefaz e ta impactando nisso.

Ok, vamos verificar por aqui.. se conseguimos simular algum dos problemas que foram citado.. aviso você.

  • Consultores
Postado
Em 28/06/2024 at 11:20, Sistemas Drogal disse:

C# (versão MT)

@Sistemas Drogal você esta utilizando o ACBrLib .dll ou .so ? x86 ou x64 ? versão Multithread mesmo ?!
Ainda estou fazendo testes com os métodos NFE_LimparLista e NFE_StatusServico.... preciso saber qual versão compilada esta utilizando para dar continuidade nos testes.. 

  • Curtir 1
  • Consultores
Postado
1 hora atrás, Sistemas Drogal disse:

Utilizo a ACBrLib.dll x86 versão MT. 

Realizei testes em ambos os métodos, NFE_LimparLista e NFE_StatusServico..
Foi realizado testes unitários nos métodos, para que tenhamos certeza, caso ocorrer algum erro de Access Violation ou não nos métodos do ACBrLib..

Estou utilizando a ultima versão disponível para download no fórum, carregando ela nos testes com base na versão que você esta utilizando.. ACBrLibNFe32.dll, CDECL na versão MultiThread..

Realizei dois testes..
O primeiro teste estou carregando apenas um arquivo .ini e limpando a lista logo em seguida.. veja trecho do log:

Citar

10/07/24 15:27:06:338 - LIB_Inicializar( ,  )
10/07/24 15:27:06:343 -    ACBrLibNFE - 0.4.6.296
10/07/24 15:27:06:348 - NFE_CarregarINI(C:\ProjetoACBr\ACBr\Projetos\ACBrLib\Testes\NFe\bin\nfe.ini )
10/07/24 15:27:06:351 - Travar
10/07/24 15:27:06:359 -    SetRetorno(0, 1 NFe(s) Carregada(s))
10/07/24 15:27:06:361 - Destravar
10/07/24 15:27:06:365 - NFE_LimparLista
10/07/24 15:27:06:367 - Travar
10/07/24 15:27:06:370 -    SetRetorno(0, 0 NFe(s) Carregada(s))
10/07/24 15:27:06:372 - Destravar


O Segundo testes estou carregando 50 arquivos .ini após carregar o ultimo arquivo .ini, realizei a consulta do status serviço... com o método NFe_StatusServico, feito isso, foi chamado método NFE_LimparLista, veja o trecho do log:

Citar

10/07/24 15:27:08:548 - NFE_CarregarINI(C:\ProjetoACBr\ACBr\Projetos\ACBrLib\Testes\NFe\bin\nfe.ini )
10/07/24 15:27:08:552 - Travar
10/07/24 15:27:08:558 -    SetRetorno(0, 50 NFe(s) Carregada(s))
10/07/24 15:27:08:563 - Destravar
10/07/24 15:27:08:566 - NFE_StatusServico
10/07/24 15:27:08:569 - Travar
10/07/24 15:27:08:913 -    MoverStringParaPChar. StrLen:194, BufLen:255
10/07/24 15:27:08:917 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:08:920 - Destravar
10/07/24 15:27:08:923 - NFE_StatusServico
10/07/24 15:27:08:926 - Travar
10/07/24 15:27:08:951 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:08:954 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:08:958 - Destravar
10/07/24 15:27:08:963 - NFE_StatusServico
10/07/24 15:27:08:966 - Travar
10/07/24 15:27:08:987 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:08:990 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:08:995 - Destravar
10/07/24 15:27:08:999 - NFE_StatusServico
10/07/24 15:27:09:003 - Travar
10/07/24 15:27:09:028 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:09:032 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:09:035 - Destravar
10/07/24 15:27:09:039 - NFE_StatusServico
10/07/24 15:27:09:042 - Travar
10/07/24 15:27:09:071 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:09:075 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:09:080 - Destravar
10/07/24 15:27:09:082 - NFE_StatusServico
10/07/24 15:27:09:087 - Travar
10/07/24 15:27:09:111 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:09:115 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:09:119 - Destravar
10/07/24 15:27:09:121 - NFE_StatusServico
10/07/24 15:27:09:124 - Travar
10/07/24 15:27:09:147 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:09:151 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:09:157 - Destravar
10/07/24 15:27:09:162 - NFE_StatusServico
10/07/24 15:27:09:167 - Travar
10/07/24 15:27:09:187 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:09:190 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:09:195 - Destravar
10/07/24 15:27:09:198 - NFE_StatusServico
10/07/24 15:27:09:201 - Travar
10/07/24 15:27:09:226 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:09:231 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:09:234 - Destravar
10/07/24 15:27:09:237 - NFE_StatusServico
10/07/24 15:27:09:239 - Travar
10/07/24 15:27:09:265 -    MoverStringParaPChar. StrLen:194, BufLen:194
10/07/24 15:27:09:268 -    SetRetorno(0, [Status]
CStat=107
CUF=35
DhRecbto=10/07/2024 15:28:16
DhRetorno=
Msg=Serviço em Operação
TMed=1
VerAplic=SP_NFE_PL009_V4
Versao=4.00
XMotivo=Serviço em Operação
XObs=
tpAmb=2
)
10/07/24 15:27:09:272 - Destravar
10/07/24 15:27:09:275 - NFE_LimparLista
10/07/24 15:27:09:280 - Travar
10/07/24 15:27:09:284 -    SetRetorno(0, 0 NFe(s) Carregada(s))
10/07/24 15:27:09:287 - Destravar


Por desencargo, realizei os mesmo teste usando método NFE_CarregarXML.. 
Log Testes unitários:
ACBrLibNFE-20240710-TestesUnitários.log

E por ultimo, realizei testes com o programa exemplo C# disponível no SVN.. utilizando a ultima versão do ACBrLib com as mesmas configurações no qual você citou..
Log testes Programa Exemplo C#:
ACBrLibNFE-20240710.log

  • Curtir 1
  • Membros Pro
Postado

Obrigado pelo retorno. Entendi, como eu havia dito esses erros são esporádicos. Mais um detalhe; nossas emissões NfCe ocorrem no estado de MG, a falha na NFE_StatusServico não poderá ocorrer por algum retorno errôneo do Sefaz ? De qualquer forma na data de ontem atualizei a lib (versão 0.4.6.295) em nossas filiais.

  • Consultores
Postado
57 minutos atrás, Sistemas Drogal disse:

NFE_StatusServico não poderá ocorrer por algum retorno errôneo do Sefaz ?

Acredito que não.. caso ocorra erro no uso do método, a lib retorna -10 e a mensagem do erro.
Inclusive, eu até forcei alguns erros, -10.. tentar ocasionar este Access Violation..

Consegue me descrever um passo a passo ?? em que exato momento ocorre.. em sua aplicação ? para que eu continue com os testes por aqui.
 

57 minutos atrás, Sistemas Drogal disse:

De qualquer forma na data de ontem atualizei a lib (versão 0.4.6.295) em nossas filiais.

Ultima versão disponível para download é 0.4.6.296, de qualquer forma, veja se ainda sim, vai continuar ocorrendo Access Violation, me avise.. 

  • Membros Pro
Postado

Inicialmente carrego a Lib ao abrir a minha aplicação para utilizar suas funções conforme minha necessidade. Tenho um timer async que roda a cada 10 minutos para consultar o status do Sefaz para "facilitar" minha emissão Nfce, por exemplo, se o Sefaz estiver fora minha aplicação saberá e não tentará emitir a NF online e sim diretamente em contingência. Mesmo o timer/consulta no sefaz ocorrendo ainda utilizo durante o dia as funções para a própria emissão da Nfce, inclusive no ultimo log que enviei é possível identificar o uso de ambas diversas vezes. E no horário de 11:24:00:868 ocorre o erro AC.

Inicialmente carrego a Lib ao abrir a minha aplicação para utilizar suas funções conforme minha necessidade. Tenho um timer async que roda a cada 10 minutos para consultar o status do Sefaz para "facilitar" minha emissão Nfce, por exemplo, se o Sefaz estiver fora minha aplicação saberá e não tentará emitir a NF online e sim diretamente em contingência. Mesmo o timer/consulta no sefaz ocorrendo ainda utilizo durante o dia as funções para a própria emissão da Nfce, inclusive no ultimo log que enviei é possível identificar o uso de ambas diversas vezes. E no horário de 11:24:00:868 ocorre o erro AC.

  • Consultores
Postado
14 horas atrás, Sistemas Drogal disse:

Inicialmente carrego a Lib ao abrir a minha aplicação para utilizar suas funções conforme minha necessidade. Tenho um timer async que roda a cada 10 minutos para consultar o status do Sefaz para "facilitar" minha emissão Nfce, por exemplo, se o Sefaz estiver fora minha aplicação saberá e não tentará emitir a NF online e sim diretamente em contingência. Mesmo o timer/consulta no sefaz ocorrendo ainda utilizo durante o dia as funções para a própria emissão da Nfce, inclusive no ultimo log que enviei é possível identificar o uso de ambas diversas vezes. E no horário de 11:24:00:868 ocorre o erro AC.

Inicialmente carrego a Lib ao abrir a minha aplicação para utilizar suas funções conforme minha necessidade. Tenho um timer async que roda a cada 10 minutos para consultar o status do Sefaz para "facilitar" minha emissão Nfce, por exemplo, se o Sefaz estiver fora minha aplicação saberá e não tentará emitir a NF online e sim diretamente em contingência. Mesmo o timer/consulta no sefaz ocorrendo ainda utilizo durante o dia as funções para a própria emissão da Nfce, inclusive no ultimo log que enviei é possível identificar o uso de ambas diversas vezes. E no horário de 11:24:00:868 ocorre o erro AC.

Sim, reparei que existem n chamadas nos métodos..
Veja se com essa ultima versão vai ocorrer o A.V, se ocorrer consegue me enviar um código de exemplo da sua aplicação ? algo simples, mas que faça a mesma rotina da sua aplicação.. onde ocorra o A.V, assim consigo dar continuidade nos testes por aqui.

  • Curtir 1
  • Administradores
Postado

Tópico fechado por falta de retorno do usuário

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 !!

  • Membros Pro
Postado

Boa tarde @antonio.carlos, nesses dias acompanhei se haveria mais casos. E aconteceu na data de ontem, segue em anexo o log da Lib.

Perceba que ocorreu bem no inicio do dia, ocorreu a primeira chama do método e na segunda houve um retorno diferente do anterior. Ai no horário de 07:35:40:646 onde ocorreu uma tentativa de emissão de NfCe tenho o erro AV. 

Para ajudar nessa análise segue em anexo dois arquivos com os retornos das duas chamadas do método NFE_StatusServico.

ACBrLibNFE-20240716.zipRetornoOK.jsonRetornoERRO.json

  • Consultores
Postado
39 minutos atrás, Sistemas Drogal disse:

Boa tarde @antonio.carlos, nesses dias acompanhei se haveria mais casos. E aconteceu na data de ontem, segue em anexo o log da Lib.

Perceba que ocorreu bem no inicio do dia, ocorreu a primeira chama do método e na segunda houve um retorno diferente do anterior. Ai no horário de 07:35:40:646 onde ocorreu uma tentativa de emissão de NfCe tenho o erro AV. 

Para ajudar nessa análise segue em anexo dois arquivos com os retornos das duas chamadas do método NFE_StatusServico.

ACBrLibNFE-20240716.zip 633.93 kB · 1 download RetornoOK.json 500 B · 1 download RetornoERRO.json 650 B · 1 download 633.93 kB · 1 download

Suas classes do C# estão todas atualizadas ?

  • Membros Pro
Postado

Desculpe @antonio.carlos acabei de fazer download dos fontes Acbr e vi que tem uma versão mais nova, já estou atualizando. Mais creio que o erro AV não se dá por falhas na classe e sim por alguma falha na Lib em si.

  • Consultores
Postado
Agora, Sistemas Drogal disse:

Desculpe @antonio.carlos acabei de fazer download dos fontes Acbr e vi que tem uma versão mais nova, já estou atualizando. Mais creio que o erro AV não se dá por falhas na classe e sim por alguma falha na Lib em si.

Temos que esgotar todas as possibilidades.. 
Eu não consegui simular o erro.. por isso comentei acima, consegue me enviar um código de exemplo da sua aplicação ? que faça a mesma rotina, código simples, mas que ocorra o A.V.. dessa forma consigo dar continuidade e tentar descobrir o que esta acontecendo..
Até o momento não temos relatos de outros usuários.. com problemas de A.V na ultima versão do ACBrLib com as classes C# atualizadas..
 

  • Curtir 1
×
×
  • 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.