Memory problem with latest malloc.c

Jason Evans jasone at freebsd.org
Wed Jan 2 18:48:05 PST 2008


Joe Marcus Clarke wrote:
> GNOME applications use a Python driven XML parser to generate help
> document translations.  The engine takes the English XML document and
> applies translations to it.  The tool, xml2po, is installed as part of
> textproc/gnome-doc-utils.  I'm currently working on porting GNOME 2.21,
> and one of the Evolution help doc changes triggered a memory problem on
> my test machine.  Basically, with up to and including rev 1.154 of
> malloc.c, I am able to generate the help file with no errors.  With all
> later revs including 1.160, the Python process balloons up to about 512
> MB of memory, then dies.
> 
> The only malloc config I've done is symlink Aj to /etc/malloc.conf.  I'd
> be happy to provide the file an exact command used, but it might be
> easier to let me know if there's any debugging I could provide that
> would help here.

Revision 1.160 of malloc.c uses sbrk instead of mmap by default.  The 
intent is to make data segment resource limits useful.  So, there are 
two possible explanations I can think of for your problems.  The first 
possibility is that there is still a bug in malloc that you're hitting. 
  However, the other possibility is that the python program you're 
running really needs more than 512 MB of memory, and you're hitting the 
resource limit.

It would be really helpful to me if you run your program with 
MALLOC_OPTIONS=dM and monitor memory usage.  These flags cause mmap to 
be used instead of sbrk, and we can find out from that how much memory 
you really need.  If peak memory usage is substantially different when 
using mmap versus sbrk, there's probably a malloc bug.

This latest round of malloc changes hasn't been much fun.  Thanks for 
your help and patience.

Jason


More information about the freebsd-current mailing list