Ir para conteúdo
  • Cadastre-se

dev botao

Erro "Segmentation fault" ao executar método NFE_DistribuicaoDFePorUltNSU


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

Recommended Posts

  • Membros Pro
Postado

Boa tarde Renato!

Testei a execução do método da Distribuição com o ambiente mais limpo possível (utilizei o exemplo do SVN).

Executando o script no windows com a DLL o código funciona corretamente (assim como meu código com serverless, caso testado no windows).

Ao executar no linux com a lib SO ele retorna o erro Segmentation Fault.

Criei um repo no github com o código e um readme.md para facilitar a simulação para vocês. 


Segue o link:
https://github.com/Maurelima/acbr-demo-linux.git

  • Consultores
Postado

Boa noite Léo,

6 horas atrás, leoprates disse:

Executando o script no windows com a DLL o código funciona corretamente

Isso que eu queria confirmar, se não havia algum problema com o código.

Tendo funcionado o mesmo código em outro ambiente, vamos caçar qual o problema no ambiente.

6 horas atrás, leoprates disse:

Criei um repo no github com o código e um readme.md para facilitar a simulação para vocês. 

Perfeito, vou verificar com os colegas se alguém consegue simular este cenário no Linux.

Enquanto isso, seguem mais sugestões de testes.

1. Vi que aumentou o timeout, descartamos esta hipótese

2. Seu PathSchemas está apontando para unidade com letra, está correto assim para o Linux?

PathSchemas=D:\INTERSOLID\ERP-CLOUD\erp-cloud-ms\TESTEACBR\assets\acbr\schemas

3. Analisando o log, métodos que não interagem com o certificado funcionam, provavelmente ainda temos algum problema com relação a dependências ou certificado.

3.1. Veja permissões de acesso ao certificado, tente atribuir acesso total ao caminho e ao arquivo.

3.2. Veja a solução do tópico a seguir, se faz sentido no seu cenário e se seguindo esses passos tem alguma mudança no resultado. Note que além da OpenSSL, tem que verificar a instalação da LibXml2.

 

  • Consultores
Postado

ACBrLibNFE-20231016.logACBrLibNFE-20231016.log@leoprates
Realizei uns testes aqui em em meu ambiente Ubuntu 22.04
Seguindo estes passos: https://github.com/Maurelima/acbr-demo-linux

Tive que fazer alguns ajustes para poder funcionar (paths do ini para as minhas pastas linux).
Uma das coisas que o openssl estava padrao 3.0 precisei estava recebendo a mensagem que provavelmente a senha estava errada:
provavelmente_Errada.png
Resolvi instalando OpenSLL 1.1.1.1f, utilizei este vídeo.
 

Após a instalação OpenSLL, ficou assim:
openssl1.1.1.Screenshot_459.png

 

Quando Executo o comando, ele realiza com sucesso a consulta e retorna rejeição que o CNPJ não é o mesmo da consulta.
Então esta batendo na SEFAZ e ela esta nos devolvendo a msg e rejeição 593;
Rejeicao_Screenshot_459.png

Uma OBS. por não ter o node em meu ambiente, cada erro ao executar o arquivo .js eu fui "googlando" e instalando conforme necessário até chegar ao resultado.

Vou anexar meu log
ACBrLibNFE-20231016.log


 

  • Curtir 3
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado (editado)

Boa tarde a todos!

Seguindo a última recomendação do Renato e do Daniel e também reinstalando meu ubuntu do zero, o erro de Segmentation Fault parou de ocorrer.

Agora, apenas o erro abaixo está sendo exibido.
Daniel, poderia me enviar seu acbrlib.ini para eu verificar se pode ser alguma propriedade não preenchida ou preenchida de maneira incorreta?

O openssl está na versão correta "OpenSSL 1.1.1q  5 Jul 2022".

Tentei deixar um arquivo em anexo com os comandos que utilizei na configuração do ambiente, porém o servidor não permite o envio (então enviarei como .rar)

Log:

16/10/23 16:40:42:979 - TLibNFeConfig.AplicarConfiguracoes: ./tmp/acbrlib.ini
16/10/23 16:40:42:979 - Travar
16/10/23 16:40:42:979 - TLibNFeConfig.AplicarConfiguracoes - Feito
16/10/23 16:40:42:979 - Destravar
16/10/23 16:40:42:979 -    SetRetorno(0, )
16/10/23 16:40:42:980 - NFe_DistribuicaoDFePorUltNSU(35,06319316000127,000000000000001)
16/10/23 16:40:42:980 - Travar
16/10/23 16:40:42:980 - NFe_DistribuicaoDFePorUltNSU, Executar
16/10/23 16:40:42:998 - Destravar
16/10/23 16:40:42:998 -    SetRetorno(-16, WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: -2
Erro HTTP: 500
error:140AB18E:SSL routines:func(171):reason(398)
 
  MotivoRetornadoDoWebService: "")
16/10/23 16:40:42:999 - LIB_Finalizar
16/10/23 16:40:42:999 - Finalizar

comandos.rar

Editado por leoprates
  • Membros Pro
Postado

Renato, testando o certificado com o curl tenho retornos diferentes quando usando o PFX e quando o transforme em PEM.

 

Certificado PFX
root@maure:/home/node/Projeto# curl -I --cert ./tmp/certificado/certificado.pfx --pass minha_senha https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx
curl: (58) could not load PEM client certificate, OpenSSL error error:0480006C:PEM routines::no start line, (no key found, wrong pass phrase, or wrong file format?)


Certificado PEM + key
curl -I --cert ./tmp/certificado/certificado.pem --key ./tmp/certificado/chave-privada.pem -k https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx
Enter PEM pass phrase:
HTTP/1.1 405 Method Not Allowed
Cache-Control: private
Content-Length: 3508
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 17 Oct 2023 12:15:45 GMT

 

  • Membros Pro
Postado

Mais uma coisa, quando testo o certificado com openssl s_client ele retorna "verify error:num=20:unable to get local issuer certificate"
 

  • Consultores
Postado
3 horas atrás, leoprates disse:

testando o certificado com o curl tenho retornos diferentes quando usando o PFX e quando o transforme em PEM.

Tem que ser o pfx mesmo, com chave exportada.

4 horas atrás, leoprates disse:

no key found, wrong pass phrase, or wrong file format?)

Parece ser erro no certificado ou senha

  • Curtir 1
  • Membros Pro
Postado

Bom dia pessoal!

Seria possível o Daniel InfoCotidiano me passar o passo a passo de como ele configurou o ambiente dele? Testei de diversas maneiras no WSL Ubuntu, em uma VM, com Docker, e também pedi para o pessoal de infraestrutura que lida com nossos serviços na nuvem usando AWS testar, mas todos sempre encontram o mesmo problema que eu.

  • Consultores
Postado

@leoprates

Meu linux tinha configurado conf. manual padrao ACBr
https://acbr.sourceforge.io/ACBrLib/ComoInstalarDistribuir.html
(como root:
echo "deb http://deb.debian.org/debian buster main contrib\n" >> /etc/apt/sources.list &&\
apt-get update && apt-get install -y --no-install-recommends \
xvfb \
xauth \
openssl \    
libxml2 \
gtk2 \
gtk2-devel \
ttf-mscorefonts-installer && \
ln -s libxml2.so.2 libxml2.so
)

OpenSSL q estava 3.0, substitui por OpenSLL 1.1.1.1f
https://www.youtube.com/watch?v=GqRq4FzpLc8

Instalei conforme:
https://github.com/Maurelima/acbr-demo-linux

jdk-21_linux-x64_bin.deb
npm (versao 8.5.1)
node (versao v12.22.9)
dei permissão na pasta sudo chmod -R 777 /home/acbr/acbr-demo-linux/
npm install ffi-napi
Apontei as pastas no INI para pastas existentes no meu ambiente.

  • Curtir 1
  • Obrigado 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

Daniel, vou seguir os passos que você recomendou.
Apenas uma dúvida, no link da instalação (https://acbr.sourceforge.io/ACBrLib/ComoInstalarDistribuir.html) é dito que devo "copiar as Bibliotecas, para algum dos diretórios do LibPath do Sistema operacional, como por exemplo: /usr/lib64". A quais bibliotecas esse trecho se refere? Seriam das libs openssl, libxml2 e libgtk2.0-0?

  • Consultores
Postado
32 minutos atrás, leoprates disse:

Daniel, vou seguir os passos que você recomendou.
Apenas uma dúvida, no link da instalação (https://acbr.sourceforge.io/ACBrLib/ComoInstalarDistribuir.html) é dito que devo "copiar as Bibliotecas, para algum dos diretórios do LibPath do Sistema operacional, como por exemplo: /usr/lib64". A quais bibliotecas esse trecho se refere? Seriam das libs openssl, libxml2 e libgtk2.0-0?

libacbrnfeXX.so, onde XX é a versão 32 ou 64.

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

  • Membros Pro
  • Solution
Postado

Pessoal, 

O Lucas que faz o serviço da nuvem para nós conseguiu resolver.
Ele viu que hoje o Daniel enviou o passo a passo e no fim enviou a versão das ferramentas. Ao testar com o node 12 funcionou.
Antes disso testamos da 14 para cima 😅.
 

  • Curtir 3
  • Obrigado 1
  • Este tópico foi criado há 402 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.