API question: large data processing handler

Maxim Dounin mdounin at mdounin.ru
Tue Jun 25 17:49:10 UTC 2013


Hello!

On Tue, Jun 25, 2013 at 01:03:38AM -0600, Julien Zefi wrote:

> hi,
> 
> 
> 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
> src/core/ngx_palloc.c:122
> #1  0x0000000000406a73 in ngx_pcalloc (pool=0x0, size=16) at
> src/core/ngx_palloc.c:305
> #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++.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx-devel mailing list