Open ChaosEngine opened 1 week ago
Please test it with node-oracledb Thick mode in node-oracledb versions 6.5 and above and let us know if you are able to make the connection.
@ChaosEngine , Can you please confirm if this patch on node-oracledb 6.6.0 works for you?
diff --git a/lib/thin/connection.js b/lib/thin/connection.js
index 6d9d4f05d..84e2d4f02 100644
--- a/lib/thin/connection.js
+++ b/lib/thin/connection.js
@@ -797,8 +797,11 @@ class ThinConnectionImpl extends ConnectionImpl {
await this._protocol._processMessage(authMessage);
}
} else {
+ const endOfRequestSupport = this.nscon.endOfRequestSupport;
+ this.nscon.endOfRequestSupport = false;
await this._protocol._processMessage(protocolMessage);
await this._protocol._processMessage(dataTypeMessage);
+ this.nscon.endOfRequestSupport = endOfRequestSupport;
await this._protocol._processMessage(authMessage);
}
if (!params.token) { // non-token Authentication
If it does not help, please share console prints after setting the below env:
NODE_ORACLEDB_DEBUG_PACKETS=1
@ChaosEngine , Can you please confirm if this patch on node-oracledb 6.6.0 works for you?
diff --git a/lib/thin/connection.js b/lib/thin/connection.js index 6d9d4f05d..84e2d4f02 100644 --- a/lib/thin/connection.js +++ b/lib/thin/connection.js @@ -797,8 +797,11 @@ class ThinConnectionImpl extends ConnectionImpl { await this._protocol._processMessage(authMessage); } } else { + const endOfRequestSupport = this.nscon.endOfRequestSupport; + this.nscon.endOfRequestSupport = false; await this._protocol._processMessage(protocolMessage); await this._protocol._processMessage(dataTypeMessage); + this.nscon.endOfRequestSupport = endOfRequestSupport; await this._protocol._processMessage(authMessage); } if (!params.token) { // non-token Authentication
This patch works both on linux and windows. And with thin driver mode. Thank You. How this will be somehow addressed in next release? Any idea what might be the main culprit?
Please test it with node-oracledb Thick mode in node-oracledb versions 6.5 and above and let us know if you are able to make the connection.
I'd rather stick thin mode instead unnecessarily bundling instant client inside docker image ;->
@ChaosEngine , Can you please confirm if this patch on node-oracledb 6.6.0 works for you?
diff --git a/lib/thin/connection.js b/lib/thin/connection.js index 6d9d4f05d..84e2d4f02 100644 --- a/lib/thin/connection.js +++ b/lib/thin/connection.js @@ -797,8 +797,11 @@ class ThinConnectionImpl extends ConnectionImpl { await this._protocol._processMessage(authMessage); } } else { + const endOfRequestSupport = this.nscon.endOfRequestSupport; + this.nscon.endOfRequestSupport = false; await this._protocol._processMessage(protocolMessage); await this._protocol._processMessage(dataTypeMessage); + this.nscon.endOfRequestSupport = endOfRequestSupport; await this._protocol._processMessage(authMessage); } if (!params.token) { // non-token Authentication
This patch works both on linux and windows. And with thin driver mode. Thank You. How this will be somehow addressed in next release? Any idea what might be the main culprit?
Thanks for checking. Yes the fix is already part of coming release . It was seen with specific setting (disabling fast auth) for few ADBs instances.
Please test it with node-oracledb Thick mode in node-oracledb versions 6.5 and above and let us know if you are able to make the connection.
I'd rather stick thin mode instead unnecessarily bundling instant client inside docker image ;->
Since the patch has worked, I guess we do not need to test with Thick mode. We generally request users to test with Thick mode to narrow down the source of the issue to any Thin-mode related changes.
Driver mode: thin
Is it an error or a hang or a crash? Error when trying to establish connection to Oracle OPCI ADB 23ai with mTLS wallet connection.
What error(s) or behavior you are seeing?
Error on Linux:
Error on Windows:
Repro using https://github.com/ChaosEngine/serverless-scaleway-apollo-typescript.git project on oracle branch and ADB with mTLS wallet with some password:
Verification - open browser to http://localhost:8081/ and execute following graphql
This should work returning some results
Now breaking it by updating to newest oracldb-6.6.0 (or >oracldb-6.4.0) version
Now it does not work giving Error:
NJS-500: connection to the Oracle Database was broken
Solution: As suggested here patching solves the issue with oracledb-6.6.0