-
Notifications
You must be signed in to change notification settings - Fork 51
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
GraalVM native-image builds based on the Kafka 2.6.0 release #31
Conversation
recommend this setting, and failing at build time is preferrable over runtime
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.netty.util.internal.logging.Log4J2Logger. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time. Detailed message: Trace: at parsing io.netty.util.internal.logging.Log4J2LoggerFactory.newInstance(Log4J2LoggerFactory.java:33) Call path from entry point to io.netty.util.internal.logging.Log4J2LoggerFactory.newInstance(String): no path found from entry point to target method
GraalVM's The zookeeper JMX NullPointerException from 2.5.0 is fixed now, assuming the substitution has no adverse side effects. It's still very possible that the native-image zookeeper build can somehow be the culprit in Yolean/kubernetes-kafka#310. The difference now is that there shouldn't be any stacktraces in logs. The use of MemberName was fixed using |
This result for zookeeper with
|
Yolean/kubernetes-kafka#310 because when I investigated the timeouts there I found reports that similar errors had been fixed by cleaning up (or trashing) persisted state. > Detected a direct/mapped ByteBuffer in the image heap. > A direct ByteBuffer has a pointer to unmanaged C memory, > and C memory from the image generator is not available at image run time. > A mapped ByteBuffer references a file descriptor, > which is no longer open and mapped at run time. Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Detected a direct/mapped ByteBuffer in the image heap. A direct ByteBuffer has a pointer to unmanaged C memory, and C memory from the image generator is not available at image run time.A mapped ByteBuffer references a file descriptor, which is no longer open and mapped at run time. To see how this object got instantiated use -H:+TraceClassInitialization. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image run time by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point. Detailed message: Trace: at parsing org.apache.zookeeper.server.persistence.FilePadding.padFile(FilePadding.java:78) Call path from entry point to org.apache.zookeeper.server.persistence.FilePadding.padFile(FileChannel): at org.apache.zookeeper.server.persistence.FilePadding.padFile(FilePadding.java:76)
that do include the .class files, I fail to get rid of: Error: Unsupported features in 2 methods Detailed message: Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: io.netty.buffer.Unpooled.wrappedBuffer(byte[]). To diagnose the issue you can use the --allow-incomplete-classpath option. The missing method is then reported at run time when it is accessed the first time. Trace: at parsing org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.detectMode(UnifiedServerSocket.java:265) Call path from entry point to org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.detectMode(): at org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.detectMode(UnifiedServerSocket.java:240) at org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.getSocket(UnifiedServerSocket.java:301) Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: org.eclipse.jetty.servlet.ServletContextHandler.<init>(int). To diagnose the issue you can use the --allow-incomplete-classpath option. The missing method is then reported at run time when it is accessed the first time. Trace: at parsing org.apache.zookeeper.server.admin.JettyAdminServer.<init>(JettyAdminServer.java:90) Call path from entry point to org.apache.zookeeper.server.admin.JettyAdminServer.<init>(String, int, int, String): at org.apache.zookeeper.server.admin.JettyAdminServer.<init>(JettyAdminServer.java:77) at org.apache.zookeeper.server.admin.JettyAdminServer.<init>(JettyAdminServer.java:71)
down after we've resolved classpath issues. The stdout prints of config are gone now, but this print remains: INFO org.apache.zookeeper.common.X509Util - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
initialization at runtime, for the same reason as the admincmd build: "All methods from java.lang.invoke should have been replaced during image building" This reverts commit e8da8a7.
At 695f84f the two initial issues were resolved and autobuild passed, pushing:
Thus I merged that to master. After 695f84f we're expanding the classpath to try to, eventually, get rid of |
|
Based on scripts that worked for 2.5.0 builds fail for 2.6.0 CLIs:
I guess this is because of the upgrade from Scala 1.12 to Scala 1.13.
The zookeeper build works, but still suffers from the issue reported in #29: