-
Notifications
You must be signed in to change notification settings - Fork 103
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
Limit pipelined requests from client to avoid memory exhaustion #995
Comments
If we get N pipelined requests from a client and M < N responses from a server, thne (M - 1)'th response can exceed the So I believe the issue is linked with #498. |
I was able to reproduce [1] memory exhaustion by sending pipelined requests with the script:
Tempesta was configured to proxy only:
It's crucial to let [1] tested version: c662213 |
The linekd issue to test the case tempesta-tech/tempesta-test#57 |
The subject for the issue is OOM, so we just need to carefully track and limit client memory. Limiting number of pipelined requests is hard to manage (which exactly number to specify? How does it relate to other limits, e.g. server queue size and number of server connections?) To solve the issue |
Attacker may also set zero TCP window size to pause response transmission.
Possible mitigation is not clear now, but these two actions seems to be handy:
TfwCliConn->seq_queue
). Slow down the client by setting zero TCP window size if the limit is exceeded.Connected with #488
The text was updated successfully, but these errors were encountered: