-
Notifications
You must be signed in to change notification settings - Fork 9.2k
HADOOP-18389. Limit stacked call of one connection in client to avoid possible OOM in server #4691
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
Conversation
… possible OOM in server
|
🎊 +1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
We're closing this stale PR because it has been open for 100 days with no activity. This isn't a judgement on the merit of the PR in any way. It's just a way of keeping the PR queue manageable. |
Description of PR
Jira link: HADOOP-18389
In our prod environment, we encountered an accident that JN OOM because Server#Connection#responseQueue used 97% memory.
After analyzed the memory of JN and found that there are 2w+ called stacked in one Server#Connection#responseQueue, because the network between NN and JN jitters with some tcp packet loss.
We can refer to some screenshots in HADOOP-18389
In this case, I think Client.java should support limit the stacked calls of one connection to avoid the possible OOM in Server. When the number of stacked calls is more than the limit size, we can just throw one IOException to the method caller.