Re: [BUGS] BUG #5305: Postgres service stops when closing Windows session

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Magnus Hagander <magnus(at)hagander(dot)net>, Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Chris Travers <chris(at)metatrontech(dot)com>, Cristian Bittel <cbittel(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [BUGS] BUG #5305: Postgres service stops when closing Windows session
Date: 2010-09-15 08:03:22
Message-ID: AANLkTimCTkNKKrHCd3Ot6kAsrSS7SeDpOTcaLsEP7i+M@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On Fri, Sep 10, 2010 at 1:45 PM, Bruce Momjian <bruce(at)momjian(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2010-09-15 14:42:17 Re: BUG #5655: Composite Type Handles Null Incorrectly
Previous Message Tom Lane 2010-09-14 23:34:24 Re: BUG #5656: parameter 'client_min_messages' accept values not listed in enumvals

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2010-09-15 08:54:32 Re: Sync Replication with transaction-controlled durability
Previous Message Heikki Linnakangas 2010-09-15 07:49:19 Re: Serializable Snapshot Isolation