]> git.saurik.com Git - redis.git/commit - src/zmalloc.h
Better Out of Memory handling.
authorantirez <antirez@gmail.com>
Fri, 24 Aug 2012 10:55:37 +0000 (12:55 +0200)
committerantirez <antirez@gmail.com>
Fri, 24 Aug 2012 10:55:37 +0000 (12:55 +0200)
commit6fdc635447b1a5dd0a4f7b13c15fdd6c108dabee
treeb8db5f26496115d56fc4e05fee0b3c20a38919c8
parent850789ce73dbb236591692708437e1bd705dbce3
Better Out of Memory handling.

The previous implementation of zmalloc.c was not able to handle out of
memory in an application-specific way. It just logged an error on
standard error, and aborted.

The result was that in the case of an actual out of memory in Redis
where malloc returned NULL (In Linux this actually happens under
specific overcommit policy settings and/or with no or little swap
configured) the error was not properly logged in the Redis log.

This commit fixes this problem, fixing issue #509.
Now the out of memory is properly reported in the Redis log and a stack
trace is generated.

The approach used is to provide a configurable out of memory handler
to zmalloc (otherwise the default one logging the event on the
standard output is used).
src/cluster.c
src/debug.c
src/redis.c
src/zmalloc.c
src/zmalloc.h