[ovs-dev] [coverity3 09/13] ovs-kill: Remove.

Ethan Jackson ethan at nicira.com
Wed Feb 23 22:52:20 UTC 2011


Looks Good assuming it make distchecks.

On Wed, Feb 23, 2011 at 1:24 PM, Ben Pfaff <blp at nicira.com> wrote:
> This utility isn't used anywhere (except INSTALL.Linux), so remove it.
>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> Coverity #10708.
> ---
>  INSTALL.Linux                      |    2 +-
>  debian/openvswitch-switch.install  |    1 -
>  debian/openvswitch-switch.manpages |    1 -
>  utilities/.gitignore               |    2 -
>  utilities/automake.mk              |    7 --
>  utilities/ovs-kill.8.in            |   60 ----------
>  utilities/ovs-kill.c               |  208 ------------------------------------
>  xenserver/openvswitch-xen.spec     |    2 -
>  8 files changed, 1 insertions(+), 282 deletions(-)
>  delete mode 100644 utilities/ovs-kill.8.in
>  delete mode 100644 utilities/ovs-kill.c
>
> diff --git a/INSTALL.Linux b/INSTALL.Linux
> index 103805a..c46ab55 100644
> --- a/INSTALL.Linux
> +++ b/INSTALL.Linux
> @@ -292,7 +292,7 @@ also upgrade the database schema:
>
>  1. Stop the Open vSwitch daemons, e.g.:
>
> -      % ovs-kill ovsdb-server.pid ovs-vswitchd.pid
> +      % kill `cd /usr/local/var/run && cat ovsdb-server.pid ovs-vswitchd.pid`
>
>  2. Install the new Open vSwitch release.
>
> diff --git a/debian/openvswitch-switch.install b/debian/openvswitch-switch.install
> index c38cdd4..829d5c6 100644
> --- a/debian/openvswitch-switch.install
> +++ b/debian/openvswitch-switch.install
> @@ -1,7 +1,6 @@
>  _debian/ovsdb/ovsdb-server usr/bin
>  _debian/utilities/ovs-discover usr/sbin
>  _debian/utilities/ovs-dpctl usr/sbin
> -_debian/utilities/ovs-kill usr/sbin
>  _debian/utilities/ovs-vsctl usr/sbin
>  _debian/utilities/ovs-pcap usr/bin
>  _debian/utilities/ovs-tcpundump usr/bin
> diff --git a/debian/openvswitch-switch.manpages b/debian/openvswitch-switch.manpages
> index 267b152..399cdda 100644
> --- a/debian/openvswitch-switch.manpages
> +++ b/debian/openvswitch-switch.manpages
> @@ -1,7 +1,6 @@
>  _debian/ovsdb/ovsdb-server.1
>  _debian/utilities/ovs-discover.8
>  _debian/utilities/ovs-dpctl.8
> -_debian/utilities/ovs-kill.8
>  _debian/utilities/ovs-pcap.1
>  _debian/utilities/ovs-tcpundump.1
>  _debian/utilities/ovs-vlan-test.8
> diff --git a/utilities/.gitignore b/utilities/.gitignore
> index 739dcef..56b3e73 100644
> --- a/utilities/.gitignore
> +++ b/utilities/.gitignore
> @@ -11,8 +11,6 @@
>  /ovs-discover.8
>  /ovs-dpctl
>  /ovs-dpctl.8
> -/ovs-kill
> -/ovs-kill.8
>  /ovs-ofctl
>  /ovs-ofctl.8
>  /ovs-openflowd
> diff --git a/utilities/automake.mk b/utilities/automake.mk
> index 36b2b91..984b47a 100644
> --- a/utilities/automake.mk
> +++ b/utilities/automake.mk
> @@ -3,7 +3,6 @@ bin_PROGRAMS += \
>        utilities/ovs-controller \
>        utilities/ovs-discover \
>        utilities/ovs-dpctl \
> -       utilities/ovs-kill \
>        utilities/ovs-ofctl \
>        utilities/ovs-openflowd \
>        utilities/ovs-vsctl
> @@ -21,7 +20,6 @@ EXTRA_DIST += \
>        utilities/ovs-controller.8.in \
>        utilities/ovs-discover.8.in \
>        utilities/ovs-dpctl.8.in \
> -       utilities/ovs-kill.8.in \
>        utilities/ovs-ofctl.8.in \
>        utilities/ovs-openflowd.8.in \
>        utilities/ovs-parse-leaks.8 \
> @@ -42,7 +40,6 @@ DISTCLEANFILES += \
>        utilities/ovs-controller.8 \
>        utilities/ovs-discover.8 \
>        utilities/ovs-dpctl.8 \
> -       utilities/ovs-kill.8 \
>        utilities/ovs-ofctl.8 \
>        utilities/ovs-openflowd.8 \
>        utilities/ovs-parse-leaks \
> @@ -62,7 +59,6 @@ man_MANS += \
>        utilities/ovs-controller.8 \
>        utilities/ovs-discover.8 \
>        utilities/ovs-dpctl.8 \
> -       utilities/ovs-kill.8 \
>        utilities/ovs-ofctl.8 \
>        utilities/ovs-openflowd.8 \
>        utilities/ovs-parse-leaks.8 \
> @@ -84,9 +80,6 @@ utilities_ovs_discover_LDADD = lib/libopenvswitch.a
>  utilities_ovs_dpctl_SOURCES = utilities/ovs-dpctl.c
>  utilities_ovs_dpctl_LDADD = lib/libopenvswitch.a
>
> -utilities_ovs_kill_SOURCES = utilities/ovs-kill.c
> -utilities_ovs_kill_LDADD = lib/libopenvswitch.a
> -
>  utilities_ovs_ofctl_SOURCES = utilities/ovs-ofctl.c
>  utilities_ovs_ofctl_LDADD = lib/libopenvswitch.a $(SSL_LIBS)
>
> diff --git a/utilities/ovs-kill.8.in b/utilities/ovs-kill.8.in
> deleted file mode 100644
> index e8fef36..0000000
> --- a/utilities/ovs-kill.8.in
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -.TH ovs\-kill 8 "May 2008" "Open vSwitch" "Open vSwitch Manual"
> -.ds PN ovs\-kill
> -
> -.SH NAME
> -ovs\-kill \- kills processes given their pidfiles
> -
> -.SH SYNOPSIS
> -.B ovs\-kill
> -[\fIoptions\fR] \fIpidfile\fR [\fIpidfile\fR...]
> -
> -.SH DESCRIPTION
> -The \fBovs\-kill\fR program reads each \fIpidfile\fR specified on the
> -command line and sends a signal to the program associated with it, if
> -any.  It reads one line of text from \fIpidfile\fR, which must contain
> -the PID of the process to kill as a text string.  It then uses
> -\fBfcntl\fR(2) to verify that a process with the PID from the file
> -owns a lock on \fIpidfile\fR before it sends the signal.
> -
> -A \fIpidfile\fR whose name begins with \fB/\fR is used literally.
> -Otherwise, \fB at RUNDIR@/\fR is prefixed.
> -
> -This program exists for use by \fBovs\-switch\-setup\fR, which cannot
> -easily implement its functionality since Perl has no portable
> -interface to \fBfcntl\fR-based file locking.
> -
> -.SH OPTIONS
> -.TP
> -\fB\-s \fInumber\fR|\fIname\fR, \fB\-\^\-signal=\fInumber\fR|\fIname\fR
> -Sets the signal to be sent to each process.  Signals may be given by
> -number (e.g. \fB1\fR) or by name (e.g. \fBHUP\fR or \fBSIGHUP\fR).
> -By default, \fBSIGTERM\fR is sent.
> -
> -.TP
> -\fB\-f\fR, \fB\-\^\-force\fR
> -Causes \fBovs\-kill\fR to ignore all errors without printing a message
> -to \fBstderr\fR, and to exit with return code 0.
> -
> -.so lib/common.man
> -
> -.SH "EXIT CODE"
> -
> -Without \fB\-f\fR or \fB\-\^\-force\fR, \fBovs\-kill\fR exits with
> -status 0 if at least one \fIpidfile\fR was given and the process
> -represented by every \fIpidfile\fR was signaled successfully,
> -otherwise with status 1.
> -
> -With \fB\-f\fR or \fB\-\^\-force\fR, \fBovs\-kill\fR always exits with
> -status 0.
> -
> -.SH BUGS
> -
> -There is a race between verifying the lock on \fIpidfile\fR and
> -actually killing the process.
> -
> -\fBovs\-kill\fR does not wait for the signaled processes to die before
> -exiting.
> -
> -.SH "SEE ALSO"
> -
> -.BR ovs\-switch\-setup (8)
> diff --git a/utilities/ovs-kill.c b/utilities/ovs-kill.c
> deleted file mode 100644
> index f230962..0000000
> --- a/utilities/ovs-kill.c
> +++ /dev/null
> @@ -1,208 +0,0 @@
> -/*
> - * Copyright (c) 2008, 2009, 2010 Nicira Networks.
> - *
> - * Licensed under the Apache License, Version 2.0 (the "License");
> - * you may not use this file except in compliance with the License.
> - * You may obtain a copy of the License at:
> - *
> - *     http://www.apache.org/licenses/LICENSE-2.0
> - *
> - * Unless required by applicable law or agreed to in writing, software
> - * distributed under the License is distributed on an "AS IS" BASIS,
> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> - * See the License for the specific language governing permissions and
> - * limitations under the License.
> - */
> -
> -#include <config.h>
> -#include <errno.h>
> -#include <fcntl.h>
> -#include <getopt.h>
> -#include <signal.h>
> -#include <stdarg.h>
> -#include <stdlib.h>
> -#include <string.h>
> -#include "command-line.h"
> -#include "daemon.h"
> -#include "timeval.h"
> -#include "util.h"
> -#include "vlog.h"
> -
> -/* -s, --signal: signal to send. */
> -static int sig_nr = SIGTERM;
> -
> -/* -f, --force: ignore errors. */
> -static bool force;
> -
> -static void cond_error(int err_no, const char *, ...) PRINTF_FORMAT(2, 3);
> -
> -static void parse_options(int argc, char *argv[]);
> -static void usage(void);
> -
> -int
> -main(int argc, char *argv[])
> -{
> -    bool ok = true;
> -    int i;
> -
> -    set_program_name(argv[0]);
> -    parse_options(argc, argv);
> -
> -    argc -= optind;
> -    argv += optind;
> -    if (argc < 1) {
> -        if (!force) {
> -            ovs_fatal(0, "need at least one non-option argument; "
> -                      "use --help for usage");
> -        }
> -    }
> -
> -    for (i = 0; i < argc; i++) {
> -        char *pidfile;
> -        pid_t pid;
> -
> -        pidfile = make_pidfile_name(argv[i]);
> -        pid = read_pidfile(pidfile);
> -        if (pid >= 0) {
> -            if (kill(pid, sig_nr) < 0) {
> -                cond_error(errno, "%s: kill(%ld)", pidfile, (long int) pid);
> -            }
> -        } else {
> -            cond_error(-pid, "could not read %s", pidfile);
> -        }
> -        free(pidfile);
> -    }
> -
> -    return ok || force ? EXIT_SUCCESS : EXIT_FAILURE;
> -}
> -
> -static void
> -parse_options(int argc, char *argv[])
> -{
> -    static struct option long_options[] = {
> -        {"signal",      required_argument, 0, 's'},
> -        {"force",       no_argument, 0, 'f'},
> -        {"help",        no_argument, 0, 'h'},
> -        {"version",     no_argument, 0, 'V'},
> -        {0, 0, 0, 0},
> -    };
> -    char *short_options = long_options_to_short_options(long_options);
> -
> -    for (;;) {
> -        int c;
> -
> -        c = getopt_long(argc, argv, short_options, long_options, NULL);
> -        if (c == -1) {
> -            break;
> -        }
> -
> -        switch (c) {
> -        case 's':
> -            if (atoi(optarg) || !strcmp(optarg, "0")) {
> -                sig_nr = atoi(optarg);
> -            } else {
> -                struct signal_name {
> -                    const char *name;
> -                    int number;
> -                };
> -
> -                static const struct signal_name signals[] = {
> -#define SIGNAL(NAME) { #NAME, NAME }
> -                    SIGNAL(SIGABRT),
> -                    SIGNAL(SIGALRM),
> -                    SIGNAL(SIGBUS),
> -                    SIGNAL(SIGCHLD),
> -                    SIGNAL(SIGCONT),
> -                    SIGNAL(SIGFPE),
> -                    SIGNAL(SIGHUP),
> -                    SIGNAL(SIGILL),
> -                    SIGNAL(SIGINT),
> -                    SIGNAL(SIGKILL),
> -                    SIGNAL(SIGPIPE),
> -                    SIGNAL(SIGQUIT),
> -                    SIGNAL(SIGSEGV),
> -                    SIGNAL(SIGSTOP),
> -                    SIGNAL(SIGTERM),
> -                    SIGNAL(SIGTSTP),
> -                    SIGNAL(SIGTTIN),
> -                    SIGNAL(SIGTTOU),
> -                    SIGNAL(SIGUSR1),
> -                    SIGNAL(SIGUSR2),
> -#ifdef SIGPOLL
> -                    SIGNAL(SIGPOLL),
> -#endif
> -                    SIGNAL(SIGPROF),
> -                    SIGNAL(SIGSYS),
> -                    SIGNAL(SIGTRAP),
> -                    SIGNAL(SIGURG),
> -                    SIGNAL(SIGVTALRM),
> -                    SIGNAL(SIGXCPU),
> -                    SIGNAL(SIGXFSZ),
> -#undef SIGNAL
> -                };
> -                int i;
> -
> -                for (i = 0; i < ARRAY_SIZE(signals); i++) {
> -                    const struct signal_name *s = &signals[i];
> -                    if (!strcmp(optarg, s->name)
> -                        || !strcmp(optarg, s->name + 3)) {
> -                        sig_nr = s->number;
> -                        goto got_name;
> -                    }
> -                }
> -                ovs_fatal(0, "unknown signal \"%s\"", optarg);
> -            got_name: ;
> -            }
> -            break;
> -
> -        case 'f':
> -            force = true;
> -            break;
> -
> -        case 'h':
> -            usage();
> -
> -        case 'V':
> -            OVS_PRINT_VERSION(0, 0);
> -            exit(EXIT_SUCCESS);
> -
> -        case '?':
> -            exit(EXIT_FAILURE);
> -
> -        default:
> -            abort();
> -        }
> -    }
> -    free(short_options);
> -}
> -
> -static void
> -usage(void)
> -{
> -    printf("%s: kills a program using a pidfile\n"
> -           "usage: %s [OPTIONS] PIDFILE [PIDFILE...]\n"
> -           "where PIDFILE is a pidfile created by an Open vSwitch daemon.\n"
> -           "\nOptions:\n"
> -           "  -s, --signal=NUMBER|NAME  signal to send (default: TERM)\n"
> -           "  -f, --force             ignore errors\n"
> -           "  -h, --help              display this help message\n"
> -           "  -V, --version           display version information\n",
> -           program_name, program_name);
> -    exit(EXIT_SUCCESS);
> -}
> -
> -static void
> -cond_error(int err_no, const char *format, ...)
> -{
> -    if (!force) {
> -        va_list args;
> -
> -        fprintf(stderr, "%s: ", program_name);
> -        va_start(args, format);
> -        vfprintf(stderr, format, args);
> -        va_end(args);
> -        if (err_no != 0)
> -            fprintf(stderr, " (%s)", strerror(err_no));
> -        putc('\n', stderr);
> -    }
> -}
> diff --git a/xenserver/openvswitch-xen.spec b/xenserver/openvswitch-xen.spec
> index 05229de..ab2134e 100644
> --- a/xenserver/openvswitch-xen.spec
> +++ b/xenserver/openvswitch-xen.spec
> @@ -117,12 +117,10 @@ install xenserver/uuid.py $RPM_BUILD_ROOT/usr/share/openvswitch/python
>  rm \
>     $RPM_BUILD_ROOT/usr/bin/ovs-controller \
>     $RPM_BUILD_ROOT/usr/bin/ovs-discover \
> -    $RPM_BUILD_ROOT/usr/bin/ovs-kill \
>     $RPM_BUILD_ROOT/usr/bin/ovs-openflowd \
>     $RPM_BUILD_ROOT/usr/bin/ovs-pki \
>     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-controller.8 \
>     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-discover.8 \
> -    $RPM_BUILD_ROOT/usr/share/man/man8/ovs-kill.8 \
>     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-openflowd.8 \
>     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-pki.8
>
> --
> 1.7.2.3
>
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
>




More information about the dev mailing list