Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[BUG] Segmentation fault with callProcedure

Aperta
#415 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
javascript, node.js
Ambito
databases

Direzione di ricerca

Inizia con lo snippet callProcedure fornito e confronta il suo comportamento con il percorso delle istruzioni preparate, che secondo quanto riportato ha esito positivo. Riproduci il problema con unixODBC e DB2 su IBM i 7.4 usando Node.js 22, inclusi i casi con parametri INOUT e OUT; il lavoro è completato quando callProcedure termina senza segmentation fault.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Describe your system

  • odbc Package Version: 2.4.8
  • ODBC Driver: unixODBC
  • Database Name: DB2 on ibmi 7.4
  • Database Version:
  • Database OS:
  • Node.js Version: 22
  • Node.js OS: linux ubuntu

Describe the bug
calling function callProcedure on an open connection ends with a Segmentation fault. We've also tried with a prepared statement and the call to the same procedure works. Our procedure take only a varchar as a INOUT parameter. We've try with a char(500) as an IN parameter and a second OUT parameter, but the segmentation fault still appears. The input parameter is JSON string and we're expecting to retrieve a JSON object as string from the INOUT parameter.

the connection used is obtained from a pool

Expected behavior
no segmentation fault occurs when using the callProcedure function

To Reproduce
Steps to reproduce the behavior:

  1. Connect to database with options '...'
  2. Create database table '...'
  3. Run query '...'

Code
we used the following code to reproduce the issue

import odbc from 'odbc';


(async () => {
    const dsn = "<connection string>"
    let conn;
    try {
        conn = await odbc.connect(dsn);
        console.log("conn", conn.odbcConnection)
        console.log("connected", conn.connected)
        const data = {action: 'CR', data:{numcli: 103, price: 10}};
        console.log("data", data);

        const res = await conn.callProcedure(null, 'SCHEMA', 'TEST_PROC', [JSON.stringify(data)])
        console.log(res2)
    } catch (err) {
        console.error('oups something wrong happens!');
        console.error(err);
    } finally {
        if (conn) {
            await conn.close()
        }
    }
})();

Additional context
the application runs into a docker container with node-22-slim as base image

Lingua principale
JavaScript
Stelle
159
Fork
92
Merge medio
5h 59m
PR unite (30g)
3

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IBM/node-odbc

Tutte le issue di IBM/node-odbc

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.