Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 254 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Pessoal, estou usando a Lib MT (ACBrLibConsultaCNPJ-1.0.1.75) no Node.js v20.17 rodando no Linux Ubuntu 24.04 (com recursos gráficos).

OpenSSL Default Provider é v3.0.13  e o OpenSSL Legacy Provider é v3.0.13, ambos ativos.

O erro "Segmentation fault (core dumped)" acontece quando estou importando a biblioteca na chamada do método, em anexo está o meu código e abaixo a parte que está dando erro quando passa por ela:

 

async getCNPJ(CNPJ: string) {
    let handlePtr = ref.refType('int');
    const libm = ffi.Library(this.pathDllACBrLibCNPJ, {
      // CNPJ_Inicializar([eArqConfig, eChaveCrypt]);
      CNPJ_Inicializar: ['int', [handlePtr, 'string', 'string']],
      // CNPJ_Consultar(eCNPJ, sResposta, esTamanho)
      CNPJ_Consultar: ['int', [handlePtr, 'string', 'string', handlePtr]],
      CNPJ_ConfigGravarValor:['int',[handlePtr, 'string','string','string']],
      // CNPJ_Finalizar();
      CNPJ_Finalizar: ['int', [handlePtr]],
      // CNPJ_Versao();
      CNPJ_Versao: ['int', [handlePtr, 'string', handlePtr]],

      CNPJ_UltimoRetorno: ['int', [handlePtr, 'string', handlePtr]]
    }); 
	/*Mais código*/
}
async getCNPJ(CNPJ: string) {
    let handlePtr = ref.refType('int');
    const libm = ffi.Library(this.pathDllACBrLibCNPJ, {
      // CNPJ_Inicializar([eArqConfig, eChaveCrypt]);
      CNPJ_Inicializar: ['int', ['pointer', 'string', 'string']],
      // CNPJ_Consultar(eCNPJ, sResposta, esTamanho)
      CNPJ_Consultar: ['int', ['pointer', 'string', 'string', 'string']],
      CNPJ_ConfigGravarValor:['int',['pointer', 'string','string','string']],
      // CNPJ_Finalizar();
      CNPJ_Finalizar: ['int', ['pointer']],
      // CNPJ_Versao();
      CNPJ_Versao: ['int', ['pointer', 'string', 'string']],

      CNPJ_UltimoRetorno: ['int', ['pointer', 'string', 'string']]
    }); 
	/*Mais código*/
}

 

segmentation-fault.png

cnpj.service.tsFetching info...

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

  • Consultores
Postado

Mexi pouco com node só para teste, mas seguem uns pitacos.

  Em 03/10/2024 at 20:36, valterpatrick disse:
CNPJ_Inicializar: ['int', ['pointer', 'string', 'string']]
Expandir  

Existe um tipo "pointer"?

  Em 03/10/2024 at 20:36, valterpatrick disse:
let handlePtr = ref.refType('int');
Expandir  
CNPJ_Inicializar: ['int', ['int', 'string', 'string']]

Você está instanciando o handle como int, faça o bind também como int.

  Em 03/10/2024 at 20:36, valterpatrick disse:
const libm = ffi.Library(this.pathDllACBrLibCNPJ, {
Expandir  
var libm = ffi.Library(this.pathDllACBrLibCNPJ, {
let libm = ffi.Library(this.pathDllACBrLibCNPJ, {

Você está carregando a libm como const, teste com var ou let

  Em 03/10/2024 at 20:36, valterpatrick disse:
this.pathDllACBrLibCNPJ
Expandir  

Confirme se o caminho está correto, apontando para o .so da arquitetura correta da sua aplicação.

  • Membros Pro
Postado
  Em 04/10/2024 at 00:23, Renato Rubinho disse:

Mexi pouco com node só para teste, mas seguem uns pitacos.

Existe um tipo "pointer"?

CNPJ_Inicializar: ['int', ['int', 'string', 'string']]

Você está instanciando o handle como int, faça o bind também como int.

var libm = ffi.Library(this.pathDllACBrLibCNPJ, {
let libm = ffi.Library(this.pathDllACBrLibCNPJ, {

Você está carregando a libm como const, teste com var ou let

Confirme se o caminho está correto, apontando para o .so da arquitetura correta da sua aplicação.

Expandir  

Farei os testes conforme orientado e retornarei aqui no forum dentro das próximas horas, desde já agradeço.

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

  • Consultores
Postado

Boa tarde @valterpatrick


image.png

Execute o comando:

openssl list -providers

Se nao aparecer Legacy assim como no meu print, precisa ativar o legacy, utilize este manual:
https://www.practicalnetworking.net/practical-tls/openssl-3-and-legacy-providers/

Criou o link simbólico do libxml2:
 

ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2  /usr/lib/x86_64-linux-gnu/libxml2.so

Deu permissao de leitura e escrita "Recursiva" na pasta ?

  • 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
  Em 04/10/2024 at 10:28, valterpatrick disse:

Farei os testes conforme orientado e retornarei aqui no forum dentro das próximas horas, desde já agradeço.

Expandir  

Testamos aqui e não deu certo.
Estamos agora tentando ver as dependências da biblioteca ffi-napi e talvez utilizar outras bibliotecas para importar os arquivos .so.

 

https://www.npmjs.com/package/ffi-napi
https://www.npmjs.com/package/node-addon-api
https://www.npmjs.com/package/node-gyp
https://www.npmjs.com/package/cmake-js
https://www.npmjs.com/package/nan

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

  • Membros Pro
  • Solution
Postado

Chegamos a formatar o PC e nada, ai fizemos todas as configurações novamente e nada, o que fez funcionar foi a instalação das libs abaixo:

sudo apt-get install -y libssl-dev libxml2-dev libgtk2.0-dev

Não chegamos a testar outras biblioteca para importação dos arquivos .so, já que está funcionando, mas iremos fazer isto com certeza.

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

  • Consultores
Postado
  Em 07/10/2024 at 11:21, valterpatrick disse:

Gtk-WARNING **:11:19:21.588: cannot open display:

Expandir  

geralmente isso é devido ao ambiente gráfico.
seu ambiente ai é somente texto?
se nao tiver ambiente grafico, precisa utiliza XVFB (emular o virtual frame buffer)
Vou passar o link do video q falamos sobre isso:
https://acbr.nutror.com/curso/d484b944c7f91eb67c5e395df79d03f1e184fac5/aula/8991923
image.png

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
  Em 07/10/2024 at 11:25, Daniel InfoCotidiano disse:

geralmente isso é devido ao ambiente gráfico.
seu ambiente ai é somente texto?
se nao tiver ambiente grafico, precisa utiliza XVFB (emular o virtual frame buffer)
Vou passar o link do video q falamos sobre isso:
https://acbr.nutror.com/curso/d484b944c7f91eb67c5e395df79d03f1e184fac5/aula/8991923
image.png

Expandir  

Isto, não tem ambiente gráfico.
Vou ver o video, obrigado.

  • Curtir 1

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

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