using upstream in access phase and problem when having many connections
Huy Phan
dachuy at gmail.com
Thu Mar 12 10:23:22 MSK 2009
Huy Phan <dachuy at ...> writes:
>
> Hi there,
> I've done the nginx module that using upstream in access phase. It's working
> properly with single request. When I use apache benchmark with
> requests = 10000 and concurrency = 500, the connection is always broken.
> I checked the log and see the message "client closed prematurely connection,
> so upstream connection is closed too while connecting to upstream .... "
>
> This is the log file :
> 30141#0: *33097 socket 9
> 30141#0: *33097 epoll add connection: fd:9 ev:80000005
> 30141#0: *33097 connect to 192.168.0.197:11211, fd:9 #33098
> 30141#0: *33097 http upstream connect: -2
> 30141#0: *33097 event timer add: 9: 60000:4022552673
> 30141#0: timer delta: 0
> 30141#0: posted events 00000000
> 30141#0: worker cycle
> 30141#0: epoll timer: 60000
> 30141#0: epoll: fd:6 ev:0005 d:08AC3490
> 30141#0: *33097 http run request: "/v/empty.flv?token=1234"
> 30141#0: *33097 http upstream check client, write event:0, "/v/empty.flv"
> 30141#0: *33097 http upstream recv(): 0 (115: Operation now in progress)
> 30141#0: *33097 client closed prematurely connection, so upstream connection is
> closed too while connecting to upstream, client: 192.168.0.197, server:
> localhost, request: "GET /v/empty.flv?token=1234 HTTP/1.0", upstream:
> "memcached://192.168.0.197:11211", host: "192.168.0.197:7777"
>
> The upstream connects to memcached server to authenticate the access.
>
> Is that using upstream in access phase really a problem ? What should I do in
> this case ?
>
>
Hi again,
after doing some debug and check the log again, I see the lines
2009/03/12 13:48:51 [notice] 29606#0: signal 17 (SIGCHLD) received
2009/03/12 13:48:51 [alert] 29606#0: worker process 29607 exited on signal 11
instead of "close http connection " in the log. May be it's the reason ?
About my module, I call ngx_http_handler(r) again in the function
finalize_request of upstream, I think it can be one of the problem, too.
But I don't know where else to callback the ngx_http_handler after getting
the value from upstream.
I'm almost pulling my hair for this :(
More information about the nginx
mailing list