Re: BUG #4958: Stats collector hung on WaitForMultipleObjectsEx while attempting to recv a datagram - Mailing list pgsql-bugs

From Robert Haas
Subject Re: BUG #4958: Stats collector hung on WaitForMultipleObjectsEx while attempting to recv a datagram
Date
Msg-id CA+TgmobgZtEobmee7t9ozF3L5Rrn6W1_qX4w5FCFLtkjRNwbFA@mail.gmail.com
Whole thread Raw
In response to Re: BUG #4958: Stats collector hung on WaitForMultipleObjectsEx while attempting to recv a datagram  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #4958: Stats collector hung on WaitForMultipleObjectsEx while attempting to recv a datagram
List pgsql-bugs
On Wed, Aug 22, 2012 at 10:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Tue, Aug 21, 2012 at 4:30 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> Meanwhile, back at the ranch: I'm fine with applying that patch now that
>>> it's had some field testing.
>
>> Attached is a version that applies OK to 9.1, after resolving some
>> conflicts.  Review appreciated.  It wasn't exactly clear to me how to
>> handle the ereport/elog calls.
>
> It looks sane to me in a quick once-over (bearing in mind I can't test
> it).  What's bothering you about the ereport calls?

Well, 9.1 currently has:

errmsg_internal("failed to enumerate network events: %i", (int) GetLastError()))

Prior to your patch, master had:

errmsg_internal("failed to enumerate network events: error code %lu",
GetLastError())

And you changed it to:

elog(ERROR, "failed to enumerate network events: error code %u",
WSAGetLastError())

So obviously there's a conflict there.  In the previously-posted
version, I chose to just take your version, but I'm not sure whether
it would be better -- in the back branches -- to simply replace
GetLastError() with WSAGetLastError() and leave it alone otherwise.

>> What to do pre-9.1 is a bit less clear to me, as the latch machinery
>> doesn't exist at all in those versions.  Some of the fixes can
>> probably still be pulled out and applied, though.
>
> Presumably the changes in win32/socket.c could still be applied; but
> on the other hand it's not clear there's so much need for them pre-9.1.
> IIRC most of the point of this patch was to eliminate the tug-of-war
> over the socket's event attachment between socket.c and win32_latch.c,
> so maybe there's not a bug pre-9.1.

Well, this thread started as a bug report against 8.3.7...

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

pgsql-bugs by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Minor inheritance/check bug: Inconsistent behavior
Next
From: Alvaro Herrera
Date:
Subject: Re: BUG #4958: Stats collector hung on WaitForMultipleObjectsEx while attempting to recv a datagram