<div dir="ltr">Hi Nginx experts,<div>  Thanks for the prompt reply to my earlier email on ngx_reset_pool()</div><div><br></div><div>Now, I am looking into ngx_array.c. I found an issue ngx_array_push(). Here are the details.</div>

<div>nginx will check if number of elements is equal to capacity of the array. If there is no space in the memory block, it allocates a new memory block with twice the size of array and copies over the elements. So far so good.</div>

<div>Assume that pool utility got entirely new memory block then a->pool is not updated with that of  'pool->current'. </div><div><br></div><div>I got an assumption from the code that a->pool is always the memory block that has the array elements by seeing the code in ngx_array_push(), ngx_array_push_n() or ngx_array_destroy() where checks were always done with pool pointer in array.</div>

<div><br></div><div>Functionalities issues would come up once there is an array overflow. I think for every new push of element after first crossing/overflow of the capacity, nginx will keep on creating new array. Thus it results in wastage of memory.</div>

<div><br></div><div>Please let me know if its a issue or correct my understanding.</div><div><br></div><div>Thanks,</div><div>-- <br>Ravi<br>
</div></div>