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

Cancelling idle in transaction state

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Cancelling idle in transaction state
Date: 2008-12-17 15:31:26
Message-ID: 1229527886.4793.54.camel@ebony.2ndQuadrant (view raw or flat)
Thread:
Lists: pgsql-hackers
Currently SIGINT is ignored during <IDLE> in transaction, but we have
recently agreed to allow this to cancel the transaction. We said we
would do this in all cases, so this is a separate feature/patch (though
Hot Standby requires it).

A simple change allows the transaction to be cancelled, but there are
some loose ends that I wish to discuss.

If we are running a statement and a cancel is received, then we return
the ERROR to the client, who is expecting it. If we cancel a transaction
while the connection is idle, we have no way of signalling to the client
program this has occurred. So the client finds out about this much
later, not in fact until the next message is sent.

Is there a mechanism for communicating the state back to the client?
Will this be handled correctly with existing code? psql appears to be
confused by a cancelled backend.

I'm not familiar with these aspects of the code, so some clear
suggestions are needed to allow me to work this out. I'm worried that
this will delay things further otherwise.

-- 
 Simon Riggs           www.2ndQuadrant.com
 PostgreSQL Training, Services and Support


Responses

pgsql-hackers by date

Next:From: Gregory StarkDate: 2008-12-17 15:43:25
Subject: Re: Invalid pages in WAL
Previous:From: Simon RiggsDate: 2008-12-17 15:21:25
Subject: Latest version of Hot Standby patch

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