On Tue, Nov 07, 2017 at 09:01:27PM +0530, [email protected] wrote: > From: Numan Siddique <[email protected]> > > ovn-ctl starts OVN DB servers with the options "--unixctl=ovnnb_db" > and "--unixctl=ovnsb_db". When "ovs-appctl -t ovnnb_db" is run the > below error is seen > > 2017-11-07T10:18:17Z|00001|unixctl|WARN|failed to connect to > /var/run/openvswitch/ovnnb_db.29536.ctl. > > This patch allows the targets "ovnnb_db" and ovndb_db" by not > appending the pid to the socket path. > > This issue has broken the openvswitch logrotate script because of > the invalid socket path and results in the OVN DB log files not > generated properly. > > Other approach to fix is to not pass "--unixctl" option, in which case > the ctl socket will be created as "ovsdb-server-<pid>.ctl". This would > break the functions 'stop_nb_ovsdb', 'stop_sb_ovsdb', 'demote_ovnnb' > and others. And we will not be able to use "ovnnb_db" and "ovnsd_db" > as target options to 'ovs-appctl'. > > Signed-off-by: Numan Siddique <[email protected]> > --- > utilities/ovs-appctl.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/utilities/ovs-appctl.c b/utilities/ovs-appctl.c > index 8f87cc4f6..b5a1a218b 100644 > --- a/utilities/ovs-appctl.c > +++ b/utilities/ovs-appctl.c > @@ -210,8 +210,18 @@ connect_to_target(const char *target) > ovs_fatal(-pid, "cannot read pidfile \"%s\"", pidfile_name); > } > free(pidfile_name); > - socket_name = xasprintf("%s/%s.%ld.ctl", > - ovs_rundir(), target, (long int) pid); > + > + /* If the target is ovnnb_db or ovnsb_db, then do not append the pid > + * to the socket_name. When OVN DB servers are started using ovn-ctl > + * they are started with the option > + * "--unixctl=ovnnb_db.ctl/ovnsb_db.ctl". */ > + if (!strcmp(target, "ovnnb_db") || !strcmp(target, "ovnsb_db")) { > + socket_name = xasprintf("%s/%s.ctl", ovs_rundir(), target); > + } else { > + socket_name = xasprintf("%s/%s.%ld.ctl", > + ovs_rundir(), target, (long int) pid); > + }
This is extraordinarily specific to a particular use case. It would be better, I think, to have the ovs-appctl invocation pass the absolute path to the target, in which case the filename will be used as-is, without appending anything. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
