Hello,
Recently we have upgraded postgres from version 12 to 13 and upgraded
plpgsql_check to the latest version but after upgrade when calling the below function causing postgres restart .
CREATE OR REPLACE FUNCTION pro.po_check(
)
RETURNS void
LANGUAGE 'plpgsql'
COST 100
VOLATILE SECURITY DEFINER PARALLEL UNSAFE
AS $BODY$
DECLARE
BEGIN
PERFORM p.oid, n.nspname, p.proname, plpgsql_check_function(p.oid)
FROM pg_catalog.pg_namespace n
JOIN pg_catalog.pg_proc p ON pronamespace = n.oid
JOIN pg_catalog.pg_language l ON p.prolang = l.oid
WHERE l.lanname = 'plpgsql' AND p.prorettype <> 2279
and upper(n.nspname) like upper('Pro');
END;
$BODY$;
)
RETURNS void
LANGUAGE 'plpgsql'
COST 100
VOLATILE SECURITY DEFINER PARALLEL UNSAFE
AS $BODY$
DECLARE
BEGIN
PERFORM p.oid, n.nspname, p.proname, plpgsql_check_function(p.oid)
FROM pg_catalog.pg_namespace n
JOIN pg_catalog.pg_proc p ON pronamespace = n.oid
JOIN pg_catalog.pg_language l ON p.prolang = l.oid
WHERE l.lanname = 'plpgsql' AND p.prorettype <> 2279
and upper(n.nspname) like upper('Pro');
END;
$BODY$;
and the error in syslogs shows
kernel: [93631.415790] postgres[86383]: segfault at 80 ip 00007f07f3e3eefd sp 00007fffcf1db500 error 4 in plpgsql_check.so[7f07f3e2e000+34000]
--
Shashidhar