Re: BUG #5556: "cannot drop active portal" and "ERRORDATA_STACK_SIZE exceeded" lead to server crash
| От | Heikki Linnakangas |
|---|---|
| Тема | Re: BUG #5556: "cannot drop active portal" and "ERRORDATA_STACK_SIZE exceeded" lead to server crash |
| Дата | |
| Msg-id | 4C3C2314.10701@enterprisedb.com обсуждение исходный текст |
| Ответ на | Re: BUG #5556: "cannot drop active portal" and "ERRORDATA_STACK_SIZE exceeded" lead to server crash (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-bugs |
On 13/07/10 02:22, Tom Lane wrote:
> "Robert Walker"<robwalker01@speedymail.org> writes:
>> Description: "cannot drop active portal" and "ERRORDATA_STACK_SIZE
>> exceeded" lead to server crash
>
> We're really going to need to see a self-contained example to do much
> with this.
I see what's going on, I neglected to change subtransaction abort
cleanup the same way I did main transaction cleanup. This is
reproducible with:
CREATE OR REPLACE FUNCTION func() RETURNS VOID AS '
declare
erec record;
--cur CURSOR IS SELECT generate_series(1,10) AS a;
BEGIN
FOR erec IN EXECUTE ''SELECT generate_series(1,10) AS a'' LOOP
raise notice ''row %'', erec.a ;
IF (erec.a = 5) THEN PERFORM closefunc(); END IF;
END LOOP;
RETURN;
END;
' LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION closefunc() RETURNS void AS ' CLOSE "<unnamed
portal 1>"; ' LANGUAGE sql;
begin;
savepoint sp1;
select func();
rollback to savepoint sp1;
Thanks for the report! I'll fix that.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
В списке pgsql-bugs по дате отправления: