Re: walreceiver is uninterruptible on win32

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: walreceiver is uninterruptible on win32
Date: 2010-03-15 09:14:07
Message-ID: 3f0b79eb1003150214v5427d107u60a60b394000d648@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Mar 12, 2010 at 8:13 PM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
> On Wed, Mar 10, 2010 at 10:09, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>> Hi,
>>
>> http://archives.postgresql.org/pgsql-hackers/2010-01/msg01672.php
>> On win32, the blocking libpq functions like PQconnectdb() and
>> PQexec() are uninterruptible since they use the vanilla select()
>> instead of our signal emulation layer compatible select().
>> Nevertheless, currently walreceiver uses them to establish a
>> connection, send a handshake message and wait for the reply.
>> So walreceiver also becomes uninterruptible for a while. This
>> is the must-fix problem for 9.0.
>>
>> I replaced the blocking libpq functions currently used with
>> asynchronous ones, and used the emulated version of select()
>> to wait, to make walreceiver interruptible. Here is the patch.
>
> These are issues that affect other things running libpq in the backend
> as well, right? Such as dblink?

Yes. So Heikki wrote the patch for dblink.
http://archives.postgresql.org/pgsql-hackers/2010-01/msg02072.php

> Perhaps we can factor out most of this
> into functions in backend/port/win32 so that we can re-use it fro
> there?

Sorry. I couldn't get your point. Could you explain it in detail?

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2010-03-15 09:20:26 Re: Getting to beta1
Previous Message Erik Rijkers 2010-03-14 23:37:08 Re: Assertion failure twophase.c (3) (testing HS/SR)