Re: BUG #6379: SQL Function Causes Back-end Crash - Mailing list pgsql-bugs

From Paul Ramsey
Subject Re: BUG #6379: SQL Function Causes Back-end Crash
Date
Msg-id CACowWR1_Uvzog1PAx+EoKGzLcwkN7xfZ=hgF-4cu3PWptOv10Q@mail.gmail.com
Whole thread Raw
In response to Re: BUG #6379: SQL Function Causes Back-end Crash  (hubert depesz lubaczewski <depesz@depesz.com>)
Responses Re: BUG #6379: SQL Function Causes Back-end Crash  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: BUG #6379: SQL Function Causes Back-end Crash  (Paul Ramsey <pramsey@cleverelephant.ca>)
List pgsql-bugs
One extra detail, my PostgreSQL is compiled with --enable-cassert.
This seems to be what sets off the killer function.

On Wed, Jan 4, 2012 at 11:25 AM, hubert depesz lubaczewski
<depesz@depesz.com> wrote:
> On Wed, Jan 04, 2012 at 07:17:17PM +0000, pramsey@cleverelephant.ca wrote:
>> The following bug has been logged on the website:
>>
>> Bug reference: =A0 =A0 =A06379
>> Logged by: =A0 =A0 =A0 =A0 =A0Paul Ramsey
>> Email address: =A0 =A0 =A0pramsey@cleverelephant.ca
>> PostgreSQL version: 9.1.2
>> Operating system: =A0 OSX 10.6.8
>> Description:
>>
>> CREATE OR REPLACE FUNCTION kill_backend()
>> RETURNS VOID
>> AS $$
>> =A0 DROP TABLE if EXISTS foo;
>> =A0 CREATE TABLE foo AS SELECT * FROM pg_class LIMIT 1;
>> $$ LANGUAGE 'SQL';
>
> Cannot replicate:
>
> (depesz@localhost:5910) 20:23:43 [depesz]
> $ CREATE OR REPLACE FUNCTION kill_backend()
>>> RETURNS VOID
>>> AS $$
>>> =A0 DROP TABLE if EXISTS foo;
>>> =A0 CREATE TABLE foo AS SELECT * FROM pg_class LIMIT 1;
>>> $$ LANGUAGE 'SQL';
> CREATE FUNCTION
> (depesz@localhost:5910) 20:23:49 [depesz]
> $ select kill_backend();
> NOTICE: =A0table "foo" does not exist, skipping
> CONTEXT: =A0SQL function "kill_backend" statement 1
> =A0kill_backend
> --------------
> =A0[null]
> (1 row)
>
> (depesz@localhost:5910) 20:23:55 [depesz]
> $ select kill_backend();
> =A0kill_backend
> --------------
> =A0[null]
> (1 row)
>
> (depesz@localhost:5910) 20:23:56 [depesz]
> $ select kill_backend();
> =A0kill_backend
> --------------
> =A0[null]
> (1 row)
>
> (depesz@localhost:5910) 20:23:58 [depesz]
> $ select version();
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0version
> -------------------------------------------------------------------------=
------------------------------
> =A0PostgreSQL 9.1.2 on x86_64-unknown-linux-gnu, compiled by gcc-4.6.real=
 (Debian 4.6.2-5) 4.6.2, 64-bit
> (1 row)
>
> Side note - definition as is, doesn't work on 9.2:
> $ CREATE OR REPLACE FUNCTION kill_backend()
>>> RETURNS VOID
>>> AS $$
>>> =A0 DROP TABLE if EXISTS foo;
>>> =A0 CREATE TABLE foo AS SELECT * FROM pg_class LIMIT 1;
>>> $$ LANGUAGE 'SQL';
> ERROR: =A0language "SQL" does not exist
>
> changing it to proper sql (not uppercase) fixed this problem.
>
> Best regards,
>
> depesz
>
> --
> The best thing about modern society is how easy it is to avoid contact wi=
th it.
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 http://depesz.com/

pgsql-bugs by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: BUG #6379: SQL Function Causes Back-end Crash
Next
From: Pavel Stehule
Date:
Subject: Re: BUG #6379: SQL Function Causes Back-end Crash