apache / kyuubi

Apache Kyuubi is a distributed and multi-tenant gateway to provide serverless SQL on data warehouses and lakehouses.
https://kyuubi.apache.org/
Apache License 2.0
2.07k stars 903 forks source link

[Bug] kyuubi-hive-jdbc-shaded should not contains slf4j package #4659

Open zyclove opened 1 year ago

zyclove commented 1 year ago

Code of Conduct

Search before asking

Describe the bug

org.apache.kyuubi kyuubi-hive-jdbc-shaded 1.7.0

it contains slf4j, but conflicts with slf4j. image image

Could you solve and upgrade it as soon as possible, thank you.

Best regards

Affects Version(s)

1.7.0

Kyuubi Server Log Output

No response

Kyuubi Engine Log Output

No response

Kyuubi Server Configurations

No response

Kyuubi Engine Configurations

No response

Additional context

No response

Are you willing to submit PR?

pan3793 commented 1 year ago

This is kinda relocation leak, but I suppose slf4j 1.7.36 should be compatible w/ 1.7.35, could you provide more stacktrace (please use text instead of picture)?

zyclove commented 1 year ago
Caused by: java.lang.reflect.InvocationTargetException: null
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.alipay.sofa.ark.support.startup.EmbedSofaArkBootstrap.deployStaticBizAfterEmbedMasterBizStarted(EmbedSofaArkBootstrap.java:103)
    ... 17 common frames omitted
Caused by: com.alipay.sofa.ark.exception.ArkRuntimeException: java.lang.LinkageError: loader constraint violation: when resolving method 'org.slf4j.ILoggerFactory org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()' the class loader com.alipay.sofa.ark.container.service.classloader.BizClassLoader @67c2ff5d of the current class, org/slf4j/LoggerFactory, and the class loader 'app' for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature (org.slf4j.LoggerFactory is in unnamed module of loader com.alipay.sofa.ark.container.service.classloader.BizClassLoader @67c2ff5d, parent loader 'bootstrap'; org.slf4j.impl.StaticLoggerBinder is in unnamed module of loader 'app')
    at com.alipay.sofa.ark.container.service.biz.DefaultBizDeployer.deploy(DefaultBizDeployer.java:61)
    at com.alipay.sofa.ark.container.service.biz.BizDeployServiceImpl.deploy(BizDeployServiceImpl.java:55)
    at com.alipay.sofa.ark.container.pipeline.DeployBizStage.processStaticBiz(DeployBizStage.java:56)
    at com.alipay.sofa.ark.container.ArkContainer.deployBizAfterMasterBizReady(ArkContainer.java:168)
    ... 22 common frames omitted
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method 'org.slf4j.ILoggerFactory org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()' the class loader com.alipay.sofa.ark.container.service.classloader.BizClassLoader @67c2ff5d of the current class, org/slf4j/LoggerFactory, and the class loader 'app' for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature (org.slf4j.LoggerFactory is in unnamed module of loader com.alipay.sofa.ark.container.service.classloader.BizClassLoader @67c2ff5d, parent loader 'bootstrap'; org.slf4j.impl.StaticLoggerBinder is in unnamed module of loader 'app')
    **at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:423)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)**

Just for , kyuubi-hive-jdbc-shaded inner has org.slf4j package, as follows. image

I will try upgrade slf4j to 1.7.36, but i think do not work too. Thanks .

zyclove commented 1 year ago

image As expected it doesn't work. Why does kyuubi-hive-jdbc-shaded include slf4j dependencies internally? image image Is it because no one else is using.

pan3793 commented 1 year ago

As a workaround, you can use the vanilla driver instead kyuubi-hive-jdbc

zyclove commented 1 year ago

As a workaround, you can use the vanilla driver instead kyuubi-hive-jdbc

Use kyuubi-hive-jdbc , it's ok now. Thank u.