Ir para conteúdo
  • Cadastre-se

dev botao

NFS-e - Linux - exception class Segmentation fault (11) ao validar o schema


Ver Solução Respondido por Daniel InfoCotidiano,

Recommended Posts

  • Membros Pro
Postado

Estou enfrentando um problema na validação do schema da NFS-e no Linux.

A princípio parece o mesmo problema citado aqui:

Porém como o tópico foi criado a algum tempo, achei melhor abrir um novo tópico.

 

O erro de Segmentation fault acontece na TDFeSSLXmlSignLibXml2, na função TentaPegarMensagemErroDetalhada

function TDFeSSLXmlSignLibXml2.TentaPegarMensagemErroDetalhada(const MsgErroAtual: string): String;
var
  prtUltimoErroXml: xmlErrorPtr;
begin
  Result := '';
  prtUltimoErroXml := xmlGetLastError();
  if (prtUltimoErroXml <> nil) then
  begin
    Result := MsgErroAtual+ ' --> ' +
              IntToStr(prtUltimoErroXml^.code) + ' - ' + prtUltimoErroXml^.message;
  end
  else
    Result := MsgErroAtual;

end;

 

Porém no terminal, mostra a mensagem da validação da validação image.thumb.png.63d5059479239de51f7eaeb9e628ec5b.png

Se compilar no Windows, valida normalmente.

Anexo criei um exemplo onde o problema acontece.

 

Desde já agradeço.

 

SandBox.zip

  • Membros Pro
Postado

Bom dia Daniel!

O path do schema está correto e eles estão atualizados.

Esse exemplo que mandei são dados aleatórios, não me preocupo em autorizar o documento e sim na validação do schema.

Se compilar o projeto que te enviei no Windows, ele vai retornar o erro de schema.

Porém o que eu preciso é no Linux, e quando executa pelo Linux, ele não retorna o erro da validação do schema e sim erro de Segmentation fault.

Como postei acima, o erro acontece na function TDFeSSLXmlSignLibXml2.TentaPegarMensagemErroDetalhada.

Se vc compilar o projeto anexo aqui, vai verificar que quando é pelo windows, ao emitir ele retorna erros, já pelo linux, como dá o erro de Segmentation fault, não retorna nada em erros ou alertas.

 

 

SandBox.zip

  • Consultores
Postado
1 hora atrás, C4Dev disse:

Esse exemplo que mandei são dados aleatórios

mas o erro q estava dando é justamente por dados nao estarem corretos.
por isso q pedi p mudar a propriedade  AcbrNFSe.Configuracoes.Geral.LayoutNFSe := lnfsProvedor;
Na propriedade que estava dado erro no campo cTribNAC

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

Olá Daniel!

Entendo que o erro acontece porque os dados não estão corretos, mas o meu problema é que estes erros no Windows retornam para o usuário. Já no Linux está retornando com Access Violation.

Veja esse trecho do meu código:

image.thumb.png.c3e02da624ef5cb967304267c8875cb1.png

 

No Linux perceba que acontece um Access Violation

image.png.e10329b93dc158bee1a472e7df3bb98a.png

 

Já no Windows o erro retorna corretamente para o usuário:

image.png.71e61e14b84980d0137c2f4a2aec645d.png

 

Em resumo, meu problema não está na autorização do documento e sim no exception que acontece no Linux, impedindo que retorne o erro da validação para o usuário.

 

 

 

 

 

  • Consultores
Postado

Agora entendi. em ambos tem a o problema da validação, mas vc esta tendo um av. no linux.
Este exemplo q vc anexou é o mesmo q testou ai ou vc mascarou os dados sensiveis?

Vou testar aqui novamente, pois nao lembro de av no meu teste apenas do cTribNAC
Ja reporto.

 

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

Mascarei só os paths, nome de usuário e senha, de resto testei com os dados que enviei aí.

  • Consultores
Postado
2 minutos atrás, C4Dev disse:

Sim, eu também estou usando a 1.1.1

Bom dia !
Mesmo com a 1.1.1 esta aparecendo a AV?
me responda tbm por favor qual LInux esta usando e se tem ambiente grafico por favor

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

Sim, mesmo com a 1.1.1 ocorre AV.

O Linux é o Ubuntu 20.04.6 LTS.

Não tem ambiente gráfico, só pelo terminal.

O que é estranho é que ele valida o schema e joga a mensagem no terminal:

image.png.ccfabad663f977579e071d114bdaac3d.png

Só que essa mensagem não retorna no componente porque dá o erro de access violation.

 

 

  • Consultores
Postado
17 minutos atrás, C4Dev disse:

Não tem ambiente gráfico, só pelo terminal.

O que precisa se atentar é que dentro do Linux sem ambiente gráfico é necessário instalar algumas dependências.
E dentre elas o XVFB que é o virtual frame buffer. para que possa emular modo gráfico principalmente para dependências gráficas como fortes report.
Vou te mandar um link apesar de ser sobre acbrlib no LInux, a lib utiliza os mesmos componentes.
mas vc vai ver como instalar dependências e como testar XVFB se usar fortes.
Se vc utilizar FPDF nao precisa emular XVFB
Veja se tem acesso ao curso abaixo, caso tenha problema, favor reportar

https://acbr.nutror.com/curso/d484b944c7f91eb67c5e395df79d03f1e184fac5


 

  • Curtir 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

Tenho acesso ao curso, repassei todas as dependências e tudo está instalado 😟

Também não uso o Fortes, pois não gero nenhuma impressão.

No caminho normal, onde o documento não tem erro de schema, autoriza certinho.

 

  • Consultores
Postado

Criado a TK-5628 para analise do caso.
Reportamos aqui assim q concluido.

 

13 minutos atrás, C4Dev disse:

Beleza, se precisar de algo que eu faça aqui para testar, só avisar.

Combinado !

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

  • 2 semanas depois ...
  • Consultores
  • Solution
Postado

Por favor atualize seus fontes, pelo SVN do ACBr... 

Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico...

Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido...

Dúvidas, sobre o uso do SVN ?  Clique aqui e veja um vídeo

  • Curtir 2
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

  • 3 semanas depois ...
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.

The popup will be closed in 10 segundos...