pgsql: Disallow LISTEN in background workers. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Disallow LISTEN in background workers.
Date
Msg-id E1mQXpT-0004ec-79@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Disallow LISTEN in background workers.

It's possible to execute user-defined SQL in some background processes;
for example, logical replication workers can fire triggers.  This opens
the possibility that someone would try to execute LISTEN in such a
context.  But since only regular backends ever call
ProcessNotifyInterrupt, no messages would actually be received, and
thus the registered listener would simply prevent the message queue
from being cleaned.  Eventually NOTIFY would stop working, which is bad.

Perhaps someday somebody will invent infrastructure to make listening
in a background worker actually useful.  In the meantime, forbid it.

Back-patch to v13, which is where we introduced the MyBackendType
variable.  It'd be a lot harder to implement the check without that,
and it doesn't seem worth the trouble.

Discussion: https://postgr.es/m/153243441449.1404.2274116228506175596@wrigleys.postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1316be28664f1834ac091113217537101331bdf3

Modified Files
--------------
src/backend/tcop/utility.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: Re: pgsql: Make node output prefix match node structure name
Next
From: Peter Eisentraut
Date:
Subject: pgsql: Add Cardinality typedef