[PATCH] ctdb: add --rundir switch to override CTDB_RUNDIR
Amitay Isaacs
amitay at gmail.com
Wed Sep 9 09:07:38 UTC 2015
On Wed, Sep 9, 2015 at 6:54 PM, Andrew Bartlett <abartlet at samba.org> wrote:
> On Wed, 2015-09-09 at 10:34 +0200, Michael Adam wrote:
> > On 2015-09-09 at 18:08 +1000, Martin Schwenke wrote:
> > > On Tue, 8 Sep 2015 10:58:54 +0200, Michael Adam <obnox at samba.org>
> > > wrote:
> > >
> > > > Needed to be able to run ctdb without prior install (e.g. in
> > > > selftest).
> > >
> > > I can't think of a better way of doing this but it requires a bit
> > > more
> > > thought. The --rundir option you're proposing only influences the
> > > location of the lock file used in ctdb_tcp_listen_automatic().
> > >
> > > The existing tests that use multiple ctdbd's on a single node
> > > insist
> > > that the --listen option is used to provide the "private" node IP
> > > address. This avoids the "automatic" case. However, I can see
> > > that we
> > > would want to test the "automatic" code under socket wrapper, or
> > > whatever.
> >
> > Thanks for that hint ... I wasn't aware. :-)
> >
> > > Other things that currently live in CTDB_RUNDIR are the PID file
> > > and
> > > the socket. These don't follow the proposed --rundir option. This
> > > means that we get a bit of confusion. We already have --pidfile
> > > and
> > > --socket options. --socket is only used for testing, like --rundir
> > > would be, so we could drop --socket and just have the socket
> > > location
> > > follow --rundir. In ctdbd_wrapper, we could still build and export
> > > the
> > > value of CTDB_SOCKET (based on CTDB_RUNDIR) so that calls to "ctdb"
> > > succeed (I've now remembered that this is the 2nd use of
> > > CTDB_SOCKET).
> > >
> > > The PID file is more problematic. First of all, the main reason
> > > the
> > > --pidfile option exists is so that we don't create the PID file by
> > > default when testing (and we don't have access to the compile-time
> > > CTDB_RUNDIR). At the moment we load the configuration in the
> > > initscript
> > > so that we can get (things including) CTDB_PIDFILE. The initscript
> > > uses the PID file to check the status of ctdbd. We then pass the
> > > PID
> > > file location to ctdbd_wrapper, which means we only need to
> > > "construct"
> > > it once and consistency is guaranteed. However, given that we load
> > > configuration in both places (initscript, ctdbd_wrapper), we could
> > > build the PID file location from a CTDB_RUNDIR configuration
> > > variable
> > > in both places.
> > >
> > > So, we could push this patch and then make some additional changes
> > > to
> > > get more consistency...
> >
> > Since my patch just changes the only place in the code that used
> > CTDB_RUNDIR before to use the value possibly overridden by
> > --rundir now, I'd suggest to push it now and make the other
> > possible users of rundir (pid, socket) more systematic later.
>
> Remember that waf can define things (like we already do for module
> paths, and many other things) to be either build or install time.
> Would this help your use case?
>
>
We need something which is build time and run time. So waf option does not
work.
Michael and I have been chatting on IRC related to this issue and Michael
probably will propose another patch.
Amitay.
More information about the samba-technical
mailing list