Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jul 2003 13:45:58 -0700
From:      Wes Peters <wes@softweyr.com>
To:        Barney Wolff <barney@databus.com>, Doug White <dwhite@gumbysoft.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: malloc does not return null when out of memory
Message-ID:  <200307281345.58831.wes@softweyr.com>
In-Reply-To: <20030723221336.GA26555@pit.databus.com>
References:  <20030723173427.GA72876@vmunix.com> <20030723140329.C92624@carver.gumbysoft.com> <20030723221336.GA26555@pit.databus.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 23 July 2003 15:13, Barney Wolff wrote:
> On Wed, Jul 23, 2003 at 02:09:00PM -0700, Doug White wrote:
> > On Wed, 23 Jul 2003, Gabor wrote:
> > > We have a little soekris box running freebsd that uses racoon for
> > > key management.  It's used for setting up an ipsec tunnel.  I
> > > noticed that one of these devices lost the tunnel this morning. 
> > > I looked in the log and saw this
> > >
> > > Jul 23 01:37:57 m0n0wall /kernel: pid 80 (racoon), uid 0, was
> > > killed: out of swap space
> >
> > [...]
> >
> > > Here is the tail end of the output.  It dies when trying to poke
> > > at the memory using memset.  If I just malloc without the memset,
> > > it never even dies.
> >
> > That's normal. If you malloc() memory and never touch it then it is
> > never actually allocated.
> >
> > Your problem is that you're running out of memory.  Try killing off
> > unneeded daemons and set maxusers to a low value (like 32).  Also
> > try reducing the size of your mfs partitions, if you're using
> > rc.diskless2. I don't think raccoon is much of a memory pig, unless
> > you have a huge number of connections.
>
> Shouldn't malloc return 0 when out of memory rather than returning
> an address that won't work?  I believe that was the complaint. 
> Presumably having NO_SWAPPING has something to do with it, but
> filling the swap might well do the same thing.

Define "out of memory".  FreeBSD employs swap overcommit; the memory 
pages aren't allocated until they are actually touched.  This is such a 
Frequently Asked Question it's really a Constantly Asked Question and 
*any* search of the archives would've turned up dozens of conversations 
on this exact same topic.

In other words, let's not carry this on any further.

-- 
         "Where am I, and what am I doing in this handbasket?"

Wes Peters                                              wes@softweyr.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307281345.58831.wes>