s3:dbwrap_ctdb: fix a race in starting concurrent transactions on a single node
commit9bd6b9d9f6591d3f5138c2a831340a88a5e4de5a
authorMichael Adam <obnox@samba.org>
Wed, 28 Oct 2009 00:54:04 +0000 (28 01:54 +0100)
committerMichael Adam <obnox@samba.org>
Tue, 3 Nov 2009 00:02:36 +0000 (3 01:02 +0100)
treea0e5ac40353607cfa1e01f9f978721f2d27c1d9f
parent8d61b8abbc64fc2114c133e93b8c63188ef60bb8
s3:dbwrap_ctdb: fix a race in starting concurrent transactions on a single node

There are two races in concurrent transactions on a single node.
One in starting a transaction and one with replay during commit.

This commit closes the first race by storing the client pid in the
transaction-lock record and comparing the stored pid against its own
pid after releasing the lock and refetching the record inside the
transaction.

Michael
source3/lib/dbwrap_ctdb.c