apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bill Stoddard <b...@wstoddard.com>
Subject Re: APR failing in low memory situations
Date Thu, 22 Feb 2007 15:46:45 GMT
M Joonas Pihlaja wrote:
> Hi list,
>
> I ran into a problem where a program I'm working on was
> segfaulting when calling apr_hash_set() due to memory exhaustion.
> So I was going to ask if we can have a version of apr_hash_set()
> which could return a status code if it fails to add a value to a
> hash.  Having a closer look at the source to APR, though, I
> realised that almost none of the memory allocation calls inside
> APR itself are checked for a NULL return value[1].
>
> The thing is, there are 208 calls to apr_palloc() and 133 to
> apr_pcalloc() in the source[2], so it would be quite a large job
> to fix all of them.  On the up side, of all the cases I did look
> at, they all seemed to be of the sort where it would be fairly
> easy to add the extra checks to make them fail with APR_ENOMEM.
>   

> However, I fear the ripple effect 
No kidding :-)  If your app has exhausted memory, your reduced to 
playing a never ending game of 'whack-a-mole' by attempting to tolerate 
all of the ensuing
'bad stuff' that happens.   The only OS that I am personally acquainted 
with that has a robust designed-in model for dealing with low/no memory 
conditions is IBM's zOS.  I don't see us ever adding null pointer checks 
to apr_palloc/apr_pcalloc returns.

Bill

Bill



Mime
View raw message