[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#247300: libc6: malloc() never fails on 2.4 kernels, making processes crash



On 2004-05-09 17:03:13 +0200, Wolfram Gloger wrote:
> I know, but see /etc/initscript.  Together with the number of
> processes (also ulimited), it effectively is a limit for the system.
> Not the one you like, obviously, but nevertheless a functional one.

Definitely not realistic. I don't want to set any limit. The machine
is used in particular to do some computations that need a lot of
memory.

> > Wrong remark. Solaris behaves correctly, for instance (i.e. if there
> > is no memory left, malloc() returns 0, without needing to set limits
> > on processes).
> 
> "Correctly"?  First, I doubt that Solaris has no overcommitment -- try
> a test with fork() (it should then fail unless there is enough
> physical memory left for a second copy of _all_ writeable pages of the
> current process).

fork() fails when there isn't enough memory, but this is a feature,
and this can be controlled by the programmer. I used Solaris for
several years and this was quite rare. Also, the processes that
take much memory would probably quit early enough in a nice way.

> Second, I for one would consider the absence of overcommitment as a
> bad misfeature. Good luck with the kernel bug report.

The 2.6 kernel seems to have better memory handling (but I couldn't
try yet). Concerning the 2.4 kernel, the problem seems to be the
documentation.

-- 
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% validated (X)HTML - Acorn / RISC OS / ARM, free software, YP17,
Championnat International des Jeux Mathématiques et Logiques, etc.
Work: CR INRIA - computer arithmetic / SPACES project at LORIA



Reply to: