In message <[EMAIL PROTECTED]>, Tom Lane writes: >Kenneth Lareau <[EMAIL PROTECTED]> writes: >> In message <[EMAIL PROTECTED]>, Tom Lane writes: >>> I suppose that manually creating the data directory before running >>> initdb would also avoid this issue, since the mkdir(2) loop is only >>> entered if we don't find the directory in existence. > >> Actually, creating the 'data' directory first doesn't work either: > >Good point. > >> I don't know why the command 'mkdir' doesn't exhibit the >> same problem as the function 'mkdir', but running: > >> mkdir /software/postgresql-8.0.0 > >> produces the correct error "File exists" on my system. > >Could you truss that and see what it does? It would be a simple change >in initdb to make it stat before mkdir instead of after, but I'm not >totally convinced that would fix the problem. If mkdir returns a funny >error code then stat might as well ... > > regards, tom lane >
Here's the relevant truss output from 'mkdir /software/postgresql-8.0.0' on my Solaris 9 system: 10832: umask(0) = 077 10832: umask(077) = 0 10832: mkdir("/software/postgresql-8.0.0", 0777) Err#89 ENOSYS 10832: stat64("/software/postgresql-8.0.0", 0xFFBFFA38) = 0 10832: fstat64(2, 0xFFBFEB78) = 0 10832: write(2, " m k d i r", 5) = 5 10832: write(2, " : ", 2) = 2 10832: write(2, " c a n n o t c r e a t".., 24) = 24 10832: write(2, " ` / s o f t w a r e / p".., 28) = 28 10832: write(2, " : ", 2) = 2 10832: write(2, " F i l e e x i s t s", 11) = 11 10832: write(2, "\n", 1) = 1 10832: _exit(1) It's doing the stat after the mkdir attempt it seems, and coming back with the correct response. Hmm, maybe I should look at the Solaris 8 code for the mkdir command... Ken Lareau [EMAIL PROTECTED] ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly