TDB mutex support breaks CTDB

Amitay Isaacs amitay at gmail.com
Wed Dec 10 21:50:13 MST 2014


Hi Volker/Metze,

The TDB robust mutex changes make certain assumptions which completely
breaks CTDB.  Here are some of the findings which are causing concern.

1. CTDB does not always specify all the matching flags (i.e. the flags used
for creation) to tdb_open_ex() when opening tdb database subsequently (or
in not-first case).  This does not work for databases created with
TDB_MUTEX_LOCKING.

2. If I specify TDB_MUTEX_LOCKING in tdb_flags for subsequent (non-first)
tdb_open_ex(), it does not work unless I also include TDB_CLEAR_IF_FIRST.
If the process knows that it's not the first opener, why should it need to
specify TDB_CLEAR_IF_FIRST?

3. CTDB database recovery uses transactions to update the databases after
recovery.  With TDB_MUTEX_LOCKING enabled, CTDB cannot do database recovery.

First two issues can be resolved by modifying CTDB to pass correct flags to
tdb_open_ex().  However, the 3rd point makes robust mutexes not usable in
CTDB.

How do we go ahead?

Amitay.


More information about the samba-technical mailing list