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++;
}
}