Skip to content

Commit

Permalink
Merge pull request #315 from booxter/empty-file
Browse files Browse the repository at this point in the history
Gracefully handle empty db file on startup
  • Loading branch information
openshift-merge-bot[bot] authored Jul 2, 2024
2 parents c0c1319 + dce0fed commit 598886a
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
4 changes: 2 additions & 2 deletions templates/ovndbcluster/bin/cleanup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
# License for the specific language governing permissions and limitations
# under the License.
set -ex
source $(dirname $0)/functions

DB_NAME="OVN_Northbound"
DB_TYPE="{{ .DB_TYPE }}"
if [[ "${DB_TYPE}" == "sb" ]]; then
DB_NAME="OVN_Southbound"
fi
Expand All @@ -42,5 +42,5 @@ fi
# leaving the database file intact for -0 pod.
if [[ "$(hostname)" != "{{ .SERVICE_NAME }}-0" ]]; then
# now that we left, the database file is no longer valid
rm -f /etc/ovn/ovn${DB_TYPE}_db.db
cleanup_db_file
fi
20 changes: 20 additions & 0 deletions templates/ovndbcluster/bin/functions
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2024 Red Hat Inc.
#
# 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.

DB_TYPE="{{ .DB_TYPE }}"
DB_FILE=/etc/ovn/ovn${DB_TYPE}_db.db

function cleanup_db_file() {
rm -f $DB_FILE
}
9 changes: 8 additions & 1 deletion templates/ovndbcluster/bin/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
# License for the specific language governing permissions and limitations
# under the License.
set -ex
DB_TYPE="{{ .DB_TYPE }}"
source $(dirname $0)/functions

DB_PORT="{{ .DB_PORT }}"
{{- if .TLS }}
DB_SCHEME="pssl"
Expand Down Expand Up @@ -80,6 +81,12 @@ set "$@" --ovn-${DB_TYPE}-log=-vconsole:{{ .OVN_LOG_LEVEL }}
# with a nearly empty log file
set "$@" --ovn-${DB_TYPE}-logfile=/dev/null

# If db file is empty, remove it; otherwise service won't start.
# See https://issues.redhat.com/browse/FDP-689 for more details.
if ! [ -s $DB_FILE ]; then
cleanup_db_file
fi

# don't log to file (we already log to console)
$@ ${OPTS} run_${DB_TYPE}_ovsdb -- -vfile:off &

Expand Down

0 comments on commit 598886a

Please sign in to comment.