Oracle driver build failed running ./bin/build


So I upgraded my version metabase by pulling the latest master branch. When I run ./bin/build, the metabase.jar file is successfully built but I get this errors:

Checksum has changed.
Verifying oracle driver...
Checking whether resources/modules/oracle.metabase-driver.jar exists....
File does not exist. Driver verification failed.
No existing build, or existing build is invalid. (Re)building driver.
Deleting old versions of oracle driver...
metabase-core already installed to local Maven repo.
Metabase uberjar already built.
Building parent drivers (if needed)...
Building oracle driver...
Leiningen's classpath: :/usr/local/Cellar/leiningen/2.9.1/libexec/leiningen-2.9.1-standalone.jar
Applying task uberjar to []
Applying task javac to nil
Running javac with [-target 1.8 -source 1.8 @/var/folders/6g/f32x2l6s2196t5h9tz95cqmm0000gn/T/.leiningen-cmdline7058919073825411262.tmp]
Applying task compile to nil
log4j:ERROR Could not find value for key log4j.appender.metabase
log4j:ERROR Could not instantiate appender named "metabase".
10-24 06:45:33 DEBUG plugins.classloader :: Using NEWLY CREATED classloader as shared context classloader: clojure.lang.DynamicClassLoader@eb6ec6
10-24 06:45:33 DEBUG plugins.classloader :: Setting current thread context classloader to shared classloader clojure.lang.DynamicClassLoader@eb6ec6...
Syntax error macroexpanding at (oracle.clj:1:1).
Execution error (ClassNotFoundException) at (

Error: could not find /Users/Mayowa/metabase/modules/drivers/oracle/target/uberjar/oracle.metabase-driver.jar. Build failed.

How do I clear this error. I read somewhere that if I delete the modules/drivers/oracle folder, the error should be cleared. But then I won’t be able to connect to an oracle db.

I know it may have something to do with ojdbc8.jar file not present somewhere, I have downloaded the file, but know not how to make it available for the driver build process. I am at a loss here. Please help me

Hi @VanPaitin
Please post the output of:

java -version
nodejs --version
lein --version
yarn --version
lsb_release -d
git log -1 --format="commit %H"
git status | head -1

The file ojdbc8.jar is not needed to build the driver. But you need it as dependent of the Oracle driver if you want to use it in Metabase.
Also, I would recommend that you use the branch release-0.33.x currently, since it’s a bit more stable than master.

Hi @flamber

java -version:

java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode) 

nodejs --version: 11.0.0

lein --version: Leiningen 2.9.1 on Java 1.8.0_231 Java HotSpot(TM) 64-Bit Server VM

yarn --version: 1.17.3

lsb_release: command not found

git log -1 --format=“commit %H”: commit 18da2fe56cfb6a2bc510ee6755f558a72c964e52
the above commit hash was the latest as at when I upgraded

git status | head -1: On branch
this is from my forked version

@VanPaitin It’s very late for me, so I cannot run a build right now (takes too long), but I would think this might be caused by the commit you branched from.
I would recommend that you start from the tag v0.33.4 or stay on the current active branch release-0.33.x
Which OS are you running on, since you don’t have lsb_release ?

I am running on MacOS. In the mean time, Iet me use 0.33.x as you have advised. Hopefully it gets resolved before you resume work tomorrow. I will let you know.

Thanks for your time @flamber

Thanks for your help @flamber I think the issue is with that commit, I used the currently active branch release-0.33.x as you suggested and the oracle driver was built successfully.

1 Like

@VanPaitin Awesome. There’s many big timezone changes to master currently (which will land in 0.34.0), so that’s why I thought it might be caused by that. Which is also why I recommend building on a tag or the current release-0.33.x

Same here on master actually. I merged some changes from release-0.33.x a couple of weeks ago which is when I first noticed it.

The oracle driver shouldn’t even be compiling without the other prerequisites as far as I remember so it sounds like something is up.