oven-sh / bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
https://bun.sh
Other
72.33k stars 2.58k forks source link

error: internal error in file ../src/njsUtils.c, line 805 () #11851

Open Luk4h opened 1 month ago

Luk4h commented 1 month ago

What version of Bun is running?

1.1.13+bd6a60512

What platform is your computer?

Linux 6.5.0-35-generic x86_64 x86_64

What steps can reproduce the bug?

When trying to stablish a connection using OracleDb latest package in thick mode.

There is an example.js file in the package that is enough to reproduce the bug when passing the correct variables to use thick mode.

Running in thick mode
638 |     _initializeThinDriver();
639 |   }
640 |
641 |   const conn = new Connection();
642 |   conn._impl = new impl.ConnectionImpl();
643 |   await conn._impl.connect(options);
              ^
error: internal error in file ../src/njsUtils.c, line 805 ()
      at /home/***/Dev/***/node_modules/oracledb/lib/oracledb.js:643:9

What is the expected behavior?

To connect normally to the database.

What do you see instead?

Running in thick mode
638 |     _initializeThinDriver();
639 |   }
640 |
641 |   const conn = new Connection();
642 |   conn._impl = new impl.ConnectionImpl();
643 |   await conn._impl.connect(options);
              ^
error: internal error in file ../src/njsUtils.c, line 805 ()
      at /home/***/Dev/***/node_modules/oracledb/lib/oracledb.js:643:9

Additional information

I have also created an issue on OracleDb repository #1679, but since it shows the error from a C file the teams suggested for me to try get some support on Bun's repo as well.

pg-wtatum commented 1 month ago

I'm also facing the same issue -- looking to build a small utility application where bun compile would be an ideal why to distribute but I cannot proceed down that path due to blocker with oracledb in thick mode . A trivial reproduction is

import { createPool, initOracleClient } from "oracledb";

console.log("hello");
initOracleClient();
const pool = createPool({});
console.log("oracle");

Which produces this log output for me

> bun .\index.ts
hello
oracle
571 |
572 |   // create the pool, ensuring that the temporary pool alias cache is removed
573 |   // once this has completed (either successfully or unsuccessfully)
574 |   const pool = new Pool();
575 |   try {
576 |     await pool._impl.create(options);
                ^
error: internal error in file D:\git_files\node-oracledb\src\njsUtils.c, line 805 ()
 code: "internal error in file D"

      at C:\Users\wtatum\dev\code\scratch\node_modules\oracledb\lib\oracledb.js:576:11

Bun v1.1.10 (Windows x64)

Not sure if this is helpful but Deno can run the same file without any modification, and can successfully connect if the right credentials are given to the pool.

This is pretty easy to reproduce since you don't even need valid Oracle credentials (or a running server) to reach the crash.

Sorry the report isn't more helpful, I don't know enough about what's happening on the .c side of node, bun, or the oracle thick client to add much more there.