Skip to content

Native builds using GraalVM 22.2 throw NoSuchMethodException at runtime #12725

@asantare

Description

@asantare

Expected behavior

Server/Client using netty reply to requests/gets responses.

Actual behavior

Native binaries built with GraalVM 22.2 results in Server/Client freeze and many NoSuchMethodException are logged for different classes and methods, here below one of them:

java.lang.NoSuchMethodException: io.netty.channel.DefaultChannelPipeline$TailContext.channelWritabilityChanged(io.netty.channel.ChannelHandlerContext)
	at java.lang.Class.getMethod(DynamicHub.java:2108)
	at io.netty.channel.ChannelHandlerMask$2.run(ChannelHandlerMask.java:174)
	at io.netty.channel.ChannelHandlerMask$2.run(ChannelHandlerMask.java:169)
	at java.security.AccessController.executePrivileged(AccessController.java:145)
	at java.security.AccessController.doPrivileged(AccessController.java:98)
	at io.netty.channel.ChannelHandlerMask.isSkippable(ChannelHandlerMask.java:169)
	at io.netty.channel.ChannelHandlerMask.mask0(ChannelHandlerMask.java:115)

Steps to reproduce

  • download the 'reproducer' project from the link below
  • open a shell in the project directory and start local server:
cd local-server
../gradlew run
  • open another shell in the project directory and compile and run the application:
cd test-app
../gradlew nativeCompile
build/native/nativeCompile/application
  • try the echo (will hang):
curl http://localhost:8080/test/echo
  • try the call to the local server (will hang):
curl http://localhost:8080/test/call

Minimal yet complete reproducer code (or URL to code)

https://github.com/asantare/http-client-test

Netty version

4.1.79.Final

JVM version (e.g. java -version)

openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment GraalVM CE 22.2.0 (build 11.0.16+8-jvmci-22.2-b06)
OpenJDK 64-Bit Server VM GraalVM CE 22.2.0 (build 11.0.16+8-jvmci-22.2-b06, mixed mode)

OS version (e.g. uname -a)

Darwin Kernel Version 21.6.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions