Closed biswajit415 closed 10 months ago
Please provide the platform that you are using and a simple test case to reproduce the issue Please migrate to our latest version 6.1 for all our latest features and bug fixes.
@sharadraju
Platform details:
Kubernetes (Linux ) Origin: Ubuntu Docker image : node16-alpine .
Simple test case: Execute any oracle(19c) function (Not procedure )
OracleConnection.execute(qryString, binds)
alpine base image does have problems . Do you have the full console prints when the error is seen? previous discussion here
@sharadraju
Issue is found.
Its a problem with data parsing .
It does not allow to pass non numeric data through bind schema. It gives sagmentation failure in LINUX environment only. It only allow to pass stringified data .
It's happening with any PL/SQL query of oracle.
Please investigate, it might have problem with memory allocation Internally for linux for number data.
@biswajit415 Please try this test case again with the latest version of node-oracledb version 6.2. A lot of enhancements and bug fixes have gone in the newer releases. It would be extremely helpful to us if you could confirm if this issue is still there in the latest version.
Also please refer to @sudarshan12s 's comment on alpine linux images. This should not be a problem with Thin mode introduced in node-oracledb 6.0 as the Thin Mode is written purely in JavaScript.
@biswajit415 Please let us know if you have tried with node-oracledb 6.2 as indicated in the previous comment.
I am closing this as there is no activity. Please feel free to reopen, once there is an update.
Node version:18 (alpine image) Oracle version: 19c Node oracle db: 5.5.0
Oracle function execution error:
npm ERR! path /usr/src
npm ERR! command failed
npm ERR! signal SIGSEGV.
Pl_SQL =
` DECLARE param number; v_return SYS_REFCURSOR;
BEGIN
param:= :param; v_return :=My_oracle_fn( param=>param ); :v_return := v_return; END;`
const bind= {
param: { val: 1234, dir: oracledb.BIND_IN, type: oracledb.NUMBER, maxSize: 10, },
v_return: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT, },
};
const result = await dbCon.execute(qry, schema);
Same implementation works with stored procedure in both environment.
Also cpu utilisation is not exceeding the limit in Kubernetes (linux)
There could have issue with oracle function execution in Linux environment.