>>
> >> That sounds to be a solution for this problem or otherwise for such a
> case
> >> can't we completely abort the active transaction and set a flag like
> >> PrevCommandFailed/PrevTransFailed and on receiving next message if
> >> such a flag is set, then throw an appropriate error.
> >
> > This is only partial solution - when some application is broken, then
> there
> > will be orphaned sessions. It is less wrong, than orphaned connections,
> but
> > it can enforce some issues too. The solution of this problem should to
> work
> > well with session pool sw like pgbouncer and similar.
>

I wrote a nonsense - should be "It is less wrong, than orphaned transaction"


>
> Sure.  Unfortunately it's not always practical to do so when you have
> 100's of applications running against 100's of databases, all written
> by teams of variable quality, some of whom have been ejected for
> overseas devlopment or vice versa.  This is the world I live in.
>

I would to say so the breaking transaction is not enough - it needs some
protocol enhancing. There is a advantage of terminate_session, because if
keep_alive packets are used, then client can to know so session is broken
in few seconds.

>
> The point stands that neither pg_cancel_backend or statement_timeout
> (especially) provide *any* kind of safety guarantees because they only
> work if execution is in the database.  All the locks they hold and
> other long running issues pertaining to long running transactions
> (say, advancing xmin) are silent killers with no automatic way of
> detecting or destroying.  I understand the challenges here -- not
> griping in any way -- the workaround is to cron up an executioner.
> Just pointing out we have an issue.
>

It is 100% true. But the users can do strange things. If we solve idle
transactions and not idle session, then they are able to increase
max_connections to thousands with happy smile in face.

I have not strong idea about how to solve it well - maybe introduce
transaction_idle_timeout and session_idle_timeout?

Regards

Pavel


>
> merlin
>

Reply via email to