API question: large data processing handler
mdounin at mdounin.ru
Tue Jun 25 17:49:10 UTC 2013
On Tue, Jun 25, 2013 at 01:03:38AM -0600, Julien Zefi wrote:
> On Thu, Jun 20, 2013 at 3:11 AM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> > Hello!
> > On Wed, Jun 19, 2013 at 11:42:57PM -0600, Julien Zefi wrote:
> > > i tried to follow the suggestion of using a timer and a new handler for
> > the
> > > write callback without luck, indeed there is something wrong on my end.
> > >
> > > if you have some minute to review, I wrote a simple test case, my goal is
> > > to make ngx_http_test_stream_handler(..) to be called every 10ms and send
> > > some data to the browser until this same function decide to stop
> > working...
> > Two obvious problems:
> > 1) You try to send data from stack, which is wrong as nginx might
> > not be able to send data immediately.
> > 2) You set timer only once. Note timers are not periodic, and
> > this will result in only call of the timer handler function.
> > Haven't looked any further.
> thanks for your comments. Taking in count tha changes provided i still face
> this problem:
> #0 0x00000000004065d6 in ngx_palloc (pool=0x0, size=16) at
> #1 0x0000000000406a73 in ngx_pcalloc (pool=0x0, size=16) at
> #2 0x000000000046b76d in ngx_http_chunked_header_filter (r=0x6eebb0)
> at src/http/modules/ngx_http_chunked_filter_module.c:82
> #3 0x000000000046bdc4 in ngx_http_range_header_filter (r=0x6eebb0)
> at src/http/modules/ngx_http_range_filter_module.c:160
> why my pool is always NULL ? do i am missing some initialization somewhere ?
Part of the backtrace shown suggests you trigger request activity after
the request was freed. Most likely you've forgot r->main->count++.
More information about the nginx-devel