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
[BUG] Could not initialize class reactor.netty.http.client.HttpClientConfig #23629
Comments
Thank you for submitting this issue @AlejandroBlanco. Could you let me know if the guidance here resolves the exception you're seeing. |
Thanks for the very prompt response. As I stated in the bug, the issue occurs despite having this in my local.settings.json {
... etc Despite the setting was added twice, the classpath seems to be unstable |
Problem goes away upgrading the function core tools form v2.x to v3.x. npm i -g azure-functions-core-tools@core doesn't install last version as I expected. To move to v3 is necessary to run: npm i -g azure-functions-core-tools@3 --unsafe-perm true v2.x is not compatible with Java 11, but v3.x is compatible with both Java 8 and 11. This problem is solved by updating dependencies below the executable application, therefore no need to keep this open as it is not a problem with current cosmos client versions and no backwards compatibility is broken. |
Describe the bug
azure-cosmos jar cannot find at runtime the reactor netty libraries, failing silently when running in local. The bug was discovered running an azure function locally via remote connection:
func host start --port 7071 --useHttps --cert localhost.pfx --password 123 --language-worker -- "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Many attemps have been done to get rid of the issue, like excluding manually the io.reactor netty deps from azure-cosmos and adding them manually to version 1.10 and 1.9 and adding the netty-all and netty-bom jars. Many variations of versions were tested without success (sometimes the method that is not found differs but that doesn't matter as the main issue is the Azure function seems to have problem to build a classpath equivalen to the build path). There are no other jar files which contain apparently different versions of netty or io.projectreactor.netty. The Java version is 8 and the appropriate app setting was added in the local.settings.json doc. Java 11 was tried to but we find further issues with classloaders in the Azure function
Exception or Stack Trace
No stacktrace can be recovered for failing silently. In debug mode an "Could not initialize class reactor.netty.http.client.HttpClientConfig" exception can be catched when reactor.netty.http.client.HttpClientConnect(ConnectionProvider provider) constructor is called
To Reproduce
Create an Azure function to call a cosmos DB async client:
Using last core tools :
Azure Functions Core Tools (2.0.3)
Function Runtime Version: 2.0.12115.0
The Cosmos DB that is called is not an emulator but a remote URL if that matters
Code Snippet
Expected behavior
An Async cosmos client is created and we can insert items in the cosmos document in the indicated URL
Screenshots
Setup (please complete the following information):
If you suspect a dependency version mismatch (e.g. you see
NoClassDefFoundError
,NoSuchMethodError
or similar), please providemvn dependency:tree -Dverbose
)[INFO] Verbose not supported since maven-dependency-plugin 3.0
[INFO] com.myapp:jar:1.0-SNAPSHOT
[INFO] +- io.swagger.codegen.v3:swagger-codegen-maven-plugin:jar:3.0.27:compile
[INFO] | +- org.apache.maven:maven-core:jar:3.2.5:compile
[INFO] | | +- org.apache.maven:maven-model:jar:3.2.5:compile
[INFO] | | +- org.apache.maven:maven-settings:jar:3.2.5:compile
[INFO] | | +- org.apache.maven:maven-settings-builder:jar:3.2.5:compile
[INFO] | | +- org.apache.maven:maven-repository-metadata:jar:3.2.5:compile
[INFO] | | +- org.apache.maven:maven-artifact:jar:3.2.5:compile
[INFO] | | +- org.apache.maven:maven-model-builder:jar:3.2.5:compile
[INFO] | | +- org.apache.maven:maven-aether-provider:jar:3.2.5:compile
[INFO] | | | - org.eclipse.aether:aether-spi:jar:1.0.0.v20140518:compile
[INFO] | | +- org.eclipse.aether:aether-impl:jar:1.0.0.v20140518:compile
[INFO] | | +- org.eclipse.aether:aether-api:jar:1.0.0.v20140518:compile
[INFO] | | +- org.eclipse.aether:aether-util:jar:1.0.0.v20140518:compile
[INFO] | | +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.0.M1:compile
[INFO] | | | +- javax.enterprise:cdi-api:jar:1.0:compile
[INFO] | | | | - javax.annotation:jsr250-api:jar:1.0:compile
[INFO] | | | - org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.0.M1:compile
[INFO] | | +- org.sonatype.sisu:sisu-guice:jar:no_aop:3.2.3:compile
[INFO] | | | +- javax.inject:javax.inject:jar:1:compile
[INFO] | | | - aopalliance:aopalliance:jar:1.0:compile
[INFO] | | +- org.codehaus.plexus:plexus-interpolation:jar:1.21:compile
[INFO] | | +- org.codehaus.plexus:plexus-utils:jar:3.0.20:compile
[INFO] | | +- org.codehaus.plexus:plexus-classworlds:jar:2.5.2:compile
[INFO] | | +- org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile
[INFO] | | - org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile
[INFO] | | - org.sonatype.plexus:plexus-cipher:jar:1.4:compile
[INFO] | +- org.apache.maven:maven-compat:jar:3.2.5:compile
[INFO] | | - org.apache.maven.wagon:wagon-provider-api:jar:2.8:compile
[INFO] | +- org.apache.maven:maven-plugin-api:jar:3.2.5:compile
[INFO] | +- org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.4:compile
[INFO] | +- io.swagger.codegen.v3:swagger-codegen:jar:3.0.27:compile
[INFO] | | +- io.swagger:swagger-parser:jar:1.0.55:compile
[INFO] | | | - io.swagger:swagger-core:jar:1.6.1:compile
[INFO] | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.1:compile
[INFO] | | | | - org.yaml:snakeyaml:jar:1.24:compile
[INFO] | | | +- io.swagger:swagger-models:jar:1.6.1:compile
[INFO] | | | - javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | | +- io.swagger.parser.v3:swagger-parser:jar:2.0.27:compile
[INFO] | | | +- io.swagger.parser.v3:swagger-parser-v2-converter:jar:2.0.27:compile
[INFO] | | | | +- io.swagger.core.v3:swagger-models:jar:2.1.10:compile
[INFO] | | | | - io.swagger.parser.v3:swagger-parser-core:jar:2.0.27:compile
[INFO] | | | - io.swagger.parser.v3:swagger-parser-v3:jar:2.0.27:compile
[INFO] | | | - io.swagger.core.v3:swagger-core:jar:2.1.10:compile
[INFO] | | | +- io.swagger.core.v3:swagger-annotations:jar:2.1.10:compile
[INFO] | | | - jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] | | +- io.swagger:swagger-codegen:jar:2.4.21:compile
[INFO] | | | +- io.swagger:swagger-compat-spec-parser:jar:1.0.55:compile
[INFO] | | | | +- com.github.java-json-tools:json-schema-validator:jar:2.2.14:compile
[INFO] | | | | | +- com.github.java-json-tools:jackson-coreutils-equivalence:jar:1.0:compile
[INFO] | | | | | +- com.github.java-json-tools:json-schema-core:jar:1.2.14:compile
[INFO] | | | | | | +- com.github.java-json-tools:uri-template:jar:0.10:compile
[INFO] | | | | | | - org.mozilla:rhino:jar:1.7.7.2:compile
[INFO] | | | | | +- com.sun.mail:mailapi:jar:1.6.2:compile
[INFO] | | | | | +- com.googlecode.libphonenumber:libphonenumber:jar:8.11.1:compile
[INFO] | | | | | - net.sf.jopt-simple:jopt-simple:jar:5.0.4:compile
[INFO] | | | | +- com.github.java-json-tools:json-patch:jar:1.13:compile
[INFO] | | | | | +- com.github.java-json-tools:msg-simple:jar:1.2:compile
[INFO] | | | | | | - com.github.java-json-tools:btf:jar:1.3:compile
[INFO] | | | | | - com.github.java-json-tools:jackson-coreutils:jar:2.0:compile
[INFO] | | | | - org.apache.httpcomponents:httpclient:jar:4.5.2:compile
[INFO] | | | | +- org.apache.httpcomponents:httpcore:jar:4.4.4:compile
[INFO] | | | | +- commons-logging:commons-logging:jar:1.2:compile
[INFO] | | | | - commons-codec:commons-codec:jar:1.9:compile
[INFO] | | | - org.json:json:jar:20210307:compile
[INFO] | | +- com.samskivert:jmustache:jar:1.12:compile
[INFO] | | +- commons-io:commons-io:jar:2.4:compile
[INFO] | | +- org.slf4j:slf4j-ext:jar:1.7.25:compile
[INFO] | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | +- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] | | +- commons-cli:commons-cli:jar:1.2:compile
[INFO] | | +- com.google.guava:guava:jar:23.0:compile
[INFO] | | | +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
[INFO] | | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[INFO] | | | - org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[INFO] | | +- com.github.jknack:handlebars:jar:4.1.2:compile
[INFO] | | - com.atlassian.commonmark:commonmark:jar:0.9.0:compile
[INFO] | - io.swagger.codegen.v3:swagger-codegen-generators:jar:1.0.27:compile
[INFO] +- io.swagger:swagger-annotations:jar:1.5.21:compile
[INFO] +- org.openapitools:jackson-databind-nullable:jar:0.2.1:compile
[INFO] +- com.github.spotbugs:spotbugs-annotations:jar:4.2.0:compile
[INFO] | - com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] +- org.glassfish.jersey.core:jersey-client:jar:2.34:compile
[INFO] | +- jakarta.ws.rs:jakarta.ws.rs-api:jar:2.1.6:compile
[INFO] | +- org.glassfish.jersey.core:jersey-common:jar:2.34:compile
[INFO] | | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] | | - org.glassfish.hk2:osgi-resource-locator:jar:1.0.3:compile
[INFO] | - org.glassfish.hk2.external:jakarta.inject:jar:2.6.1:compile
[INFO] +- org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.34:compile
[INFO] | +- org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.34:compile
[INFO] | - com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.12.2:compile
[INFO] | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
[INFO] | - jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
[INFO] +- org.glassfish.jersey.media:jersey-media-multipart:jar:2.34:compile
[INFO] | - org.jvnet.mimepull:mimepull:jar:1.9.13:compile
[INFO] +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.12.4:compile
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.12.4:compile
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.4:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.4:compile
[INFO] +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.4:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-joda:jar:2.12.4:compile
[INFO] +- joda-time:joda-time:jar:2.7:compile
[INFO] +- com.brsanthu:migbase64:jar:2.2:compile
[INFO] +- com.microsoft.azure.functions:azure-functions-java-library:jar:1.4.2:compile
[INFO] +- com.azure:azure-cosmos:jar:4.18.0:compile
[INFO] | +- com.azure:azure-core:jar:1.19.0:compile
[INFO] | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.12.4:compile
[INFO] | | | +- org.codehaus.woodstox:stax2-api:jar:4.2.1:compile
[INFO] | | | - com.fasterxml.woodstox:woodstox-core:jar:6.2.4:compile
[INFO] | | +- io.projectreactor:reactor-core:jar:3.4.8:compile
[INFO] | | | - org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] | | - io.netty:netty-tcnative-boringssl-static:jar:2.0.40.Final:compile
[INFO] | +- com.azure:azure-core-http-netty:jar:1.10.2:compile
[INFO] | | +- io.netty:netty-handler:jar:4.1.66.Final:compile
[INFO] | | | +- io.netty:netty-common:jar:4.1.66.Final:compile
[INFO] | | | +- io.netty:netty-resolver:jar:4.1.66.Final:compile
[INFO] | | | +- io.netty:netty-transport:jar:4.1.66.Final:compile
[INFO] | | | - io.netty:netty-codec:jar:4.1.66.Final:compile
[INFO] | | +- io.netty:netty-handler-proxy:jar:4.1.66.Final:compile
[INFO] | | | - io.netty:netty-codec-socks:jar:4.1.66.Final:compile
[INFO] | | +- io.netty:netty-buffer:jar:4.1.66.Final:compile
[INFO] | | +- io.netty:netty-codec-http:jar:4.1.66.Final:compile
[INFO] | | +- io.netty:netty-codec-http2:jar:4.1.66.Final:compile
[INFO] | | +- io.netty:netty-transport-native-unix-common:jar:4.1.66.Final:compile
[INFO] | | +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.66.Final:compile
[INFO] | | +- io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.66.Final:compile
[INFO] | | - io.projectreactor.netty:reactor-netty:jar:1.0.9:compile
[INFO] | | +- io.projectreactor.netty:reactor-netty-core:jar:1.0.9:compile
[INFO] | | | +- io.netty:netty-resolver-dns:jar:4.1.65.Final:compile
[INFO] | | | | - io.netty:netty-codec-dns:jar:4.1.65.Final:compile
[INFO] | | | - io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.1.65.Final:compile
[INFO] | | +- io.projectreactor.netty:reactor-netty-http:jar:1.0.9:compile
[INFO] | | - io.projectreactor.netty:reactor-netty-http-brave:jar:1.0.9:runtime
[INFO] | | - io.zipkin.brave:brave-instrumentation-http:jar:5.13.3:runtime
[INFO] | | - io.zipkin.brave:brave:jar:5.13.3:runtime
[INFO] | | - io.zipkin.reporter2:zipkin-reporter-brave:jar:2.16.3:runtime
[INFO] | | - io.zipkin.reporter2:zipkin-reporter:jar:2.16.3:runtime
[INFO] | | - io.zipkin.zipkin2:zipkin:jar:2.23.2:runtime
[INFO] | +- com.fasterxml.jackson.module:jackson-module-afterburner:jar:2.12.2:compile
[INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.4:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.32:compile
[INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] | +- io.dropwizard.metrics:metrics-core:jar:4.1.0:compile
[INFO] | - io.micrometer:micrometer-core:jar:1.7.2:compile
[INFO] | - org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- com.google.code.gson:gson:jar:1.7.1:compile
[INFO] +- org.junit.jupiter:junit-jupiter:jar:5.4.2:test
[INFO] | +- org.junit.jupiter:junit-jupiter-api:jar:5.4.2:test
[INFO] | | +- org.apiguardian:apiguardian-api:jar:1.0.0:test
[INFO] | | +- org.opentest4j:opentest4j:jar:1.1.1:test
[INFO] | | - org.junit.platform:junit-platform-commons:jar:1.4.2:test
[INFO] | +- org.junit.jupiter:junit-jupiter-params:jar:5.4.2:test
[INFO] | - org.junit.jupiter:junit-jupiter-engine:jar:5.4.2:test
[INFO] | - org.junit.platform:junit-platform-engine:jar:1.4.2:test
[INFO] +- org.mockito:mockito-core:jar:2.23.4:test
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.9.3:test
[INFO] | +- net.bytebuddy:byte-buddy-agent:jar:1.9.3:test
[INFO] | - org.objenesis:objenesis:jar:2.6:test
[INFO] - junit:junit:jar:4.11:test
[INFO] - org.hamcrest:hamcrest-core:jar:1.3:test
Additional context
This issue occurs with 1.18, 1.17, 1.16 and older versions. Without other apparent jar files obscuring the reactor and netty files, everyone should be impacted by this malformed classpath issue, as it seems azure-cosmos cannot find its own reactor netty dependencies. "FUNCTIONS_WORKER_JAVA_LOAD_APP_LIBS": true was added in the local.settings.json and in the pom file under azure-functions-maven-plugin without difference.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report
The text was updated successfully, but these errors were encountered: