[Postgres-xl-bugs] Postgres-XL bugs in transaction isolation (2 BUGS)

Mason Sharp msharp at translattice.com
Mon Dec 29 06:22:50 PST 2014


Sorry for the slow response. It is the holidays here in the US, many people
are on vacation. Please see below.

On Fri, Dec 26, 2014 at 10:21 AM, Kaijiang Chen <chenkaijiang at gmail.com>
wrote:

> Hi, all, we're going to use the postgres-XL in our production environment.
> But during the testing, I think I found some bugs in transaction isolation.
>
> I'm using (PGXL 9.2.0, based on PG 9.2.4 (Postgres-XL 9.2.0)) on CentOS
> 6.2. I created 1 coordinator (cd1) and 2 data nodes (dn1 & dn2).
>
> BUG 1 -- can't set isolation level as serializable. REPRO:
> start XL, enter the console, and type:
>
> postgres=# set default_transaction_isolation=SERIALIZABLE;
>

SERIALIZABLE does not work in XL. We should probably just block it.



> BUG 2 -- very weird results under 'repeatable read' isolation level:
>
> REPRO:
>
> I open 2 sessions to connect to postgres-XL and update the same tuple in 2
> sessions. At some point, I got an extra tuple! My commands and the screen
> outputs are listed below:
>
> *****In Session 1*****
>
> set default_transaction_isolation='repeatable read';
>
> *****In Session 2*****
> set default_transaction_isolation='repeatable read';
>
> *****In Session 1*****
> postgres=# create table t2 (f1 int, f2 int) to node(dn2);
> CREATE TABLE
> Time: 30.144 ms
> postgres=# insert into t2 values (11,12);
> INSERT 0 1
> Time: 5.047 ms
> postgres=# begin;
> BEGIN
> Time: 0.215 ms
> postgres=# select * from t2;
>  f1 | f2
> ----+----
>  11 | 12
> (1 row)
> Time: 2.494 ms
> postgres=# select * from t2;
>  f1 | f2
> ----+----
>  11 | 12
> (1 row)
> Time: 0.970 ms
> postgres=# select * from t2;
>  f1 | f2
> ----+----
>  11 | 12
> (1 row)
> Time: 0.957 ms
>
> *****In Session 2*****
>
> postgres=# begin;
> BEGIN
> Time: 0.302 ms
> postgres=# select * from t2;
>  f1 | f2
> ----+----
>  11 | 12
> (1 row)
> Time: 3.257 ms
> postgres=# update t2 set f2=f2+1000 where f1=11;
> UPDATE 1
> Time: 3686.544 ms
> postgres=# commit;
> COMMIT
> Time: 1.468 ms
>
> *****In Session 1*****
>
> postgres=# select * from t2;
>  f1 |  f2
> ----+------
>  11 |   12
>  11 | 1112
> (2 rows)
> Time: 1.235 ms
>
> Very weird result!!! I did NOT insert any new tuple (only update on the
> existing tuple) but I got an extra tuple (the 2nd tuple in the above result
> list)?
>

Are you using the latest code from the git repository? Or did you install
from the RPM?

Thanks,

Mason
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.postgres-xl.org/private.cgi/postgres-xl-bugs-postgres-xl.org/attachments/20141229/ca779d9c/attachment.htm>


More information about the postgres-xl-bugs mailing list