Re: fork/exec patch: pre-CreateProcess finalization - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: fork/exec patch: pre-CreateProcess finalization
Date
Msg-id 200401090446.i094kRm10934@candle.pha.pa.us
Whole thread Raw
In response to Re: fork/exec patch: pre-CreateProcess finalization  (Claudio Natoli <claudio.natoli@memetrics.com>)
List pgsql-patches
Claudio Natoli wrote:
>
> > I think they are saying put the cancel key inside the existing shared
> > memory segment.
>
> Ok. Thanks.
>
> > I don't know when we actually attach to the main shared
> > memory sigment in the child, but it would have to be sooner than when we
> > need the cancel key.
>
> Yes. Currently, it happens too late.
>
> I'll put my hand up to have a go at this fixing this (and getting
> processCancelRequest to work under Win32/EXEC_BACKEND at the same time), if
> no one else particularly cares to.
>
> Just to be clear, this would involve turning the BackendList dlllist into an
> array in shared memory, right? If so, a couple of questions:
>   - what is a suitably large size for this array (2 * MaxBackends, ala
> canAcceptConnections?)
>   - the postmaster makes all calls referencing this list, with the exception
> of processCancelRequest, correct? So, as Tom was alluding to, no locking is
> required (or desired!), and we'll just need to be careful not to introduce a
> race condition into processCancelRequest.

I assumed a much simpler solution.  I thought we would just have:

    struct {
        pid_t    pid;
        int     cancel_key;
    } PidCancel[maxbackend];

in shared memory and we would just sequentially scan looking for a pid
match?  Is that wrong?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Jan Wieck
Date:
Subject: Re: fork/exec patch: pre-CreateProcess finalization
Next
From: Bruce Momjian
Date:
Subject: Re: Proposed replacement for pipe under Win32