[SOLVED] Issues when updating to 0.32.2

Hi there, guys!

I'm using 0.31.0, and I'm also trying to take a look at 0.32. I'm doing it locally, of course (windows 10 machine).

First of all, I can open all my questions, and they will run good and proper. But, when it comes to edit them... lets break in native and non native.

For native questions: I can't see the query variables. They are there, they show in the interface, but I can't edit them. Example:

I can save this old question as a new one. If I insert a variable, then it shows up, but it won't let me select it as a field type. click the button, and metabase just ignores it. Which leads me to...

Non native questions: well, here lies serious trouble. It won't even show the query builder at all:

. THe question will run alright, though.

Besides that, If I try to start a new question, the query builder is shown, but it won't load my databases at all - it just displays "loading" indefinitely.

When I go to admin panel, my databases as all listed, as usual, but my metadata stength has disappeared (despite all fields in the tables I'm refering to having been properly renamed and described).

Not sure if relevant, but I'm running 0.32.2 on 3001 port, via the MB_JETTY_PORT environment variable.
On my running instance, I have downloaded a jar file and saved it on the plugins folder, in order to access an Oracle database instance - that was working finely. Once I ran 0.32.2 jar file, it saved many jar files to the plugins directory, and got rid of my old one. This might be relevant, since this particular error keeps popping all the time (from metabase start to questions running):
{:message "Could not locate metabase/driver/oracle__init.class, metabase/driver/oracle.clj or metabase/driver/oracle.cljc on classpath.",
:type java.io.FileNotFoundException,
:stacktrace
("clojure.lang.RT.load(RT.java:466)"
"clojure.lang.RT.load(RT.java:428)"
"clojure.core$load$fn__6824.invoke(core.clj:6126)"
"clojure.core$load.invokeStatic(core.clj:6125)"
"clojure.core$load.doInvoke(core.clj:6109)"
"clojure.lang.RestFn.invoke(RestFn.java:408)"
"clojure.core$load_one.invokeStatic(core.clj:5908)"
"clojure.core$load_one.invoke(core.clj:5903)"
"clojure.core$load_lib$fn__6765.invoke(core.clj:5948)"
"clojure.core$load_lib.invokeStatic(core.clj:5947)"
"clojure.core$load_lib.doInvoke(core.clj:5928)"
"clojure.lang.RestFn.applyTo(RestFn.java:142)"
"clojure.core$apply.invokeStatic(core.clj:667)"
"clojure.core$load_libs.invokeStatic(core.clj:5985)"
"clojure.core$load_libs.doInvoke(core.clj:5969)"
"clojure.lang.RestFn.applyTo(RestFn.java:137)"
"clojure.core$apply.invokeStatic(core.clj:667)"
"clojure.core$require.invokeStatic(core.clj:6007)"
"clojure.core$require.doInvoke(core.clj:6007)"
"clojure.lang.RestFn.applyTo(RestFn.java:137)"
"clojure.core$apply.invokeStatic(core.clj:667)"
"clojure.core$apply.invoke(core.clj:660)"
"--> driver$require_driver_ns.invokeStatic(driver.clj:104)"
"driver$require_driver_ns.doInvoke(driver.clj:90)"
"driver$load_driver_namespace_if_needed.invokeStatic(driver.clj:118)"
"driver$load_driver_namespace_if_needed.invoke(driver.clj:106)"
"driver$fn__17791$the_driver__17796$fn__17797.invoke(driver.clj:145)"
"driver$fn__17791$the_driver__17796.invoke(driver.clj:126)"
"driver$the_initialized_driver.invokeStatic(driver.clj:267)"
"driver$the_initialized_driver.invoke(driver.clj:264)"
"driver$dispatch_on_initialized_driver.invokeStatic(driver.clj:276)"
"driver$dispatch_on_initialized_driver.doInvoke(driver.clj:271)"
"driver$fn__17900$fn__17901.invoke(driver.clj:537)"
"api.database$card_database_supports_nested_queries_QMARK_.invokeStatic(database.clj:78)"
"api.database$card_database_supports_nested_queries_QMARK_.invoke(database.clj:75)"
"api.database$source_query_cards.invokeStatic(database.clj:116)"
"api.database$source_query_cards.invoke(database.clj:106)"
"api.database$cards_virtual_tables.invokeStatic(database.clj:123)"
"api.database$cards_virtual_tables.doInvoke(database.clj:118)"
"api.database$saved_cards_virtual_db_metadata.invokeStatic(database.clj:128)"
"api.database$saved_cards_virtual_db_metadata.doInvoke(database.clj:126)"
"api.database$add_virtual_tables_for_saved_cards.invokeStatic(database.clj:137)"
"api.database$add_virtual_tables_for_saved_cards.invoke(database.clj:136)"
"api.database$dbs_list.invokeStatic(database.clj:144)"
"api.database$dbs_list.invoke(database.clj:142)"
"api.database$fn__47559.invokeStatic(database.clj:155)"
"api.database$fn__47559.invoke(database.clj:148)"
"middleware.auth$enforce_authentication$fn__59512.invoke(auth.clj:14)"
"routes$fn__61037$fn__61038.doInvoke(routes.clj:113)"
"middleware.exceptions$catch_uncaught_exceptions$fn__59603.invoke(exceptions.clj:104)"
"middleware.exceptions$catch_api_exceptions$fn__59600.invoke(exceptions.clj:92)"
"middleware.log$log_api_call$fn__60913$fn__60914.invoke(log.clj:73)"
"middleware.log$log_api_call$fn__60913.invoke(log.clj:66)"
"middleware.security$add_security_headers$fn__59566.invoke(security.clj:102)"
"middleware.json$wrap_json_body$fn__60736.invoke(json.clj:61)"
"middleware.json$wrap_streamed_json_response$fn__60754.invoke(json.clj:120)"
"middleware.session$bind_current_user$fn__58221$fn__58222.invoke(session.clj:186)"
"middleware.session$do_with_current_user.invokeStatic(session.clj:169)"
"middleware.session$do_with_current_user.invoke(session.clj:163)"
"middleware.session$bind_current_user$fn__58221.invoke(session.clj:185)"
"middleware.session$wrap_current_user_id$fn__58210.invoke(session.clj:154)"
"middleware.session$wrap_session_id$fn__58195.invoke(session.clj:116)"
"middleware.auth$wrap_api_key$fn__59520.invoke(auth.clj:27)"
"middleware.misc$maybe_set_site_url$fn__60980.invoke(misc.clj:54)"
"middleware.misc$bind_user_locale$fn__60983.invoke(misc.clj:70)"
"middleware.misc$add_content_type$fn__60970.invoke(misc.clj:29)"
"middleware.misc$wrap_gzip$fn__60998.invoke(misc.clj:97)")}

Ok, this is odd. I took that old driver I had used before to access the Oracle database, and saved it once again on my plugins folder.

Not only could I access the Oracle database itself, but, apart from the rather minor metadata strength loss, all other issues are gone for good.

@lucas.lima
When you start 0.32, it will extract all the included drivers in the JAR-file to the path of the MB_PLUGINS_DIR environment variable.
You need to add ojdbc8.jar to the same directory for Metabase to load the Oracle driver.
And have a look in the log, it will report which driver is being loaded.

Thanks for the comment. As I said while you were typing (this feature on the forum is funny), I did exactly what you said, and everything worked fine. I just didn’t expect to see such a mess for a single missing driver. Thanks, once again!

By the way, not sure about where to say this (last time there was a post to send feedbacks, not this time, though), but now the MB team has got the date formatting right - even month names are being correctly translated, and I’m in sheer love for it. MB team never lets me down.

1 Like