Helloo,do anyone has this situation?

cruze guo gyb997 at gmail.com
Tue Apr 21 06:45:37 UTC 2015


pls give me sometime, I will give the detail document
about this "bug"....

2015-04-16 18:02 GMT+08:00 cruze guo <gyb997 at gmail.com>:
> I compile the nginx with this configure.
> --prefix=/home/svn/nginx --user=svn
> --add-module=../ngx_devel_kit-master
> --add-module=../srcache-nginx-module-master
> --add-module=../redis2-nginx-module-master
> --add-module=../set-misc-nginx-module-master
> --add-module=../echo-nginx-module-master
> --add-module=../ngx_http_redis-0.3.7
> --add-module=../lua-nginx-module-0.9.13 --with-debug
>
> I want to use nginx +redis for caching the svn webdav method.
> I also patch some code for support the webdav http method,propfind
> ,but in this situation,it's not import.
>
> The svn client use chunked encode for http client request .When I use
> the TortoiseSVN 1.8.11 to test my cache system.
> I get this
>
> read: 21, 00007FFFF1964830, 2048, 131072
> 2015/04/08 13:08:58 [debug] 16486#0: *1 read: 21, 00007FFFF1964830, 2048, 133120
> 2015/04/08 13:08:58 [debug] 16486#0: *1 read: 21, 00007FFFF1964830, 2048, 135168
> 2015/04/08 13:08:58 [debug] 16486#0: *1 read: 21, 00007FFFF1964830, 2048, 137216
> 2015/04/08 13:08:58 [debug] 16486#0: *1 read: 21, 00007FFFF1964830, 2048, 139264
> 2015/04/08 13:08:58 [debug] 16486#0: *1 read: 21, 00007FFFF1964830, 2048, 141312
> 2015/04/08 13:08:58 [debug] 16486#0: *1 read: 21, 00007FFFF1964830, 2048, 143360
> 2015/04/08 13:08:58 [debug] 16486#0: *1 access phase: 8
> 2015/04/08 13:08:58 [debug] 16486#0: *1 lua access handler,
> uri:"/ps/se/branches" c:1
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http client request body preread 120
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http request body chunked filter
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http body chunked buf t:1 f:0
> 0000000000746440, pos 0000000000746609, size: 120 file: 0, size: 0 <==
> 120 IS NOT ENOUGH  FOR REQUEST !!!!!
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http chunked byte: 31 s:0
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http chunked byte: 32 s:1
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http chunked byte: 63 s:1
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http chunked byte: 0D s:1
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http chunked byte: 0A s:3
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http chunked byte: 3C s:4
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http body chunked buf t:1 f:0
> 0000000000746440, pos 0000000000746681, size: 0 file: 0, size: 0
> 2015/04/08 13:08:58 [debug] 16486#0: *1 http body new buf t:1 f:0
> 000000000074660E, pos 000000000074660E, size: 115 file: 0, size: 0
> 2015/04/08 13:08:58 [debug] 16486#0: *1 malloc:
> 00007FD8C33DC010:1048576  <===  SO MALLOC NEW BUF
>
> but ,the (struct ngx_http_request_s) 's  write_event_handler will be
> set to ngx_http_request_empty_handler.
>
> in ngx_http_request_body.c
> function ngx_http_read_client_request_body
> r->write_event_handler = ngx_http_request_empty_handler;
>
> It mean  nothing will handle the next step,when you read all client
> request body!!
> I want to know how to take the request body buffer bigger ?
> or,can I use this ugly patch to solve this problem?
>
> for struct ngx_http_request_s {
>    .........
>     ngx_http_event_handler_pt         read_event_handler;
>     ngx_http_event_handler_pt         write_event_handler;
>     ngx_http_event_handler_pt         write_event_handler_back;  <=== ADD this
> ........
> }
>
> it's ugly but it's useful.



More information about the nginx mailing list