TDB mutex support breaks CTDB

Amitay Isaacs amitay at gmail.com
Wed Dec 17 01:48:33 MST 2014


Hi Metze,

On Fri, Dec 12, 2014 at 11:06 PM, Stefan (metze) Metzmacher <metze at samba.org
> wrote:

> Am 12.12.2014 um 06:34 schrieb Amitay Isaacs:
> > On Thu, Dec 11, 2014 at 7:55 PM, Stefan (metze) Metzmacher <
> metze at samba.org>
> > wrote:
> >
> >> Am 11.12.2014 um 05:50 schrieb Amitay Isaacs:
> >>> 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?
> >>
> >> As indication that it's a non persistent database.
> >>
> >>> 3. CTDB database recovery uses transactions to update the databases
> after
> >>> recovery.  With TDB_MUTEX_LOCKING enabled, CTDB cannot do database
> >> recovery.
> >>
> >> Can the all record lock be used instead of a transaction?
> >> I wonder why we didn't notice this before...
> >>
> >
> > Changing from transaction to all record lock is going to be a major
> > change.  What's the reason for not allowing transactions on mutex enabled
> > databases?
>
> I discussed this again with Volker and Michael, we all think it's ok to
> remove
> this restriction.
>
> Please test the attached patches.
>
> A possible backport will go via
> https://bugzilla.samba.org/show_bug.cgi?id=11004.
>
> metze
>

Thanks for removing the restriction.  That makes CTDB changes simple.

I am trying to test samba+ctdb with these changes using nbench torture
test, however smbd is crashing in brlock.  I am not sure if this is related
or something else is going wrong.  I have attached gdb backtrace.  If you
have any ideas on how to debug this, please let me know.

For this test, I am building samba+ctdb rpms from master with gpfs
enabled.  Currently this is a hack based on fedora's samba spec file since
our packaging/RHEL-CTDB has not yet been updated for waf build.  Once I am
sure that rpms are working properly, I will update packaging/RHEL-CTDB.

Amitay.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdb_backtrace
Type: application/octet-stream
Size: 11264 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20141217/1b01e757/attachment.obj>


More information about the samba-technical mailing list