Cube.js: JDBC driver installation fails

Created on 2 Nov 2020  Â·  3Comments  Â·  Source: cube-js/cube.js

Describe the bug
After running the create command cubejs create cubejs-jdbc -d jdbc the build fails during the phase "Installing DB driver dependencies".

Full log: 2020-11-02_jdbc.log
Log snippet:

[email protected] install /home/allu/dev/cubejs-jdbc/node_modules/java
> node-gyp rebuild

make: Entering directory '/home/allu/dev/cubejs-jdbc/node_modules/java/build'
  CXX(target) Release/obj.target/nodejavabridge_bindings/src/java.o
In file included from ../../nan/nan_converters.h:67,
                 from ../../nan/nan.h:221,
                 from ../src/java.h:9,
                 from ../src/java.cpp:1:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
../../nan/nan_converters_43_inl.h:18:49: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
   18 |       val->To ## TYPE(isolate->GetCurrentContext())                            \
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                 |
      |                                                 v8::Local<v8::Context>

To Reproduce
Run the CLI command cubejs create cubejs-jdbc -d jdbc.

Expected behavior
The JDBC driver is installed.

Screenshots

Version:
0.21.1

Additional context

$ node -v
v14.4.0
$ npm -v
6.14.5
$ python --version
Python 2.7.18
$ mvn -v
Apache Maven 3.6.3 (NON-CANONICAL_2019-11-27T20:26:29Z_root)
Maven home: /opt/maven
Java version: 11.0.8, vendor: N/A, runtime: /usr/lib/jvm/java-11-openjdk
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.8.16-2-manjaro", arch: "amd64", family: "unix"
bug

All 3 comments

In fact, I cannot install @cubejs-backend/[email protected] at all. A workaround I found was to patch node-java with the version 0.12.1 in package.json, but this is of course very hacky and only works with yarn:

  "dependencies": {
    "@cubejs-backend/jdbc-driver": "0.21.1",
    "@cubejs-backend/server": "0.21.1"
  },
  "resolutions": {
    "@cubejs-backend/jdbc-driver/jdbc/java": "0.12.1"
  }

I noticed the newest version of the jdbc npm package ([email protected]) already uses [email protected], but @cubejs-backend/[email protected] uses [email protected].

Hello @LexLuengas,

The JDBC driver is outdated and ignored on our CI because it's working on Node.js <= 8. It requires migration from one JDBC vendor to another because the current one is outdated and not supported.

Thanks

Thank you very much.

Was this page helpful?
0 / 5 - 0 ratings