From patchwork Thu Sep 3 13:04:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Numan Siddique X-Patchwork-Id: 1356601 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ovn.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Bj1Gv2xsWz9sSP for ; Thu, 3 Sep 2020 23:04:23 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 5B60986BE8; Thu, 3 Sep 2020 13:04:21 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1-NrByKXfwyG; Thu, 3 Sep 2020 13:04:20 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by whitealder.osuosl.org (Postfix) with ESMTP id 8F50C86BC9; Thu, 3 Sep 2020 13:04:20 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 744EBC07FF; Thu, 3 Sep 2020 13:04:20 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4948FC0051 for ; Thu, 3 Sep 2020 13:04:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 392CE8739D for ; Thu, 3 Sep 2020 13:04:18 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MGUEHVww7EVW for ; Thu, 3 Sep 2020 13:04:14 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net [217.70.183.200]) by hemlock.osuosl.org (Postfix) with ESMTPS id B44998739A for ; Thu, 3 Sep 2020 13:04:13 +0000 (UTC) X-Originating-IP: 115.99.214.83 Received: from nusiddiq.home.org.com (unknown [115.99.214.83]) (Authenticated sender: numans@ovn.org) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 595832001D; Thu, 3 Sep 2020 13:04:10 +0000 (UTC) From: numans@ovn.org To: dev@openvswitch.org Date: Thu, 3 Sep 2020 18:34:00 +0530 Message-Id: <20200903130400.1971690-1-numans@ovn.org> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Subject: [ovs-dev] [PATCH ovn] ovn-ctl: Handle cluster db upgrades for run_(nb/sb)_ovsdb X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Numan Siddique when ovn-ctl run_(nb_sb)_ovsdb is called, the ovsdb-server is started without passing --detach and --monoitor and the process is exec'd. For cluster mode, upgrade_cluster is never called and hence the dbs are not upraded to new schema. CMS has to handle the db upgrade separately. This patch handles the db upgrade by starting ovsdb-server in background and then waits on ovsdb-server to complete. Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1868392 Signed-off-by: Numan Siddique --- utilities/ovn-ctl | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl index 8afe68a0ad..dee58d9a36 100755 --- a/utilities/ovn-ctl +++ b/utilities/ovn-ctl @@ -288,7 +288,19 @@ $cluster_remote_port set "$@" --sync-from=`cat $active_conf_file` fi - "$@" "$file" + local run_ovsdb_in_bg="no" + local process_id= + if test X$detach = Xno && test $mode = cluster && test -z "$cluster_remote_addr" ; then + # When detach is no (for run_nb_ovsdb/run_sb_ovsdb commands) + # we want to run ovsdb-server in background rather than running it in foreground + # so that the OVN dbs are upgraded for the cluster mode. + # Otherwise, CMS has to take the responsibility of upgrading the dbs. + run_ovsdb_in_bg="yes" + "$@" $file & + process_id=$! + else + "$@" $file + fi # Initialize the database if it's NOT joining a cluster. if test -z "$cluster_remote_addr"; then @@ -298,6 +310,10 @@ $cluster_remote_port if test $mode = cluster; then upgrade_cluster "$schema" "unix:$sock" fi + + if test $run_ovsdb_in_bg = yes; then + wait $process_id + fi } start_nb_ovsdb() {