A server crash with a SQL procedure returning a user-defined type on 14.8

Yahor Yuzefovich <yahor@cockroachlabs.com>

From: Yahor Yuzefovich <yahor@cockroachlabs.com>
To: pgsql-bugs@lists.postgresql.org
Date: 2024-03-11T22:19:37Z
Lists: pgsql-bugs
Hello there,

I believe I encountered a bug with the following reproduction steps:

CREATE TYPE typ AS (a INT, b INT); CREATE PROCEDURE p_udt(OUT typ) AS $$
SELECT (1, 2); $$ LANGUAGE SQL; CALL p_udt(NULL);

which results in a server crash on version 14.8:

server closed the connection unexpectedly

This probably means the server terminated abnormally

before or while processing the request.

The connection to the server was lost. Attempting reset: WARNING:  terminating
connection because of crash of another server process

DETAIL:  The postmaster has commanded this server process to roll back the
current transaction and exit, because another server process exited
abnormally and possibly corrupted shared memory.

HINT:  In a moment you should be able to reconnect to the database and
repeat your command.

Failed.


Best,

Yahor Yuzefovich

Commits

  1. Fix confusion about the return rowtype of SQL-language procedures.