Skip to content

Cube Cloud stopped working with databricks (Multiple entries with same key error) #9419

@Klimmy

Description

@Klimmy

Describe the bug
Starting from the version 1.2.28 it seems that Cube Cloud stopped working with Databricks. At least in our setup.
It works fine with 1.2.27.

We've got this error when trying to run something in the Playground (I replaced actual token with <databricks_token>):

Error running static method java.lang.IllegalArgumentException: Multiple entries with same key: pwd=<databricks_token> and pwd=<databricks_token> at com.databricks.internal.google.common.collect.ImmutableMap.conflictException(ImmutableMap.java:382) at com.databricks.internal.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:376) at com.databricks.internal.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:246) at com.databricks.internal.google.common.collect.RegularImmutableMap.fromEntryArrayCheckingBucketOverflow(RegularImmutableMap.java:133) at com.databricks.internal.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:95) at com.databricks.internal.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:576) at com.databricks.internal.google.common.collect.ImmutableMap$Builder.buildOrThrow(ImmutableMap.java:604) at com.databricks.internal.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:591) at com.databricks.jdbc.api.impl.DatabricksConnectionContext.buildPropertiesMap(DatabricksConnectionContext.java:88) at com.databricks.jdbc.api.impl.DatabricksConnectionContext.parse(DatabricksConnectionContext.java:130) at com.databricks.jdbc.api.impl.DatabricksConnectionContextFactory.create(DatabricksConnectionContextFactory.java:20) at com.databricks.client.jdbc.Driver.connect(Driver.java:59) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:190) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at node.MethodCallBaton.invokeMethod9(MethodCallBaton.java:25)

The PWD in URL is deprecated, so when we remove it from the CUBEJS_DB_DATABRICKS_URL environment variable we've got similar error, but with uid key duplication problem:

Error running static method java.lang.IllegalArgumentException: Multiple entries with same key: uid=token and uid=token at
...

Removing further uid from the CUBEJS_DB_DATABRICKS_URL leads to this error:

Error running static method com.databricks.jdbc.exception.DatabricksSQLException: Error initializing the Java Util Logger (JUL) with error: 
...

Version:
1.2.28

Additional context
Databricks-related envrionment variables we use:
CUBEJS_DB_TYPE=databricks-jdbc
CUBEJS_DB_DATABRICKS_URL
CUBEJS_DB_DATABRICKS_TOKEN

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions