Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java 11 compatibility #5589

Closed
drcrallen opened this issue Apr 6, 2018 · 28 comments
Closed

Java 11 compatibility #5589

drcrallen opened this issue Apr 6, 2018 · 28 comments

Comments

@drcrallen
Copy link
Contributor

Java 11 is the next LTS for the JRE http://www.oracle.com/technetwork/java/javase/tech/eol-135779.html and is currently anticipated to be released sometime in September 2018. This ask is that, when available, Druid is compatible with running on the next long term supported java version.

@leventov
Copy link
Member

leventov commented Apr 6, 2018

Just for reference, #4907 should be fixed first

@itanoss
Copy link

itanoss commented Jun 18, 2019

Now it is failed to launch druid with the tutorial under JDK 11:

apache-druid-0.14.2-incubating$ bin/supervise -c quickstart/tutorial/conf/tutorial-cluster.conf
Please upgrade to Java 8 or better! Your current version is 11.0.2

@jihoonson
Copy link
Contributor

Hi @itanoss, we don't support Java 11 yet.

@SSSSeb
Copy link

SSSSeb commented Aug 19, 2019

+1 on this issue, is there any ETA or anymore information about this topic ? Thanks a lot.

xvrl added a commit that referenced this issue Aug 25, 2019
* Fallback to parsing classpath for hadoop task in Java 9+
In Java 9 and above we cannot assume that the system classloader is an
instance of URLClassLoader. This change adds a fallback method to parse
the system classpath in that case, and adds a unit test to validate it matches
what JDK8 would do.

Note: This has not been tested in an actual hadoop setup, so this is mostly
to help us pass unit tests.

* Remove granularity test of dubious value
One of our granularity tests relies on system classloader being a URLClassLoaders to
catch a bug related to class initialization and static initializers using a subclass (see
#2979)
This test was added to catch a potential regression, but it assumes we would add back
the same type of static initializers to this specific class, so it seems to be of dubious value
as a unit test and mostly serves to illustrate the bug.

relates to #5589
@clintropolis
Copy link
Member

FYI, the current state of this is that stuff appears to be basically working, minus Hadoop indexing as detailed in #8591. I am able to successfully run through the native batch 'quickstart' with java 11 and 12, query the data, and so on.

Per this dev list thread I think we are going to defer claiming 'experimental' support for Java 11+ in a release until integration tests using Java 11 have been added. Currently all of the unit tests are being run with jdk11, so the adventurous among us might have some luck experimenting with Druid 0.16.0+ on newer versions of Java.

@gianm
Copy link
Contributor

gianm commented Oct 22, 2019

An update - there are also issues with the DataSketches extension on Java 11, explained in #8647. Even though the tests pass on JDK 11 in master, the library doesn't officially support Java 11 and has some functionality that doesn't work right when run there.

@maytasm
Copy link
Contributor

maytasm commented Jan 28, 2020

Adding integration tests for Java 11.

  • Running our set of integration test compile using Java 11 and runtime using Java 11
  • Running our set of integration test compile using Java 11 and runtime using Java 8

PR: #9249

@tanisdlj
Copy link

tanisdlj commented Jun 4, 2021

Any news on this topic? It's been 3 years since the release of Java 11 with several improvements in GC and performance in general. Is there any plan or ETA for the support? :S

@xvrl
Copy link
Member

xvrl commented Jun 4, 2021

There is experimental support for it, but not all extensions may work. It is unclear to me if DataSketches officially supports Java 11 yet or not. Our unit and integration tests all pas with Java 11, but I am not sure if there is more to it. There was some discussion as part of #8647 regarding the matter.

All I can say is that we have been running in production with Java 11 and seen significant GC improvements for sure, but we don't exercise all the functionality, so there might be some gaps I am not aware of.

It might be worthwhile to update the documentation and break down JDK support by Druid extension so that people can be more comfortable upgrading. cc @gianm @leerho

@gianm
Copy link
Contributor

gianm commented Jun 4, 2021

A bunch of our environments run on Java 11 as well, and we use the kafka, kinesis, datasketches, and s3 extensions pretty heavily. Datasketches requires Java 8 to compile (https://github.com/apache/datasketches-java#jdk8hotspot-is-required-to-compile) and I'm not sure if it officially supports running on Java 11 or not. As a data point, though: we have been using HLL, theta, and quantiles sketches on Java 11 for a while now without any apparent problem.

The biggest Druid feature that we don't use is any of the Hadoop integration. I'm not sure how well that works.

So, a couple things:

  1. Has anyone been using Druid + Java 11 + the Hadoop integrations (either HDFS deep storage, or index_hadoop tasks, or both)? How well does it work?
  2. Does datasketches officially support Java 11? Are we still waiting for that in order to say that we do?

It might be time to just say we support Java 11 in all cases, or if we can't resolve the above 2 questions, at least in some cases.

@leerho
Copy link
Contributor

leerho commented Jun 4, 2021

@gianm
WRT #8647

We are working on a release of datasketches that will support Jdk 8 through Jdk 13 for all capabilities. We hope to complete this work within the next 4 to 6 weeks. This will be a major release and will require some minor API changes.

@gianm
Copy link
Contributor

gianm commented Jun 4, 2021

@leerho Thanks for the update. It'll be exciting to have official datasketches support for the newer JDKs.

Any news on this topic? It's been 3 years since the release of Java 11 with several improvements in GC and performance in general. Is there any plan or ETA for the support? :S

@tanisdlj It sounds like even though things aren't 100% sorted out yet, a few people (us included) are running on Java 11 in production without issue already, so you might have similar success if you just go for it. If you do try that: please let us know if you run into any issues.

@tanisdlj
Copy link

tanisdlj commented Jun 4, 2021

@gianm I will give it a try probably next week and let you know :D.
Thanks a lot for the answers!

@tanisdlj
Copy link

tanisdlj commented Jun 8, 2021

AGH! no, actually we use DataSketches, so no java 11 for us Y_Y

@gianm
Copy link
Contributor

gianm commented Jun 8, 2021

@tanisdlj well, we use datasketches too and Java 11 has been working fine for us. I guess that we must not be using the pieces of datasketches that aren't yet compatible with Java 11. So it could be worth a try, even though it's not officially supported yet. Fwiw, we are mostly using the hll, theta, and quantiles sketches.

@leerho
Copy link
Contributor

leerho commented Jun 8, 2021 via email

@tanisdlj
Copy link

@gianm when I tried the overlord with Java 11 I am getting the following output:

Jun 14 14:35:05 druid-master-2 java[13218]: WARNING: An illegal reflective access operation has occurred
Jun 14 14:35:05 druid-master-2 java[13218]: WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/opt/druid/lib/guice-4.1.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
Jun 14 14:35:05 druid-master-2 java[13218]: WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
Jun 14 14:35:05 druid-master-2 java[13218]: WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
Jun 14 14:35:05 druid-master-2 java[13218]: WARNING: All illegal access operations will be denied in a future release

Java version

openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Debian-1bpo91)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Debian-1bpo91, mixed mode, sharing)

Not sure if it's safe with those warning to push forward :/

@xvrl
Copy link
Member

xvrl commented Jun 14, 2021

@tanisdlj those warnings are harmless, they only indicate that this code will not be compatible with future JDK releases. You can disable the warning by adding the relevant --add-opens JVM command line flags if you want to hide the warnings.

@tanisdlj
Copy link

Ok, tried Java 11 in Historicals and middlemanagers.
I'm seeing quite a lot of errors in the Historicals like the following and similar ones in the Middlemanagers (OoM on Direct buffer). The instances are identical, same heap, same everything than the ones with Java 8, but only Java 11 ones are throwing this error:

Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]: 2021-06-17T10:00:09,027 ERROR [qtp239902985-371] com.sun.jersey.spi.container.ContainerResponse - The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]: java.lang.OutOfMemoryError: Direct buffer memory
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at java.nio.Bits.reserveMemory(Bits.java:175) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:118) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:317) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:242) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at sun.nio.ch.IOUtil.write(IOUtil.java:164) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at sun.nio.ch.IOUtil.write(IOUtil.java:130) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:493) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at java.nio.channels.SocketChannel.write(SocketChannel.java:507) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:273) ~[jetty-io-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[jetty-io-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277) ~[jetty-io-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381) ~[jetty-io-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:820) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223) ~[jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:544) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:838) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:910) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:416) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223) ~[jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:138) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:120) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:284) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:268) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:833) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.dataformat.smile.SmileGenerator._flushBuffer(SmileGenerator.java:2585) ~[jackson-dataformat-smile-2.10.2.jar:2.10.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.dataformat.smile.SmileGenerator._writeNonSharedString(SmileGenerator.java:1034) ~[jackson-dataformat-smile-2.10.2.jar:2.10.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.dataformat.smile.SmileGenerator.writeString(SmileGenerator.java:962) ~[jackson-dataformat-smile-2.10.2.jar:2.10.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.jackson.CommaListJoinSerializer.serialize(CommaListJoinSerializer.java:44) ~[druid-core-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.jackson.CommaListJoinSerializer.serialize(CommaListJoinSerializer.java:32) ~[druid-core-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanSerializer.serialize(UnwrappingBeanSerializer.java:120) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanPropertyWriter.serializeAsField(UnwrappingBeanPropertyWriter.java:127) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeWithType(BeanSerializerBase.java:607) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:147) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:400) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1429) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:1135) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:960) ~[jackson-databind-2.10.5.1.jar:2.10.5.1]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.http.SegmentListerResource$2.onSuccess(SegmentListerResource.java:184) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.http.SegmentListerResource$2.onSuccess(SegmentListerResource.java:176) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.common.util.concurrent.Futures$4.run(Futures.java:1181) ~[guava-16.0.1.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) ~[guava-16.0.1.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) ~[guava-16.0.1.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101) ~[guava-16.0.1.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:170) ~[guava-16.0.1.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1184) ~[guava-16.0.1.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1120) ~[guava-16.0.1.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.http.SegmentListerResource.getSegments(SegmentListerResource.java:173) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at jdk.internal.reflect.GeneratedMethodAccessor203.invoke(Unknown Source) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) ~[jersey-server-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) ~[jersey-servlet-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) ~[jersey-servlet-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) ~[jersey-servlet-1.19.3.jar:1.19.3]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) ~[guice-servlet-4.1.0.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) ~[guice-servlet-4.1.0.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) ~[guice-servlet-4.1.0.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) ~[guice-servlet-4.1.0.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) ~[guice-servlet-4.1.0.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) ~[guice-servlet-4.1.0.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) ~[guice-servlet-4.1.0.jar:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.security.PreResponseAuthorizationCheckFilter.doFilter(PreResponseAuthorizationCheckFilter.java:82) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.security.AllowHttpMethodsResourceFilter.doFilter(AllowHttpMethodsResourceFilter.java:78) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.security.AllowOptionsResourceFilter.doFilter(AllowOptionsResourceFilter.java:75) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.security.AllowAllAuthenticator$1.doFilter(AllowAllAuthenticator.java:84) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.security.AuthenticationWrappingFilter.doFilter(AuthenticationWrappingFilter.java:59) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.apache.druid.server.security.SecuritySanityCheckFilter.doFilter(SecuritySanityCheckFilter.java:86) ~[druid-server-0.20.2.jar:0.20.2]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1612) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~[jetty-servlet-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:766) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:179) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) [jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) [jetty-server-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [jetty-io-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [jetty-io-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [jetty-io-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375) [jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773) [jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905) [jetty-util-9.4.34.v20201102.jar:9.4.34.v20201102]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]:         at java.lang.Thread.run(Thread.java:829) [?:?]
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]: 2021-06-17T10:00:09,029 WARN [qtp239902985-371] org.eclipse.jetty.server.HttpChannel - /druid-internal/v1/segments
Jun 17 10:00:09 stde2-hhot-01.stde2.seedtag java[45763]: javax.servlet.ServletException: java.lang.OutOfMemoryError: Direct buffer memory

@didip
Copy link
Contributor

didip commented Feb 3, 2022

Is there still an interest to support Java 11?

@donbowman
Copy link
Contributor

or java 17?

@gianm
Copy link
Contributor

gianm commented Feb 3, 2022

We've updated to a version of datasketches that officially supports JDK versions up through 13. In addition, we're also running integration tests on Java 11, and lots of people are running Java 11 in production. I think it's time to officially support JDK 11, at least.

@gianm
Copy link
Contributor

gianm commented Feb 3, 2022

I'm seeing quite a lot of errors in the Historicals like the following and similar ones in the Middlemanagers (OoM on Direct buffer). The instances are identical, same heap, same everything than the ones with Java 8, but only Java 11 ones are throwing this error

@tanisdlj Hmm, one idea about what's going on here. If you have not set a value for druid.processing.buffer.sizeBytes, then you'll see a log message on server startup like "Auto sizing buffers to [%,d] bytes each for [%,d] processing and [%,d] merge buffers". The calculation is different on Java 8 and 11, because on Java 11 we can't get the max direct memory size directly, so we have to guess. Due to this missing info, the Java 11 version of the calculation is less accurate and can potentially cause direct memory to be exhausted. So if you're hitting this case, you can fix it by setting druid.processing.buffer.sizeBytes explicitly.

Another thing to check: is it possible that your two deployments have different values of -XX:MaxDirectMemorySize?

@gianm
Copy link
Contributor

gianm commented Feb 3, 2022

Is anyone using Druid with Java 11 and Hadoop ingestion via the index_hadoop task? (Or do we have integration tests doing this?) Wondering if we should claim this combination as supported or not.

I'm asking since we're using Hadoop 2.x, which doesn't support compiling on JDK 11, but perhaps it supports running on it.

@gianm
Copy link
Contributor

gianm commented Feb 4, 2022

Here's a patch: #12232

@xvrl
Copy link
Member

xvrl commented Feb 4, 2022

according to https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions 2.x doesn't support running on java 11, but it's possible the parts we use do.

@gianm
Copy link
Contributor

gianm commented Jul 30, 2022

This is done.

@gianm gianm closed this as completed Jul 30, 2022
@gianm
Copy link
Contributor

gianm commented Jul 30, 2022

Next: #12838

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests