Thread: Fatal error "stack empty" on ROLLBACK

Fatal error "stack empty" on ROLLBACK

From
"dandl"
Date:
SPI call to execute "ROLLBACK" triggers FATAL ERROR "stack empty". What does
it mean? Nothing in the docs I can see.

In the particular case there were no update commands issued between BEGIN
and ROLLBACK. Is that what it means? Or am I missing something?

Regards
David M Bennett FACS

Andl - A New Database Language - andl.org




Re: Fatal error "stack empty" on ROLLBACK

From
Tom Lane
Date:
"dandl" <david@andl.org> writes:
> SPI call to execute "ROLLBACK" triggers FATAL ERROR "stack empty". What does
> it mean? Nothing in the docs I can see.

I can't find that string anywhere in the Postgres sources.  However,
SPI should refuse to execute ROLLBACK, or any other transaction control
command; it should give you back a SPI_ERROR_TRANSACTION result code
instead.  Maybe you're not checking for failure results and expecting
the command to have done something?

            regards, tom lane


Re: Fatal error "stack empty" on ROLLBACK

From
"dandl"
Date:
Hi Tom

You're very diligent at making sure queries get answered, and I appreciate
that.

Yes, this one was indeed my bug (the message comes from deep inside dotnet),
triggered by the unexpected error result code.

False alarm. Thanks for the suggestions.

Regards
David M Bennett FACS

Andl - A New Database Language - andl.org



> -----Original Message-----
> From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> Sent: Tuesday, 24 May 2016 2:56 AM
> To: dandl <david@andl.org>
> Cc: 'PostgreSQL' <pgsql-general@postgresql.org>
> Subject: Re: [GENERAL] Fatal error "stack empty" on ROLLBACK
>
> "dandl" <david@andl.org> writes:
> > SPI call to execute "ROLLBACK" triggers FATAL ERROR "stack empty".
> > What does it mean? Nothing in the docs I can see.
>
> I can't find that string anywhere in the Postgres sources.  However, SPI
> should refuse to execute ROLLBACK, or any other transaction control
command;
> it should give you back a SPI_ERROR_TRANSACTION result code instead.
Maybe
> you're not checking for failure results and expecting the command to have
> done something?
>
>             regards, tom lane