[PATCH] ctdb-readonly: Do not abort if revoke of readonly record fails on a node

Martin Schwenke martin at meltin.net
Mon Aug 11 23:04:59 MDT 2014


On Tue, 12 Aug 2014 13:37:03 +1000, Amitay Isaacs <amitay at gmail.com>
wrote:

> Revoking readonly record involves first marking the record on dmaster
> as RO_REVOKING_READONLY.  Then all the other nodes are sent updaterecord
> control to get rid of RO_DELEGATIONS.  Once that succeeds, the record
> is marked RO_REVOKING_COMPLETE.
> 
> Currently, revoking of readonly delegations on the nodes is tried only
> once.  If a node goes in recovery, it can fail updaterecord control and
> revoke code will abort ctdb.  Since database recovery would revoke all
> readonly delegations anyway, there is no reason to abort.  Simply undo
> the start of revoke process by resetting RO_REVOKIGN_READONLY flag.

As discussed:

1. Put the 2 if statements that have been switched back the way they
   were. There's no value in the switch and it makes the patch less
   clear.

2. RO_REVOKIGN_READONLY -> RO_REVOKING_READONLY   in the commit message.

3. Add a patch to take out header->rsn++, since header isn't used
   afterwards by the calling code, and just put header->rsn + 1 in the
   if condition.

:-)

peace & happiness,
martin


More information about the samba-technical mailing list