I encountered an error when I fast shutdown 8.1.1 on Win2k: FATAL: semctl(1672698088, 12, SETVAL, 0) failed: A blocking operation was interrupted by a call to WSACancelBlockingCall.
A similar error on 8.1/win2003 was reported on pgsql-general (sorry, I can't dig out the original post from our web archives): From: Niederland Date: Tues, Dec 13 2005 9:49 am 2005-12-12 20:30:00 FATAL: semctl(50884184, 15, SETVAL, 0) failed: A non-blocking socket operation could not be completed immediately. --- There are two problems here: (1) Why a socket error? In port/win32.h, we have #undef EAGAIN #undef EINTR #define EINTR WSAEINTR #define EAGAIN WSAEWOULDBLOCK What's the rationale of doing so? (2) What's happened here? It may come from PGSemaphoreReset(), and win32 semop() looks like this: ret = WaitForMultipleObjectsEx(2, wh, FALSE, (sops[0].sem_flg & IPC_NOWAIT) ? 0 : INFINITE, TRUE); ... else if (ret == WAIT_OBJECT_0 + 1 || ret == WAIT_IO_COMPLETION) { pgwin32_dispatch_queued_signals(); errno = EINTR; } else if (ret == WAIT_TIMEOUT) errno = EAGAIN; So it seems the EINTR is caused by an incoming signal, the EAGAIN is caused by a TIMEOUT ... any ideas? Regards, Qingqing ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match