Segmentation fault in fetchAll()

Issue #8 resolved
mengxumx created an issue

Some optimization options in gcc -O2 lead to memory segmentation fault in fetchAll().

const db = require('/QOpenSys/QIBM/ProdData/OPS/Node6/os400/db2i/lib/db2a');
let dbConn = new db.dbconn();
dbConn.debug(true);
dbConn.conn('*LOCAL');

for(let i=0; i<1000; i++) {
       let stmt = new db.dbstmt(dbConn);
       stmt.prepare('SELECT * FROM QIWS.QCUSTCDT WHERE CDTLMT > ?', err => {
              let id = Math.floor(Math.random() * 1000);
              // console.log('Random ID:', id);
              let params = [
                     [id, db.SQL_PARAM_INPUT, 2]
              ];
              stmt.bindParam(params, err => {
                     stmt.execute(err => {
                           stmt.fetchAll(results => {
                                  // console.log('Iteration', i, id, results.length);
                                  // stmt.close();
                           });
                     });
              });
       });
}
SQLExecute(0):
FetchAllAsync().
Can not allocate rowData[9] 
Segmentation fault (core dumped) 

02:42:28: Segmentation fault in . at 0xf014
0x0000f014 (dbx) where
.() at 0xf014
unnamed block in eh_alloc._GLOBAL__I_65535_0_.._.._.._.._.._gcc_4.8.2_libstdc___v3_libsupc___eh_alloc.cc_34457AA0_0(??), line 223 in "eh_alloc.cc"
unnamed block in eh_alloc._GLOBAL__I_65535_0_.._.._.._.._.._gcc_4.8.2_libstdc___v3_libsupc___eh_alloc.cc_34457AA0_0(??), line 223 in "eh_alloc.cc"
unnamed block in eh_alloc._GLOBAL__I_65535_0_.._.._.._.._.._gcc_4.8.2_libstdc___v3_libsupc___eh_alloc.cc_34457AA0_0(??), line 223 in "eh_alloc.cc"
eh_alloc._GLOBAL__I_65535_0_.._.._.._.._.._gcc_4.8.2_libstdc___v3_libsupc___eh_alloc.cc_34457AA0_0(??), line 223 in "eh_alloc.cc"
uv__queue_work(w = ??), line 244 in "threadpool.c"
worker(arg = ??), line 95 in "threadpool.c" 
(dbx) 0xD39D2188 /10 i
0xd39d2188 ($b43280)      60000000         ori   r0,r0,0x0
0xd39d218c ($b43279+0x4)  a93b0a70         lha   r9,0xa70(r27)
0xd39d2190 ($b43279+0x8)  7f89e000         cmp   cr7,0x0,r9,r28
0xd39d2194 ($b43279+0xc)  419dff98         bgt   cr7,0xd39d212c (_ZN6DbStmt16FetchAllAsyncRunEP9uv_work_s+0xa0)
0xd39d2198 ($b43279+0x10) 813b0a80         lwz   r9,0xa80(r27)
0xd39d219c ($b43279+0x14) 815b0a84         lwz   r10,0xa84(r27)
0xd39d21a0 ($b43279+0x18) 7f895000         cmp   cr7,0x0,r9,r10
0xd39d21a4 ($b43279+0x1c) 419e00d8         beq   cr7,0xd39d227c ($b43279+0xf4)
0xd39d21a8 ($b43279+0x20) 2f890000        cmpi   cr7,0x0,r9,0x0
0xd39d21ac ($b43279+0x24) 815f0038         lwz   r10,0x38(r31)

Comments (2)

  1. Log in to comment