Re: Повисшие post запросы, backend uwsgi

Maxim Dounin mdounin на mdounin.ru
Ср Дек 29 06:14:56 MSK 2010


Hello!

On Tue, Dec 28, 2010 at 03:57:45PM -0500, maxgentry wrote:

[...]

> 2010/12/28 22:26:29 [debug] 67908#0: *1 http header: "Content-Length: 2475"

[...]

> 2010/12/28 22:26:29 [debug] 67908#0: *1 http read client request body
> 2010/12/28 22:26:29 [debug] 67908#0: *1 recv: eof:0, avail:428, err:0
> 2010/12/28 22:26:29 [debug] 67908#0: *1 recv: fd:3 428 of 1679
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http client request body recv 428
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http client request body rest 1251

[...]

> 2010/12/28 22:26:29 [debug] 67908#0: *1 recv: fd:3 1251 of 1251
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http client request body recv 1251
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http client request body rest 0

Тело запроса получено от клиента целиком.

[...]

> 2010/12/28 22:26:29 [debug] 67908#0: *1 http upstream send request
> 2010/12/28 22:26:29 [debug] 67908#0: *1 chain writer buf fl:0 s:534
> 2010/12/28 22:26:29 [debug] 67908#0: *1 chain writer buf fl:0 s:2475
> 2010/12/28 22:26:29 [debug] 67908#0: *1 chain writer in: 28322B18
> 2010/12/28 22:26:29 [debug] 67908#0: *1 writev: 3009 of 3009

И целиком отправлено на бекенд.

[...]

> 2010/12/28 22:26:29 [debug] 67908#0: *1 recv: fd:12 45 of 4096
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http uwsgi status 200 "200 OK"
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http uwsgi header:
> "Content-Type: text/plain"
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http uwsgi header done
> 2010/12/28 22:26:29 [debug] 67908#0: *1 HTTP/1.1 200 OK
> 2010/12/28 22:26:29 [debug] 67908#0: *1 write new buf t:1 f:0 28322C50,
> pos 28322C50, size: 151 file: 0, size: 0
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http write filter: l:0 f:0
> s:151
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http cacheable: 0
> 2010/12/28 22:26:29 [debug] 67908#0: *1 http upstream process upstream
> 2010/12/28 22:26:29 [debug] 67908#0: *1 pipe read upstream: 0
> 2010/12/28 22:26:29 [debug] 67908#0: *1 pipe preread: 0
> 2010/12/28 22:26:29 [debug] 67908#0: *1 pipe buf free s:0 t:1 f:0
> 283FB000, pos 283FB02D, size: 0 file: 0, size: 0
> 2010/12/28 22:26:29 [debug] 67908#0: *1 event timer: 12, old: 782893172,
> new: 782893172

Получили от бекенда заголовок, ушли ждать окончания ответа.

> 2010/12/28 22:26:42 [debug] 67908#0: *1 http run request: "/?"
> 2010/12/28 22:26:42 [debug] 67908#0: *1 http upstream check client,
> write event:0, "/"
> 2010/12/28 22:26:42 [info] 67908#0: *1 kevent() reported that client
> closed prematurely connection, so upstream connection is closed too (54:
> Connection reset by peer) while reading upstream, client: 10.10.10.10,
> server: localhost, request: "POST / HTTP/1.1", upstream:
> "uwsgi://unix:///var/run/uwsgi.sock:", host: "1.1.1.1"

Клиенту всё это надоело раньше, чем нам.

Почему ответ не приходит - надо смотреть внимательно внутри uwsgi.  
Из тривиального на попробовать - сменить yield на return.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru