Re: parallel workers and client encoding

From: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: parallel workers and client encoding
Date: 2016-06-14 02:27:24
Message-ID: fa5b0765-9f62-ec4e-6be1-314971be31e1@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 6/10/16 2:08 PM, Peter Eisentraut wrote:
> On 6/6/16 9:45 PM, Peter Eisentraut wrote:
>> Attached is a patch to illustrates how this could be fixed. There might
>> be similar issues elsewhere. The notification propagation in particular
>> could be affected.
>
> Tracing the code, NotificationResponse messages are converted to the
> client encoding during transmission from the worker to the leader and
> then sent on binarily to the client, so this should appear to work at
> the moment. But it will break if we make a change like I suggested,
> namely changing the client encoding in the worker process to be the
> server encoding, because then nothing will transcode it before it
> reaches the client anymore. So this will need a well-considered
> solution in concert with the error/notice issue.
>
> Then again, it's not clear to me under what circumstances a parallel
> worker could or should be sending a NotificationResponse.

Modulo that last point, here is a patch that shows how I think this
could work, in combination with the patch I posted previously that sets
the "client encoding" in the parallel worker to the server encoding.

This patch disassembles the NotificationResponse message with a
temporary client encoding, and then sends it off to the real frontend
using the real client encoding.

Doing it this way also takes care of a few special cases that
NotifyMyFrontEnd() handles, such as a client with protocol version 2
that doesn't expect a payload in the message.

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachment Content-Type Size
parallel-notify.patch text/plain 2.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2016-06-14 02:29:29 Re: parallel workers and client encoding
Previous Message Haribabu Kommi 2016-06-14 02:20:06 Re: WIP: Data at rest encryption