[Openais] Corosync Patch: Fix the default for COROSYNC_RUN_DIR

Steven Dake sdake at redhat.com
Mon Apr 12 08:17:37 PDT 2010


On Mon, 2010-04-12 at 09:15 +0200, Andrew Beekhof wrote:
> On Mon, Apr 12, 2010 at 12:46 AM, Steven Dake <sdake at redhat.com> wrote:
> > On Sun, 2010-04-11 at 10:30 +0200, Andrew Beekhof wrote:
> >> On Sun, Apr 11, 2010 at 1:59 AM, Steven Dake <sdake at redhat.com> wrote:
> >> > On Sat, 2010-04-10 at 13:35 +0200, Andrew Beekhof wrote:
> >> >> On Sat, Apr 10, 2010 at 6:18 AM, Fabio M. Di Nitto <fdinitto at redhat.com> wrote:
> >> >> > On 4/9/2010 8:17 PM, Steven Dake wrote:
> >> >> >> On Fri, 2010-04-09 at 15:05 +0200, Andrew Beekhof wrote:
> >> >> >>> This looks like a copy/paste error to me...
> >> >> >>>
> >> >> >>> The "RUN" in COROSYNC_RUN_DIR would seem to imply /var/run
> >> >> >>> Also /var/lib is persistent and doesn't need to be created at startup.
> >> >> >>> On the other-hand, LSB states that the contents of /var/run is blow
> >> >> >>> away at boot time.
> >> >> >>>
> >> >> >>> So I'm reasonably sure the following patch is correct.
> >> >> >>> Please ACK.
> >> >> >>
> >> >> >> In general "rundir" should probably be renamed to "libdir" since the
> >> >> >> idea is that data stored there is persistent.
> >> >> >>
> >> >> >> Totem requires persistence between node boots of data stored with the
> >> >> >> rundir path.
> >> >> >
> >> >> > /var/lib/corosync should be created at "make install" time and it愀
> >> >> > guaranteed to be there by packaging and after each reboot.
> >> >> >
> >> >> > /var/run/corosync is more complicated. As Andrew already mentioned LSB,
> >> >> > we need to make sure that it愀 created at startup time. Most daemons can
> >> >> > do that in the init script and be done with it. Corosync doesn愒 have
> >> >> > that luxury because it can be invoked in several different ways (cman
> >> >> > for example), therefor it needs to do the dir creation/check within the
> >> >> > code as the init script is not always used.
> >> >> >
> >> >> > This is the problem we need to address basically.
> >> >>
> >> >> And what the patch does :-)
> >> >>
> >> >> There is no need, at runtime, to create /var/lib/corosync.
> >> >> Particularly if its required to be persistent.
> >> >> /var/run/corosync is a different story as Fabbio reiterated above.
> >> >>
> >> >> So given all that, the original patch makes the most sense.
> >> >
> >> > Oh missed the patch sorry.
> >> >
> >> > I did review it just now.  Hate to be a stickler to details, but the
> >> > rundir environment + variable names should be something like lib instead
> >> > (what is this called?).
> >>
> >> Oh I see what you mean.
> >> rundir is used elsewhere in totemsrp.c
> >>
> >
> > The issue is COROSYNC_RUN_DIR is used in ipc
> 
> Is it though?
> I trawled the code last night and all I could find was:
>   /var/run/some_ipc_file
> not
>   /var/run/corosync/some_ipc_file
> 
> So now I'm confused, do we actually need a /var/run/corosync directory
> to ever be created?
> 

No we shouldn't need /var/run/corosync at all.

logsys uses LOCALSTATEDIR /lib/corosync/fdata
ipc uses LOCALSTATEDIR /run for shared memory files
ipc uses SOCKETDIR (/var/run)  for socket files on systems which don't
support abstract sockets
totemsrp uses LOCALSTATEDIR /lib/corosync/
	for totem ring id and storing of core files (these files should be
persistent and created by the packaging software).

(LOCALSTATEDIR = /var in default configure state)

These defaults look sanitary to me.

Looking through the code, looks like everything uses /var/run instead
of /var/run/corosync.  What was the bug again we were trying to resolve?
The startup segfault because of missing directories?

Regards
-steve




More information about the Openais mailing list