On Tue, Jan 16, 2007 at 10:20:04AM +0900, Takayuki Tsunakawa wrote: > From: "Magnus Hagander" <magnus@xxxxxxxxxxxx> > > But yeah, that's probably a good idea. A quick look at the code says > we > > should at least ask people who have this problem to give it a run > with > > logging at DEBUG5 which should then log exactly what the errorcode > was. > > Or are you seeing more places that need such logging first? > > I'm sorry we can't get get the Win32 error code to be displayed. I > got the following messages: > > 2007-01-16 09:24:48 DEBUG: checkpoint starting > 2007-01-16 09:24:48 ERROR: could not open relation 1663/10819/18296: > Permission denied > 2007-01-16 09:24:48 ERROR: checkpoint request failed > 2007-01-16 09:24:48 HINT: Consult recent messages in the server log > for details. > 2007-01-16 09:24:48 STATEMENT: checkpoint; > > > The reason is that src/port/open.c does not use _dosmaperr(). It > converts the Win32 error code to errno directly. EACCES is converted > from ERROR_ACCESS_DENIED only. Mmm, we may have to compromise as > Tom-san says. Good point. In this case, we *know* it's access denied then, and not some other error code. And actually, when I look at the API docs, our case now seems to be documented. Or am I misreading our situation. I have: "If you call CreateFile on a file that is pending deletion as a result of a previous call to DeleteFile, the function fails. The operating system delays file deletion until all handles to the file are closed. GetLastError returns ERROR_ACCESS_DENIED." //Magnus