Ir para conteúdo
  • Cadastre-se

dev botao

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.ts

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.

3 horas atrás, valterpatrick disse:
CNPJ_Inicializar: ['int', ['pointer', 'string', 'string']]

Existe um tipo "pointer"?

3 horas atrás, valterpatrick disse:
let handlePtr = ref.refType('int');
CNPJ_Inicializar: ['int', ['int', 'string', 'string']]

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

3 horas atrás, valterpatrick disse:
const libm = ffi.Library(this.pathDllACBrLibCNPJ, {
var libm = ffi.Library(this.pathDllACBrLibCNPJ, {
let libm = ffi.Library(this.pathDllACBrLibCNPJ, {

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

3 horas atrás, valterpatrick disse:
this.pathDllACBrLibCNPJ

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

  • Membros Pro
Postado
10 horas atrás, 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.

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
6 horas atrás, valterpatrick disse:

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

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 04/10/2024 at 16:46, valterpatrick disse:

funcionar foi a instalação das libs abaixo:

Bom dia !
Esta tudo funcionando normalmente em seu ambiente agora?

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
11 minutos atrás, Daniel InfoCotidiano disse:

Bom dia !
Esta tudo funcionando normalmente em seu ambiente agora?

Localmente sim, mas na VPS está dando outro erro, GPK, mas estamos vendo isto.
Este erro em especifico sim.

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

  • Consultores
Postado
Agora, valterpatrick disse:

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

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
Agora, 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

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.