Re: [I] Question regarding the jdbc driver with Java > 8 (drill)

2024-02-26 Thread via GitHub


jnturton commented on issue #2882:
URL: https://github.com/apache/drill/issues/2882#issuecomment-1965733063

   Hi. To this day, every binary distribution of Drill released by the project, 
including the published Maven artifacts, maintains JDK 8 compatibility. Even 
when that distro is bundled with a newer JDK, e.g. the Docker image based on 
JDK 17.
   
   > We are using maven as a build system and have 
org.apache.drill.exec:drill-jdbc:jar:1.21.0 as a dependency
   
   @Der-Joscha, please use the artifact 
org.apache.drill.exec:drill-jdbc-all:jar:1.21.0 instead, this is the JDBC 
driver repackaged for distribution.
   
   > Drill is tested against Java 8, 11, and 17. I had always assumed the same 
is true of Drill's JDBC driver, but it seems now that might not be the case?
   
   It is the case. The _repackaged_ driver, jdbc-all, is [only minimally 
tested](https://github.com/apache/drill/actions/runs/7780452805/job/21213166830#step:5:24009)
 but I, for one, use it locally under Java 17.
   
   > Do you know whether the JDBC driver gets updated in mvncentral when we do 
updates?
   
   It does, [here are the artifacts for 
1.21.1](https://repository.apache.org/content/repositories/releases/org/apache/drill/exec/drill-jdbc-all/1.21.1/).
   
   @Der-Joscha let us know if the module access errors are resolved when you 
switch to jdbc-all.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] DRILL-8475: Update the binary distributions LICENSE (drill)

2024-02-26 Thread via GitHub


cgivre merged PR #2879:
URL: https://github.com/apache/drill/pull/2879


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [I] Question regarding the jdbc driver with Java > 8 (drill)

2024-02-26 Thread via GitHub


Der-Joscha commented on issue #2882:
URL: https://github.com/apache/drill/issues/2882#issuecomment-1965231451

   Is there anything I should have done except changing `maven.compiler.source` 
and `maven.compiler.target` to 17?
   With this configuration, it seems, that `--add-opens 
java.base/java.lang=ALL-UNNAMED` is still required (regardless of whether there 
is module-info in my source tree).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [I] Question regarding the jdbc driver with Java > 8 (drill)

2024-02-26 Thread via GitHub


cgivre commented on issue #2882:
URL: https://github.com/apache/drill/issues/2882#issuecomment-1964358761

   @Der-Joscha One thing... Drill's JDBC driver is located here [1].  You might 
try building and running that yourself with Java 17 and seeing if that works.
   
   
   [1]: https://github.com/apache/drill/tree/master/exec/jdbc


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [I] Question regarding the jdbc driver with Java > 8 (drill)

2024-02-26 Thread via GitHub


cgivre commented on issue #2882:
URL: https://github.com/apache/drill/issues/2882#issuecomment-1964350759

   @Der-Joscha This is the right place, and we can help you out with this.  I'm 
wondering if we are simply not updating what is in maven.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [I] Question regarding the jdbc driver with Java > 8 (drill)

2024-02-26 Thread via GitHub


Der-Joscha commented on issue #2882:
URL: https://github.com/apache/drill/issues/2882#issuecomment-1964342062

   Thanks for your fast reply, I did not find an alternative artifact in the 
mvnrepository that indicates it is made for java 11 or 17. 
   Do you know who I can ask, if this is not the right place?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[I] Question regarding the jdbc driver with Java > 8 (drill)

2024-02-26 Thread via GitHub


Der-Joscha opened a new issue, #2882:
URL: https://github.com/apache/drill/issues/2882

   Hello,
   
   I am currently working on an application with java 21 that uses the jdbc 
driver from drill to execute distributed sql queries. 
   Since the module system was introduced with Java 9, we get exceptions on 
startup that drill cannot patch various dependencies (see stacktrace below). I 
am aware that drill tries to access classes that are not exported via 
reflection, which fails for obvious reasons.
   
   What I already did:
   - See if there are versions that supprot java>8. I found docker images that 
use java 17, but I have not found a jdbc driver that supports this version
   - Add `--add-opens java.base/java.lang=ALL-UNNAMED` to the jvm at runtime, 
which resolves the issue but is rather unappealing workaround as some drill 
images seem to support java>8
   
   Our setup is the following:
   - We are using java 21 and unfortunately cannot downgrade to java 8 due to 
other dependencies.
   - We are using maven as a build system and have 
`org.apache.drill.exec:drill-jdbc:jar:1.21.0` as a dependency
   
   Is there a possibility to use the drill jdbc driver with a java version > 8, 
or are we stuck with our workaround?
   I will happily provide more information if needed.
   Thanks in advance.
   
   
   
   Stacktrace
   org.apache.drill.common.util.ProtobufPatcher patchByteString
   2024-02-26T12:45:13.072736994Z WARNING: Unable to patch Protobuf.
   2024-02-26T12:45:13.072742894Z 
java.lang.reflect.InaccessibleObjectException: Unable to make protected final 
java.lang.Class 
java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
 throws java.lang.ClassFormatError accessible: module java.base does not "opens 
java.lang" to unnamed module @edc0eb6
   2024-02-26T12:45:13.072747295Z   at 
java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)
   2024-02-26T12:45:13.072750695Z   at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367)
   2024-02-26T12:45:13.072753895Z   at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315)
   2024-02-26T12:45:13.072756995Z   at 
java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:203)
   2024-02-26T12:45:13.072759795Z   at 
java.base/java.lang.reflect.Method.setAccessible(Method.java:197)
   2024-02-26T12:45:13.072762695Z   at 
javassist.util.proxy.SecurityActions.setAccessible(SecurityActions.java:159)
   2024-02-26T12:45:13.072765296Z   at 
javassist.util.proxy.DefineClassHelper$JavaOther.defineClass(DefineClassHelper.java:213)
   2024-02-26T12:45:13.072767696Z   at 
javassist.util.proxy.DefineClassHelper$Java11.defineClass(DefineClassHelper.java:52)
   2024-02-26T12:45:13.072770496Z   at 
javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:260)
   2024-02-26T12:45:13.072774596Z   at 
javassist.ClassPool.toClass(ClassPool.java:1240)
   2024-02-26T12:45:13.072792697Z   at 
javassist.ClassPool.toClass(ClassPool.java:1098)
   2024-02-26T12:45:13.072796597Z   at 
javassist.ClassPool.toClass(ClassPool.java:1056)
   2024-02-26T12:45:13.072799497Z   at 
javassist.CtClass.toClass(CtClass.java:1298)
   2024-02-26T12:45:13.072802398Z   at 
org.apache.drill.common.util.ProtobufPatcher.patchByteString(ProtobufPatcher.java:77)
   2024-02-26T12:45:13.072805198Z   at 
org.apache.drill.common.util.ProtobufPatcher.patch(ProtobufPatcher.java:48)
   2024-02-26T12:45:13.072808098Z   at 
org.apache.drill.jdbc.Driver.(Driver.java:46)
   2024-02-26T12:45:13.072811198Z   at 
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
   2024-02-26T12:45:13.072813898Z   at 
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
   2024-02-26T12:45:13.072816798Z   at 
java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
   2024-02-26T12:45:13.072820999Z   at 
java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103)
   2024-02-26T12:45:13.072823999Z   at 
java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200)
   2024-02-26T12:45:13.072827499Z   at 
java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549)
   2024-02-26T12:45:13.072830299Z   at 
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
   2024-02-26T12:45:13.072832999Z   at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
   2024-02-26T12:45:13.072835899Z   at 
java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789)
   2024-02-26T12:45:13.072838699Z   at