Re: plpython crash on exception
От | Alvaro Herrera |
---|---|
Тема | Re: plpython crash on exception |
Дата | |
Msg-id | 20071122182921.GK4903@alvh.no-ip.org обсуждение исходный текст |
Ответ на | Re: plpython crash on exception (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: plpython crash on exception
|
Список | pgsql-patches |
Tom Lane escribió: > "Marko Kreen" <markokr@gmail.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? See attached patch. I didn't bother to change the PLy_malloc and friends because I think that would be too much change for 8.3. PLy_realloc is gone though because there are no callers left after this patch. -- Alvaro Herrera http://www.flickr.com/photos/alvherre/ "Ninguna manada de bestias tiene una voz tan horrible como la humana" (Orual)
Вложения
В списке pgsql-patches по дате отправления: