-
Notifications
You must be signed in to change notification settings - Fork 62
Epoll based Netty Transport error in Function Development Tool on Linux #373
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
Comments
Linking similar issue in function library: Azure/azure-functions-java-library#110 |
Thank you @anuchandy We are working on removing the conflicts between java worker dependencies and user code. Specially with netty. |
@anuchandy Just curious why did you need to build your image? you can use https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image?tabs=bash%2Cportal&pivots=programming-language-java Do you mind give your feedback using customer container? FYI the above code will be broken regardless it is windows or linux as it is related to netty dependency which we are working on. |
@amamounelsayed thank you for following up, I used a raw Linux VM because the customer setup was Linux, it was not explicit in the customer's original issue that it's a Linux container. Thanks for sharing the instruction link. I will request the customer to follow this thread. Yes, you are right code is broken, because once EPoll is excluded, we'll run into another conflicting issue. but I felt this EPoll specific issue interesting given base type it uses is already in the classpath. Not sure it has anything to do with ServiceLoading or any similar approach that netty uses to load this optional EPoll Dependency. Btw Is it always recommended to use containers for testing and debugging? I was so far debugging directly from IntelliJ, instead of linking IntelliJ to the container. |
@anuchandy sorry for my delay, there is no recommended way for testing and debugging. But I prefer that testing at least will be on the container as this will be 1-1 with the production. |
Function Development Tool on Linux (I guess this is true for production Linux Function as well) fails when using "Epoll based Netty Transport" in the application. The issue can be reproduced by creating a function app with netty modules as it dependency along with "netty-Epoll-for-Linux".
Steps to reproduce:
Create an Azure Ubuntu 18.04 Linux VM.
SSH and set up
Set Package feed:
Install Function tool:
Intstall Java8:
Set JAVA_HOME:
Find path to Java 8:
Open environment file:
Set Java home, save and exit:
Reload environment:
Install Maven:
Download repro-function project to this Linux box, package and Run:
azure-func-netty.zip
Hit function endpoint:
You should get the below error:
Here is a normal console app, having the same netty dependencies but runs fine
linux-use-netty1.zip
Download this project to the above Linux box and run:
The Epoll based code work as expected.
The text was updated successfully, but these errors were encountered: