<div dir="ltr">Hi,<div>I have a question related to internal redirect, I am hoping someone from this forum can clarify. The email is a bit long since I wanted to provide enough background for my situation. <br><br>In my module, I am creating my module context and saving some state. Some of this state is allocated using ngx_palloc. I am releasing this memory by adding a pool clean up handler.</div><div><br></div><div>In my module, for certain requests I am doing an internal redirect. My code for redirect looks something like this:</div><div><br></div><div><font face="monospace">    ngx_http_internal_redirect(r, &new_uri, &r->args);<br>    ngx_http_finalize_request(r, NGX_DONE);<br></font></div><div><br></div><div>According to the documentation<br><a href="http://nginx.org/en/docs/dev/development_guide.html#http_request_redirection">http://nginx.org/en/docs/dev/development_guide.html#http_request_redirection</a></div><div><br></div><div>it says, on calling internal_redirect, the module context will be erased to avoid inconsistencies. It also says, the processing returns to the <span style="color:rgb(0,0,0);font-family:monospace;font-size:medium;text-align:justify">NGX_HTTP_SERVER_REWRITE_PHASE</span>. To understand the behavior better, I attached a debugger and added a breakpoint after the above two lines. When the debugger stopped at my breakpoint, my module context still seems to be valid. I added a second breakpoint in my rewrite-handler and allowed the debugger to continue. Now when the debugger stopped at the second breakpoint, my module context was erased which seems consistent with the documentation.</div><div><br></div><div>So my question is, if my context is erased, what happens to the memory I allocated before my module invoked the internal redirect call? I put a log statement in my cleanup function and I observed that it is getting invoked only once at the end of the request processing. It is not getting called when my context is erased after an internal redirect. Since I need my context data after redirection, do I reallocate and recreate it? Since my clean up code is getting called only once. Would this lead to a memory leak if I reallocated after the internal redirect call because I'd be allocated once before redirect and once after redirect. Any help or clarification in this regard is greatly appreciated. <br><br>Dk. </div><div><br></div></div>