Re: pgtcl combined with view with certain insert/update-rules => crash - Mailing list pgsql-bugs

From Tom Lane
Subject Re: pgtcl combined with view with certain insert/update-rules => crash
Date
Msg-id 4746.1043794983@sss.pgh.pa.us
Whole thread Raw
In response to pgtcl combined with view with certain insert/update-rules => crash  (Wolfgang Walter <wolfgang.walter@studentenwerk.mhn.de>)
List pgsql-bugs
Wolfgang Walter <wolfgang.walter@studentenwerk.mhn.de> writes:
> since 7.3 we observe repeatable crashes of the backend under certain
> conditions.

I can't reproduce your problem... using 7.3 branch here, I did this:

bug=# create table b (f int);
CREATE TABLE
bug=# CREATE VIEW a AS SELECT f FROM b;
CREATE VIEW
bug=# create function xyz(int) returns int as '
bug'# begin
bug'# return $1;
bug'# end' language plpgsql;
CREATE FUNCTION
bug=# select xyz(33);
 xyz
-----
  33
(1 row)

bug=# CREATE RULE r AS ON INSERT TO a DO INSTEAD (
bug(# SELECT xyz(NEW.f);
bug(# );
CREATE RULE
bug=# CREATE FUNCTION t () RETURNS VOID AS '
bug'# spi_exec "INSERT INTO a (f) VALUES (''5'')"
bug'# ' LANGUAGE 'pltcl';
CREATE FUNCTION
bug=# select t();
 t
---

(1 row)

bug=#

Perhaps there is a platform-specific issue, but one thing I'd advise
checking first is whether you are linking to the 7.3 versions of
pltcl.so and plpgsql.so.  If you've got absolute paths in the CREATE
FUNCTION commands for the language handlers, you might be pulling in
old versions of those handlers, leading to all kinds of weird behavior.
Preferably the pg_proc entries should look like

bug=# select proname,prosrc,probin from pg_proc where proname like '%_handler';

       proname        |        prosrc        |     probin
----------------------+----------------------+-----------------
 pltcl_call_handler   | pltcl_call_handler   | $libdir/pltcl
 plpgsql_call_handler | plpgsql_call_handler | $libdir/plpgsql
(2 rows)

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: No migration path for MONEY
Next
From: Tom Lane
Date:
Subject: Re: [CHECKER] 9 potential out-of-bounds array access errors