From 49942f48333a524f9ab46bb5fb557a765e358b2e Mon Sep 17 00:00:00 2001 From: liuheng Date: Sat, 28 Dec 2024 16:13:19 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=8D=87=E7=BA=A7=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20=EF=BC=88cherry=20picked=20commit=20from?= =?UTF-8?q?=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 39a1433b6c3e8d028d121d5389d20c6bf2202c7a) --- opengauss-server.spec | 21 +++++++++++++++------ upgrade.sh | 7 ++----- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/opengauss-server.spec b/opengauss-server.spec index 207c530..9829836 100755 --- a/opengauss-server.spec +++ b/opengauss-server.spec @@ -13,7 +13,7 @@ Name: opengauss Version: 6.0.0 -Release: 22 +Release: 23 Summary: openGauss is an open source relational database management system License: MulanPSL-2.0 and MIT and BSD and zlib and TCL and Apache-2.0 and BSL-1.0 URL: https://gitee.com/opengauss/openGauss-server @@ -374,13 +374,16 @@ elif [ $1 -eq 2 ]; then echo "upgrade" > /var/lib/opengauss/recode_install_flag echo "start upgrade..." upgrade_create_dir - local cmd="source ~/.bash_profile; cd /var/lib/opengauss/pkg_%{version}; sh upgrade.sh" - local result + cmd="source ~/.bash_profile; cd /var/lib/opengauss/pkg_%{version}; sh upgrade.sh" result=$(su - opengauss -c "$cmd") if [ $? -ne 0 ]; then echo "Upgrade failed." echo "$result, Please cat the log information: cat /var/lib/opengauss/opengauss_upgrade/opengauss_upgrade.log" + echo "failed" > /var/lib/opengauss/upgrade_result exit 1 + else + echo "Upgrade success." + echo "success" > /var/lib/opengauss/upgrade_result fi remove_service add_service @@ -416,6 +419,9 @@ clear_database(){ if [ -f /var/lib/opengauss/recode_install_flag ]; then rm -rf /var/lib/opengauss/recode_install_flag fi + if [ -f /var/lib/opengauss/upgrade_result ]; then + rm -rf /var/lib/opengauss/upgrade_result + fi if [ -d /var/lib/opengauss/pkg_%{version} ]; then rm -rf /var/lib/opengauss/pkg_%{version} fi @@ -441,11 +447,11 @@ else rm -rf /usr/local/opengauss fi mkdir -p /usr/local/opengauss - upgrade_result=$(cat /var/lib/opengauss/opengauss_upgrade/tmp/upgrade_result.txt) - if [ $upgrade_result == "success" ]; then + upgrade_file=/var/lib/opengauss/upgrade_result + if [[ -f ${upgrade_file} && $(cat $upgrade_file) = "success" ]]; then echo "opengauss upgrade successfully" cp -rf /var/lib/opengauss/opengauss_upgrade/pkg_%{version}/* /usr/local/opengauss - else: + else echo "opengauss upgrade failed, rollback in progress" cp -rf /var/lib/opengauss/opengauss_upgrade/bak/* /usr/local/opengauss fi @@ -466,6 +472,9 @@ fi %changelog +* Sat Dec 28 2024 liuheng - 6.0.0-23 +- Fix bugs: upgrade failed + * Sat Dec 14 2024 liuheng - 6.0.0-22 - Fix bugs: when upgrading, the new version cannot be lower than the old version diff --git a/upgrade.sh b/upgrade.sh index 1738a3a..5d0fd2d 100644 --- a/upgrade.sh +++ b/upgrade.sh @@ -21,7 +21,6 @@ GAUSS_TMP_PATH="/var/lib/opengauss/opengauss_upgrade/tmp" GAUSS_LOG_FILE="/var/lib/opengauss/opengauss_upgrade/opengauss_upgrade.log" new_opengauss_dir=/var/lib/opengauss/pkg_${version} GAUSS_LISTEN_PORT=7654 -GAUSS_UPGRADE_RESULT_FILE=${GAUSS_TMP_PATH}/upgrade_result.txt function create_dir() { rm -rf ${GAUSS_BACKUP_BASE_PATH} @@ -39,8 +38,6 @@ function cp_new_all_pkg_to_tmp_dir() { cp -rf ${new_opengauss_dir}/* ${GAUSS_UPGRADE_BASE_PATH} } -cp_new_all_pkg_to_tmp_dir - function debug() { local current_time=$(date +"%Y-%m-%d %H:%M:%S") echo "[$current_time]" "$1" >>"${GAUSS_LOG_FILE}" @@ -635,13 +632,13 @@ function cp_new() { } function main() { + cp_bak + cp_new_all_pkg_to_tmp_dir upgrade_pre upgrade_bin upgrade_post upgrade_commit stop_dbnode - echo "success" > $GAUSS_UPGRADE_RESULT_FILE - # cp_bak # cp_new # remove_path ${GAUSS_UPGRADE_BASE_PATH}/bin # remove_lib ${GAUSS_UPGRADE_BASE_PATH}/lib -- Gitee