Test the OOM situation

Peter Leonov gojpeg at gmail.com
Thu May 20 01:25:03 MSD 2010


On 19.05.2010, at 17:31, Maxim Dounin <mdounin at mdounin.ru> wrote:

> Hello!
> On Wed, May 19, 2010 at 04:01:07PM +0400, Peter Leonov wrote:
>> On 18.05.2010, at 23:26, Maxim Dounin wrote:
> [...]
>>> Injecting random errors into allocation routines proven to be much
>>> more usable.  Just for completeness: attached trivial patch which
>>> I used while searching for allocation error handling bugs in nginx
>>> itself.
>> That is near what I was looking for :)
>> But it gives a very interesting results. For example a crash within  
>> the core:
>> 40740 Bus error               (core dumped)
> [...]
> This may happen due to bugs in a module as well.
And it is so. The module may forget to finalize with NGX_ERROR the  
request on OOM situation.

> If you are able
> to reproduce the problem without non-official modules/patches -
> this probably worth further investigation.
It is impossible because the test case is written in JavaScript in  
this module.

> You may want to try to
> reproduce the problem without optimization and/or share a way to
> reproduce it.
Reproducing with ngx_random() was a pain. Now it counts the calls to  
the alloc funcs and fails at a specific moment.

IMHO, such a functionality (manageable allocation fails) is good to  
have it built into nginx. With a candy configuration and command line  
options, debug points and so on ;)

> Note well: last time I've tested nginx with these patches heavily
> was before 0.8.0.  But I don't see any immediate segfaults/bus
> errors while running test suite against 0.8.37 with these patches.

Thank you Maxim for your time and help, again :)

Best regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-devel/attachments/20100520/a85d72e1/attachment.html>

More information about the nginx-devel mailing list