[PATCH] Avoid using CTDB_BROADCAST_ALL (bug 13056)
amitay at gmail.com
Fri Sep 29 02:45:10 UTC 2017
On Thu, Sep 28, 2017 at 9:17 PM, Volker Lendecke <Volker.Lendecke at sernet.de>
> On Thu, Sep 28, 2017 at 03:19:28PM +1000, Amitay Isaacs via
> samba-technical wrote:
> > Hi,
> > CTDB in some places uses CTDB_BROADCAST_ALL to
> > distribute packets to all the configured nodes. If there is a
> > dead node (or a node that is not running) in the cluster,
> > then ctdb daemons will queue up packets for such nodes.
> > Over long periods of time, ctdb daemon can consume lots
> > of memory which will not be freed till the dead node is
> > started or ctdb daemon is restarted.
> > Use CTDB_BROADCAST_CONNECTED instead to send
> > packets to the nodes that are running.
> Pushed, thanks!
Turns out that the fix is not as trivial as I thought earlier.
Sorry for the trouble.
Just replacing all BROADCAST_ALL with BROADCAST_CONNECTED
introduces all sorts of race conditions during ctdb startup. Some of the
messages (e.g. election) have to be sent using BROADCAST_ALL.
I need to fix the logic for handling BROADCAST_ALL to not queue the
packets for dead nodes.
More information about the samba-technical