The following bug has been logged on the website:

Bug reference:      6497
Logged by:          Ryan Lowe
Email address:      rl...@pablowe.net
PostgreSQL version: 9.1.3
Operating system:   Linux
Description:        

There is an edge case where Postgres will return an error to the client, but
commit the operation anyway, thus breaking the contract with the client:

postgres=# begin; insert into s.t (c) values (1);
<postgres process core dumps (note that the forked processes were not
affected)>
postgres=# commit;
<this returns an error to the application>
<postgress process restarts>
The data is now on both the master and slave, but the application
believes that the transaction was rolled back.  A well-behaved
application will dutifully retry the transaction because it *should*
have rolled back.  However, the data is there so we'll have had the
transaction execute *twice*.


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to