Re: BUG #13524: Not Getting expected Serialization error - Mailing list pgsql-bugs

From Bobby Rullo
Subject Re: BUG #13524: Not Getting expected Serialization error
Date
Msg-id CANFpDAD5Bgr9=MYqdrHnMnp9s5DFPPKO4kdMAwxZqOqQRTEe4A@mail.gmail.com
Whole thread Raw
In response to Re: BUG #13524: Not Getting expected Serialization error  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
That took me a while to wrap my head around but it makes sense now. Thanks
for the succinct explanation!

Bobby

On Wed, Jul 29, 2015 at 8:40 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:

> bobby.rullo@coreos.com writes:
> > To reproduce:
> > 1) execute statements in sequence 1 on a connection, stopping at the
> > "--EXECUTE" statement.
> > 2) In another connection, execute all the statements in Sequence 2.
> > 3) Back in the first connection execute the remaining statement (the
> > "commit;")
>
> > Expected:
> > error when trying to commit, eg. "ERROR: could not serialize"
>
> > Actual:
> > Both commits succeed.
>
> > Interesting tidbit:
> > If you do the exact steps as above but uncomment the "select count(*)" in
> > sequence 2, you get the expected error.
>
> This seems perfectly fine to me.  Without the "select count(*)" in
> transaction 2, there is a valid serialization of the transactions,
> ie t1 before t2.  Serializability is *not* defined as "the transactions
> appear to have executed in the order they were started (or committed)".
> It is defined as "there is some consistent order in which they appear
> to have executed".
>
>                         regards, tom lane
>

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #13526: Out of memory when parallelised
Next
From: Alvaro Herrera
Date:
Subject: Re: BUG #13525: Database crashed with several error messages "Could not open file "pg_multixact/members/"