A test malloc program makes 64-Bit FC-4 dying
Reuben D. Budiardja
techlist at pathfinder.phys.utk.edu
Thu Nov 3 19:55:07 UTC 2005
Hello,
I have a small program that I use to check malloc. The program supposed to
exhaust memory (heap) from malloc, then quit. Running this program on a
32-Bit RHEL 4, RHEL 3, FC-4, I got the program to terminated pretty quicky
after malloc cannot allocated more memory.
However, when I run this program on my desktop: AMD64 FC 4 64-bit, the program
does not terminate after a while. But it grinds this machine to almost to a
halt, and I got page-swapping, etc. I finally managed to kill the program.
My question is, why does this happen in FC-4 64-bit ? what is the difference
on this machine and other machine ? This supposedly should not happend since
I run this program as regular user, and it seems "dangerous" that a regular
user can almost bring this machine down by running this.
I checked 'ulimit' on my shell and it's unlimited. But even when I set 'ulimit
-m 12000', the same thing still happened. On other machines, i didn't have to
do anything. I've checked also /etc/security/limits.conf and they are all
default (ie. nothing in it). Below is the program. Any help or info about
this is appreciated.
Thanks a lot.
------ kgobble.c----
#include <stdio.h>
#include <string.h>
main()
{
int *i;
int j=1;
char buf[15];
printf("Starting kgobble\n");
while(1)
{
i=(int *)malloc(8176 * j);
if (i==0)
{
write(1,"Memory exhaustion complete\n",27);
exit(0);
}
sprintf(buf,"%x\n",i);
write(1,buf,strlen(buf));
bzero(buf,15);
j++;
}
}
RDB
More information about the users
mailing list