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

[BUG] FailureException: NoClassDefFoundError: Could not initialize class reactor.netty.http.client.HttpClientConfig #23382

Closed
markpope opened this issue Aug 6, 2021 · 10 comments · Fixed by #23404
Assignees
Labels
customer-reported Issues that are reported by GitHub users external to the Azure organization. dependency-issue Issue that is caused by dependency conflicts Functions KeyVault question The issue doesn't require a change to the product in order to be resolved. Most issues start as that

Comments

@markpope
Copy link

markpope commented Aug 6, 2021

Describe the bug
I'm following this tutorial to access a Key Vault from an Azure Function written in Java. From my PC I can successfully read a secret from the Key Vault, but not when the code is deployed to a Function App.

Exception or Stack Trace
2021-08-05T22:47:50.015 [Error] Executed 'Functions.UpdateAha' (Failed, Id=cd0f171d-8ef0-4cbc-8ebb-1a78375d7c70, Duration=8ms)Result: FailureException: NoClassDefFoundError: Could not initialize class reactor.netty.http.client.HttpClientConfigStack: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.microsoft.azure.functions.worker.broker.JavaMethodInvokeInfo.invoke(JavaMethodInvokeInfo.java:22)at com.microsoft.azure.functions.worker.broker.JavaMethodExecutorImpl.execute(JavaMethodExecutorImpl.java:54)at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:57)at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:33)at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10)at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45)at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext$0(JavaWorkerClient.java:92)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NoClassDefFoundError: Could not initialize class reactor.netty.http.client.HttpClientConfigat reactor.netty.http.client.HttpClientConnect.(HttpClientConnect.java:84)at reactor.netty.http.client.HttpClient.create(HttpClient.java:393)at com.azure.core.http.netty.NettyAsyncHttpClientBuilder.build(NettyAsyncHttpClientBuilder.java:97)at com.azure.core.http.netty.NettyAsyncHttpClientProvider.createInstance(NettyAsyncHttpClientProvider.java:18)at com.azure.core.implementation.http.HttpClientProviders.createInstance(HttpClientProviders.java:58)at com.azure.core.http.HttpClient.createDefault(HttpClient.java:50)at com.azure.core.http.HttpClient.createDefault(HttpClient.java:40)at com.azure.core.http.HttpPipelineBuilder.build(HttpPipelineBuilder.java:62)at com.azure.security.keyvault.secrets.SecretClientBuilder.buildAsyncClient(SecretClientBuilder.java:190)at com.azure.security.keyvault.secrets.SecretClientBuilder.buildClient(SecretClientBuilder.java:112)at

To Reproduce
Steps to reproduce the behavior:

Code Snippet
public class Function {
@functionName("Function")
public void run(
@TimerTrigger(name = "timerInfo", schedule = "0 0 * * * *") String timerInfo,
final ExecutionContext context
) {
SecretClient secretClient = new SecretClientBuilder()
.vaultUrl("https://.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
}
}

Setup (please complete the following information):

  • OS: Azure

  • IDE: VS

  • Library/Libraries:

    com.microsoft.azure.functions
    azure-functions-java-library
    ${azure.functions.java.library.version}

     <dependency>
     	<groupId>com.azure</groupId>
     	<artifactId>azure-identity</artifactId>
     	<version>1.3.4</version>
     </dependency>
     
     <dependency>
     	<groupId>com.azure</groupId>
     	<artifactId>azure-security-keyvault-secrets</artifactId>
     	<version>4.3.1</version>
     </dependency>
    
  • Java version: [e.g. 8]

  • App Server/Environment: Azure Function

  • Frameworks: None

image

@ghost ghost added needs-triage This is a new issue that needs to be triaged to the appropriate team. customer-reported Issues that are reported by GitHub users external to the Azure organization. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that labels Aug 6, 2021
@alzimmermsft
Copy link
Member

Hi @markpope, thanks for submitting this issue.

Could you let me know if this comment resolves the issue you're seeing: #22242 (comment)

@alzimmermsft alzimmermsft added dependency-issue Issue that is caused by dependency conflicts Functions KeyVault labels Aug 6, 2021
@ghost ghost removed the needs-triage This is a new issue that needs to be triaged to the appropriate team. label Aug 6, 2021
@markpope
Copy link
Author

markpope commented Aug 6, 2021

@alzimmermsft Thanks for that. Unfortunately another exception surfaced that I'm at a loss to resolve. Should I close this issue and open another? Here is the stack track after redeploying.

2021-08-06T02:06:11.624 [Error] Executed 'Functions.UpdateAha' (Failed, Id=69360ea6-5ddc-4641-bf99-b757445e53e5, Duration=11606ms)Result: FailureException: UnsupportedOperationException:Stack: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.microsoft.azure.functions.worker.broker.JavaMethodInvokeInfo.invoke(JavaMethodInvokeInfo.java:22)at com.microsoft.azure.functions.worker.broker.JavaMethodExecutorImpl.execute(JavaMethodExecutorImpl.java:54)at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:57)at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:33)at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10)at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45)at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext$0(JavaWorkerClient.java:92)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.RuntimeException: Max retries 3 times exceeded. Error Details: nullat com.azure.core.http.policy.RetryPolicy.lambda$attemptAsync$1(RetryPolicy.java:127)at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:172)at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:172)at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:258)at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:258)at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onError(FluxPeekFuseable.java:903)at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onError(FluxPeekFuseable.java:903)at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onError(Operators.java:2062)at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:842)at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:608)at reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:894)at reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:997)at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2057)at reactor.core.publisher.Operators.complete(Operators.java:136)at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:45)at reactor.core.publisher.Mono.subscribe(Mono.java:4150)at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onError(FluxPeekFuseable.java:234)at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:258)at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onError(FluxPeekFuseable.java:903)at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:259)at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onError(Operators.java:2062)at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:142)at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1815)at reactor.core.publisher.MonoCompletionStage.lambda$subscribe$0(MonoCompletionStage.java:82)at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774)at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750)at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1609)... 1 moreSuppressed: java.lang.Exception: #block terminated with an errorat reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)at reactor.core.publisher.Mono.block(Mono.java:1703)at com.azure.security.keyvault.secrets.SecretClient.getSecretWithResponse(SecretClient.java:179)at com.azure.security.keyvault.secrets.SecretClient.getSecret(SecretClient.java:157)at com.gdca.aha.UpdateAha.run(UpdateAha.java:33)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.microsoft.azure.functions.worker.broker.JavaMethodInvokeInfo.invoke(JavaMethodInvokeInfo.java:22)at com.microsoft.azure.functions.worker.broker.JavaMethodExecutorImpl.execute(JavaMethodExecutorImpl.java:54)at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:57)at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:33)at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10)at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45)at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext$0(JavaWorkerClient.java:92)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)... 1 moreCaused by: java.lang.UnsupportedOperationExceptionat java.util.AbstractList.add(AbstractList.java:148)at java.util.AbstractList.add(AbstractList.java:108)at com.azure.identity.implementation.IdentityClient.authenticateWithAzurePowerShell(IdentityClient.java:489)at com.azure.identity.AzurePowerShellCredential.getToken(AzurePowerShellCredential.java:34)at com.azure.identity.ChainedTokenCredential.lambda$getToken$2(ChainedTokenCredential.java:55)at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:386)at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:270)at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:228)at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:790)... 23 more

@alzimmermsft
Copy link
Member

@markpope, unfortunately, this appears to be the same error as reported in this issue.

java.lang.UnsupportedOperationExceptionat java.util.AbstractList.add(AbstractList.java:148)at java.util.AbstractList.add(AbstractList.java:108)at com.azure.identity.implementation.IdentityClient.authenticateWithAzurePowerShell(IdentityClient.java:489)at

@markpope
Copy link
Author

markpope commented Aug 6, 2021

@alzimmermsft This seems like a very simple Java example from MSFT's azure-sdk-for-java. How can I monitor if this is going to be fixed in a future release?

@alzimmermsft
Copy link
Member

alzimmermsft commented Aug 6, 2021

Hi @markpope, I've submitted this PR which resolves the exception being seen. This will be included in the next release of azure-identity once it is merged.

@markpope
Copy link
Author

markpope commented Aug 6, 2021

@alzimmermsft Great, how can I know when azure-identity is released? Will the PR show this? Thanks.

@alzimmermsft
Copy link
Member

Hi @markpope this will be available in azure-identity 1.3.5 which should be releasing in the next day or so.

@markpope
Copy link
Author

markpope commented Aug 9, 2021 via email

@alzimmermsft
Copy link
Member

@markpope the mentioned version of azure-identity has been released. Did it resolve the issue you were seeing?

@markpope
Copy link
Author

markpope commented Aug 17, 2021 via email

azure-sdk pushed a commit to azure-sdk/azure-sdk-for-java that referenced this issue Apr 3, 2023
remove 'selector' and 'selectorMatchOperator' from ApplicationGatewayFirewallExclusion (Azure#23382)
@github-actions github-actions bot locked and limited conversation to collaborators Apr 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
customer-reported Issues that are reported by GitHub users external to the Azure organization. dependency-issue Issue that is caused by dependency conflicts Functions KeyVault question The issue doesn't require a change to the product in order to be resolved. Most issues start as that
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants