On Fri, Sep 10, 2010 at 1:45 PM, Bruce Momjian <br...@momjian.us> wrote: > > I am not sure how clear it is on Win32 that 128 is a special return > code.
I asked Microsoft platform support (roughly) that question. Here's the response: ===== >From NTSTATUS.H // // The success status codes 128 - 191 are reserved for wait completion // status with an abandoned mutant object. // #define STATUS_ABANDONED ((NTSTATUS)0x00000080L) // // MessageId: STATUS_ABANDONED_WAIT_0 // // MessageText: // // STATUS_ABANDONED_WAIT_0 // #define STATUS_ABANDONED_WAIT_0 ((NTSTATUS)0x00000080L) // winnt I believe what you are seeing is an abandoned wait on a mutant which is the same as a mutex. Therefore this error will be set whenever a mutex is abandoned. Per Concurrent Programming on Windows An abandoned mutex is a mutex kernel object that was not correctly released before its owning thread terminated. This can happen for any number of reasons. He goes on to discuss the case of a thread waiting on a global mutex that will get this error when it is awakened from a wait and the mutex had been abandoned by the previous owner. This is a difficult situation to recover from as you are not sure about the shared state that was being protected by the mutex. It Therefore I cannot give you specific areas where this will happen. Of course when systems are low on resources or they are completely depleted (100% CPU) things will stop working ===== -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise Postgres Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers