ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> writes:
> I tested HEAD on Windows and saw some Windows-specific logs.
> LOG: Windows fopen("base/16384/pg_internal.init","rb") failed: code 2, errno 2
> LOG: Windows fopen("global/pgstat.stat","rb") failed: code 32, errno 13
> The code 2 means ERROR_FILE_NOT_FOUND, "The system cannot find the file
> specified." and the code 32 means ERROR_SHARING_VIOLATION, "The process
> cannot access the file because it is being used by another process."
The first of those is probably normal operation --- we remove
pg_internal.init whenever it is out-of-date. The second is bad though.
> We use the tmpfile-and-rename trick on both pg_internal.init and pgstat.stat.
> Are there any incompatible behavior in the trick between POSIX and Windows?
It looks to me like we have implemented Windows' FILE_SHARE_DELETE flag
for open() calls but not for fopen(). Isn't this a problem? We do use
fopen() for stuff like pgstat.stat.
regards, tom lane