Could not crash with your program, but it crashed quite fast with this one:


#include <u.h>
#include <libc.h>
#include <thread.h>

enum {
   NPROC=10,
};

void
crproc(void * p)
{
   int i = (int)p;

while (1) { int fd;
       char *name = smprint("/tmp/%d", i);
       fd = create(name, OWRITE, 0666);
       if (fd < 0) exits(nil);
       // free(name);
       close(fd);
       i += NPROC;
   }
}

void
threadmain(int, char**)
{
   for (int n = 0; n < NPROC-1; n++)
       proccreate(crproc, (void *)n, 4096);
   crproc((void *) (NPROC-1));
}


ron minnich wrote:
I'm trying to create a reproducer. This little gem does crash it
frequently. Note that tar and mk install are doing lots of creates too
-- you're welcome to try this.

term% cat lotsafiles.c
#include <u.h>
#include <libc.h>

void
main(int, char**)
{
        int i = 0;
        while (1) {     
                int fd;
                char *name = smprint("/tmp/%d", i);
                fd = create(name, OWRITE, 0666);
                if (fd < 0) exits(nil);
                close(fd);
                i++;
        }
}




Reply via email to