Gunicorn 没有响应——忽略客户端过早断开连接

Gunicorn 没有响应——忽略客户端过早断开连接

这是与GitHub 问题

鉴于:

  • gunicorn 19.7.1
  • Python 2.7.9
  • Debian 8
  • 内核 3.16.39-1+deb8u2
  • 在 Google Compute Engine 上

wsgi.py的:

def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return ["Hello!"]

跑步$ gunicorn wsgi --log-level=debug

产量:

[2017-04-10 18:01:25 +0000] [31956] [INFO] 启动 gunicorn 19.7.1

[2017-04-10 18:01:25 +0000] [31956] [调试] 仲裁器已启动

[2017-04-10 18:01:25 +0000] [31956] [INFO] 收听地点:http://127.0.0.1:8000(31956)

[2017-04-10 18:01:25 +0000] [31956] [INFO] 使用 worker:同步

[2017-04-10 18:01:25 +0000] [31961] [INFO] 正在启动进程,进程号为 31961

[2017-04-10 18:01:25 +0000] [31956] [调试] 1 个工人

然后使用 netcat 进行测试,例如echo -en "GET /ping HTTP/1.0\n\n\n" | nc localhost 8000超时:

[2017-04-10 18:07:36 +0000] [31977] [严重] 工人超时 (pid:31982)

[2017-04-10 18:07:36 +0000] [31982] [INFO] 工作人员退出 (pid: 31982)

[2017-04-10 18:07:36 +0000] [31985] [INFO] 正在启动进程,进程号为 31985

或者,在等待时向 nc 实例发送 SIGINT(ctrl-c)可产生以下结果:

[2017-04-10 18:01:28 +0000] [31961] [DEBUG] 忽略客户端过早断开连接。'GET /ping HTTP/1.0\n\n\n' 之后没有更多数据

使用--spew并没有阐明任何明显的东西。

答案1

虽然自从昨天发布这个问题以来我没有做任何改变,但它今天仍然有效。

您的猜测与我的一样好,但由于无法重现,因此我决定结束此猜测。

如果再次发生,我会重新打开。

相关内容