Skip site navigation (1) Skip section navigation (2)

Re: plpython crash on exception

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Marko Kreen" <markokr(at)gmail(dot)com>
Cc: "Postgres Patches" <pgsql-patches(at)postgresql(dot)org>
Subject: Re: plpython crash on exception
Date: 2007-11-22 16:24:37
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-patches
"Marko Kreen" <markokr(at)gmail(dot)com> writes:
> Following function crashes plpython on x86-64 / gcc 4.1.2 / debian 4.0:
>   CREATE FUNCTION crashme(str_len integer)
>   RETURNS text AS $$
>     raise Exception("X" * str_len)
>   $$ LANGUAGE plpythonu;

>   SELECT crashme(1000);

> Problem turns out to be va_list handling in PLy_vprintf() which
> uses same va_list repeatedly.  Fix is to va_copy to temp variable.

This patch isn't acceptable because va_copy() isn't portable.

I'm kinda wondering why PLy_printf and the functions after it even
exist.  They look like rather poorly done reimplementations of
functionality that exists elsewhere in the backend (eg, stringinfo.c).
In particular, why malloc and not palloc?

			regards, tom lane

In response to


pgsql-patches by date

Next:From: Alvaro HerreraDate: 2007-11-22 18:29:21
Subject: Re: plpython crash on exception
Previous:From: Zdenek KotalaDate: 2007-11-22 15:59:09
Subject: Re: Fix pg_dump dependency on postgres.h

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group