-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
gunicorn socket Ignoring EPIPE #1695
Comments
same with me,, |
499 is NGINX is a client disconnect, I believe. That's also the same reason Gunicorn will log "Ignoring EPIPE". It sounds as though |
Your |
Idk, but for me, its just warning, iam still could using my command using 'subprocess' |
getting the same issue :( |
@endrrphan94 how do you get this "issue" ? It's unclear for me for me since nc in this example doesn't send any a proper request. |
I too see the same error, but gunicorn recovers from this after sometime. I see this for a few minutes and then after sometime gunicorn starts taking requests. here are my gunicorn logs.
any idea why this happens? |
if you are using a synchronous worker, you should make sure to tell to elb to close the connection on each check . It seems it’s trying to retry on the same connextion.or maybe one other request is doing it.
… On 29 Oct 2019, at 13:00, Manohar Reddy ***@***.***> wrote:
I too see the same error, but gunicorn recovers from this after sometime. I see this for a few minutes and then after sometime gunicorn starts taking requests. here are my gunicorn logs.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
This issue cannot be reproduce these days. It's weird.
|
@benoitc I am using worker class as Earlier to this we were using the worker class as is there any suggestion that you can give to fix this? |
are you sending a close header? @boddumanohar |
@benoitc This happens when the ELB health check closed the request before gunicorn replies. The ELB health check has a timeout and within that timeout, if it doesn't receive any response. Its going to close the request. So I think this is not a bug on gunicorn side. |
this epipe message is expected hence why it’s displayed in debug mode only. What is the issue there exactly? |
I tried many times and still cannot reproduce this issue. |
Any solutions as yet? |
this error usually occurs when the client closes the connection. So I believe there isn't much that can be done from the gunicorn side. |
Hi @dikokob Besides, this issue can be reproduced through this repo Reproduce this issue. |
Besides, if |
Also again, what is the issue there? Apart displaying this log in debug mode? I Ignorig aborted requests on Nginx is doing the same thing but one level above anyway, so that will remove useless calls to gunicorn which is fine. Would be good to have a pr to add it in the doc :) |
Thanks for your attention. |
* disable sse due to a bug in gunicorn benoitc/gunicorn#1695 * UI regressions in assessview
gunicorn == 0.17.4
Django == 1.5.1
nginx version: openresty/1.9.7.3
If I use "proxy_set_header Host$http_host;", django will raise SuspiciousOperation. So I add "proxy_set_header Host "$ {host}:${server_port}";" to nginx's config and set server_name naked ip.
It is based on this tips.django get_host
Why there is some difference when testing by curl and nc? Load balance uses the command nc to check whether gunicorn is ok. But its reponse code is not 2xx or 3xx when using "nc". 4xx is considered to be unhealthy.
Or is there some graceful configration to process the requests when using nc?
Thanks!
nginx-gunicorn.conf
gunicorn.conf.py
supervisord.conf
Test using curl
gunicorn_error.log(gunicorn)
gunicorn.access.log(nginx)
Test using nc
gunicorn_error.log(gunicorn)
gunicorn.access.log(nginx)
The text was updated successfully, but these errors were encountered: