Date: 13 Sep 1997 18:14:44 -0000 From: m.koster@webcrawler.com To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: bin/4526: realloc causes excessive swapping (more info for bin/4524) Message-ID: <19970913181444.12748.qmail@mail.webcrawler.com> Resent-Message-ID: <199709131820.LAA18566@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 4526
>Category: bin
>Synopsis: realloc causes excessive swapping (more info for bin/4524)
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Sep 13 11:20:01 PDT 1997
>Last-Modified:
>Originator: Martijn Koster
>Organization:
Excite, Inc.
>Release: FreeBSD 2.2-STABLE i386
>Environment:
FreeBSD 2.2-STABLE #0: Wed Sep 10 12:00:23 PDT 1997
>Description:
This provides more information for bin/4524
Repeatedly calling realloc causes much more memory to be used
then you'd expect. For example, when procmail tried reading an
8M message, this was sufficient to run a 64M (128M swap) machine
doing nothing else out of swap (and into the ground :-)
>How-To-Repeat:
This code reproduced the problem outside procmail:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int
main(int argc, char* argv[])
{
size_t size = 0;
char *p = NULL;
int max = 8404992;
if (argc > 2) {
fprintf(stderr, "Usage: %s maxmem\n", argv[0]);
exit(-1);
}
if (argc > 1)
max = atoi(argv[1]);
while(1) {
size += 16384;
if (size > max)
break;
fprintf(stderr, "realloc(%u)\n", size);
if ((p = realloc(p, size)) == NULL) {
fprintf(stderr, "out of memory\n");
exit(-1);
}
}
{
int c;
printf("done. press return to quit\n");
read(0, &c, 1);
}
}
>Fix:
Recompiling the code with the malloc.c from freebsd-current
* $Id: malloc.c,v 1.32 1997/08/31 05:59:39 phk Exp $
fixed things (as did recompiling libc with that malloc.c)
Now the program is killed after getting much further than before;
(I assume when it hits its resource limits) instead of
impacting the machine.
This fix was previously reported by jfieber@indiana.edu back in June
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970913181444.12748.qmail>
