My money is on your request has been cleaned up in ngx_http_free_request():
https://github.com/nginx/nginx/blob/master/src/http/ngx_http_request.c#L3493 On Sat, Feb 21, 2015 at 3:19 PM, Tigran Bayburtsyan < [email protected]> wrote: > No this time I'm trying to do it with separate process by just sharing > memory between Nginx worker and my 3rd party excusable... > I'm making ngx_timer to send data when it will be received from shared > memory. > > It works fine, but I can't figure out why my r->pool is null ? > > I'm using Nginx 1.7 version. > Thanks for your help. > > > 2015-02-22 1:02 GMT+04:00 tommy watson <[email protected]> > : > >> Tigran, >> are you still using fork() ? As you describe here: >> http://mailman.nginx.org/pipermail/nginx-devel/2015-February/006554.html >> >> If so, as already explained, the other process is probably closing your >> request. >> >> Cheers. >> >> >> On Sat, Feb 21, 2015 at 2:55 PM, Tigran Bayburtsyan < >> [email protected]> wrote: >> >>> Hi All. >>> >>> I've created a function for adding my custom ngx_timer , but after 1st >>> time loop my r->pool is setting to NULL , also it sets NULL my >>> r->connection->log, and after second loop it throws exception on >>> *ngx_palloc >>> *because my r->pool is NULL. >>> I can't find out why, here is my function >>> >>> *void add_aling_event(ngx_event_t *e, ngx_http_request_t *r, void >>> (*handler), int timer)* >>> *{* >>> * if(e)* >>> * {* >>> * ngx_add_timer(e, timer);* >>> * return;* >>> * }* >>> * ngx_event_t *event=ngx_palloc(r->pool,sizeof(ngx_event_t));* >>> * memset(event,0,sizeof(ngx_event_t));* >>> * event->data=r;* >>> * event->handler=handler;* >>> * event->log=r->connection->log;* >>> * ngx_add_timer(event, timer);* >>> *}* >>> >>> And I'm calling this function like this. >>> >>> static ngx_int_t ngx_http_aling_handler(ngx_http_request_t *r) >>> { >>> ........ >>> ........ >>> add_aling_event(NULL, r, hack_func, 50); >>> return NGX_AGAIN; >>> } >>> >>> void hack_func(ngx_event_t *e) >>> { >>> ngx_http_request_t *r = e->data; >>> ........ >>> ........ >>> >>> switch(shmLen[1]) >>> { >>> case 1: // adding chain >>> { >>> .......................... >>> * ..........................* >>> };break; >>> case 2: // adding last chain >>> { >>> .......................... >>> * ..........................* >>> };break; >>> default: >>> { >>> add_aling_event(e, r, hack_func, 50); >>> };break; >>> } >>> } >>> >>> After 1 or 2 calls r->pool is sets to NULL ..... >>> >>> Please help me figure out this issue. >>> Maybe I'm doing something wrong. >>> I've did this code using example here >>> https://github.com/tommywatson/nginx-hello-world-module/blob/master/ngx_http_hello_world_module.c#L104 >>> >>> >>> Thanks. >>> >>> _______________________________________________ >>> nginx-devel mailing list >>> [email protected] >>> http://mailman.nginx.org/mailman/listinfo/nginx-devel >>> >> >> >> _______________________________________________ >> nginx-devel mailing list >> [email protected] >> http://mailman.nginx.org/mailman/listinfo/nginx-devel >> > > > _______________________________________________ > nginx-devel mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-devel >
_______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
