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] azure-storage-blob 12.29.0 is giving issue in the azure for copying file while working correctly with azure-storage-blob 12.14.0 #43747

Open
1 of 3 tasks
dheerajgupta217 opened this issue Jan 9, 2025 · 2 comments
Assignees
Labels
Client This issue points to a problem in the data-plane of the library. dependency-issue Issue that is caused by dependency conflicts HttpClient issue-addressed Workflow: The Azure SDK team believes it to be addressed and ready to close. Storage Storage Service (Queues, Blobs, Files)

Comments

@dheerajgupta217
Copy link

dheerajgupta217 commented Jan 9, 2025

Describe the bug
[BUG] azure-storage-blob 12.29.0 is giving issue in the azure for copying file while working correctly with azure-storage-blob 12.14.0

Exception or Stack Trace

Result: Failure Exception: NoSuchMethodError: io.netty.handler.codec.DefaultHeadersImpl.(Lio/netty/util/HashingStrategy;Lio/netty/handler/codec/ValueConverter;Lio/netty/handler/codec/DefaultHeaders$NameValidator;ILio/netty/handler/codec/DefaultHeaders$ValueValidator;)V Stack: java.lang.reflect.InvocationTargetException 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:22) at com.microsoft.azure.functions.worker.chain.FunctionExecutionMiddleware.invoke(FunctionExecutionMiddleware.java:19) at com.microsoft.azure.functions.worker.chain.InvocationChain.doNext(InvocationChain.java:21) at com.microsoft.durabletask.azurefunctions.internal.middleware.OrchestrationMiddleware.invoke(OrchestrationMiddleware.java:29) at com.microsoft.azure.functions.worker.chain.InvocationChain.doNext(InvocationChain.java:21) at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:125) at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:34) at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10) at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:44) at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext$0(JavaWorkerClient.java:94) 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:750) Caused by: java.lang.NoSuchMethodError: io.netty.handler.codec.DefaultHeadersImpl.(Lio/netty/util/HashingStrategy;Lio/netty/handler/codec/ValueConverter;Lio/netty/handler/codec/DefaultHeaders$NameValidator;ILio/netty/handler/codec/DefaultHeaders$ValueValidator;)V at io.netty.handler.codec.http.DefaultHttpHeaders.(DefaultHttpHeaders.java:86) at io.netty.handler.codec.http.DefaultHttpHeaders.(DefaultHttpHeaders.java:77) at io.netty.handler.codec.http.DefaultHttpHeaders.(DefaultHttpHeaders.java:61) at reactor.netty.http.client.HttpClientConfig.(HttpClientConfig.java:332) at reactor.netty.http.client.HttpClientConnect.(HttpClientConnect.java:85) at reactor.netty.http.client.HttpClient.create(HttpClient.java:393) at com.azure.core.http.netty.NettyAsyncHttpClientBuilder.build(NettyAsyncHttpClientBuilder.java:119) 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.storage.blob.implementation.util.BuilderHelper.buildPipeline(BuilderHelper.java:135) at com.azure.storage.blob.BlobServiceClientBuilder.buildAsyncClient(BlobServiceClientBuilder.java:112) at com.azure.storage.blob.BlobServiceClientBuilder.buildClient(BlobServiceClientBuilder.java:93)

To Reproduce
Steps to reproduce the behavior:

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

Additional context
Add any other context about the problem here.

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

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added
@alzimmermsft alzimmermsft added Storage Storage Service (Queues, Blobs, Files) Client This issue points to a problem in the data-plane of the library. HttpClient dependency-issue Issue that is caused by dependency conflicts labels Jan 9, 2025
@alzimmermsft
Copy link
Member

Thank you for filing this issue @dheerajgupta217.

This issue is from a dependency diamond happening somewhere in your application / in the Azure Functions environment.

azure-storage-blob:12.14.0 used Netty 4.1.67.Final and Reactor Netty 1.0.10 as the default HTTP stack, azure-storage-blob:12.29.0 uses Netty 4.1.112.Final and Reactor Netty 1.0.48. At some point between those versions of Netty and Reactor Netty a new constructor for DefaultHeadersImpl was added (DefaultHeadersImpl(HashingStrategy, ValueConverter, NameValidation, int, ValueValidator)) and started to be used.

DefaultHeadersImpl is defined in netty-codec while the usage of it from within code used the azure-storage-blob is in netty-codec-http, so this is where I'd start looking for a dependency conflict. Or, in short, the Netty dependencies in the application running aren't aligned.

Since Netty is being used, the Azure SDKs should have a log message about dependencies found on the classpath. This log should be produced by NettyUtility in our azure-core-http-netty package:

https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/implementation/NettyUtility.java#L95

For this, you'll need to have INFO level logging enabled for that class.

@alzimmermsft alzimmermsft added the issue-addressed Workflow: The Azure SDK team believes it to be addressed and ready to close. label Jan 9, 2025
Copy link

github-actions bot commented Jan 9, 2025

Hi @dheerajgupta217. Thank you for opening this issue and giving us the opportunity to assist. We believe that this has been addressed. If you feel that further discussion is needed, please add a comment with the text "/unresolve" to remove the "issue-addressed" label and continue the conversation.

@alzimmermsft alzimmermsft self-assigned this Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Client This issue points to a problem in the data-plane of the library. dependency-issue Issue that is caused by dependency conflicts HttpClient issue-addressed Workflow: The Azure SDK team believes it to be addressed and ready to close. Storage Storage Service (Queues, Blobs, Files)
Projects
None yet
Development

No branches or pull requests

2 participants