@@ -8,7 +8,7 @@ DLE_SERVER_NAME="dblab_server_test"
88# Environment variables for replacement rules
99export POSTGRES_VERSION=" ${POSTGRES_VERSION:- 13} "
1010export WALG_BACKUP_NAME=" ${WALG_BACKUP_NAME:- " LATEST" } "
11- export DLE_TEST_MOUNT_DIR=" /var/lib/test/dblab "
11+ export DLE_TEST_MOUNT_DIR=" /var/lib/test/dblab_mount "
1212export DLE_TEST_POOL_NAME=" test_dblab_pool"
1313export DLE_SERVER_PORT=${DLE_SERVER_PORT:- 12345}
1414export DLE_PORT_POOL_FROM=${DLE_PORT_POOL_FROM:- 9000}
@@ -58,9 +58,14 @@ yq eval -i '
5858 .retrieval.spec.physicalSnapshot.options.skipStartSnapshot = true
5959' " ${configDir} /server.yml"
6060
61- # logerrors is not supported in PostgreSQL 9.6
61+ # Edit the following options for PostgreSQL 9.6
6262if [ " ${POSTGRES_VERSION} " = " 9.6" ]; then
63- yq eval -i ' .databaseConfigs.configs.shared_preload_libraries = "pg_stat_statements, auto_explain"' " ${configDir} /server.yml"
63+ yq eval -i '
64+ .databaseConfigs.configs.shared_preload_libraries = "pg_stat_statements, auto_explain" |
65+ .databaseConfigs.configs.log_directory = "log" |
66+ .retrieval.spec.physicalRestore.options.sync.configs.log_directory = "log" |
67+ .retrieval.spec.physicalSnapshot.options.promotion.configs.log_directory = "log"
68+ ' " ${configDir} /server.yml"
6469fi
6570
6671set +euxo pipefail # ---- do not display secrets
@@ -177,6 +182,21 @@ dblab clone create \
177182 --password secret_password \
178183 --id testclone
179184
185+ # ## Check that database system was properly shut down (clone data dir)
186+ CLONE_LOG_DIR=" ${DLE_TEST_MOUNT_DIR} " /" ${DLE_TEST_POOL_NAME} " /clones/dblab_clone_" ${DLE_PORT_POOL_FROM} " /data/log
187+ LOG_FILE_CSV=$( sudo ls -t " $CLONE_LOG_DIR " | grep .csv | head -n 1)
188+ if sudo test -d " $CLONE_LOG_DIR "
189+ then
190+ if sudo grep -q ' database system was not properly shut down; automatic recovery in progress' " $CLONE_LOG_DIR " /" $LOG_FILE_CSV "
191+ then
192+ echo " ERROR: database system was not properly shut down" && exit 1
193+ else
194+ echo " INFO: database system was properly shut down - OK"
195+ fi
196+ else
197+ echo " ERROR: the log directory \" $CLONE_LOG_DIR \" does not exist" && exit 1
198+ fi
199+
180200PGPASSWORD=secret_password psql \
181201 " host=localhost port=${DLE_PORT_POOL_FROM} user=dblab_user_1 dbname=test" -c ' show max_wal_senders'
182202
@@ -208,6 +228,21 @@ dblab clone list
208228# # Stop DLE.
209229sudo docker stop ${DLE_SERVER_NAME}
210230
231+ # ## Check that database system was properly shut down (main data dir)
232+ LOG_DIR=" ${DLE_TEST_MOUNT_DIR} " /" ${DLE_TEST_POOL_NAME} " /data/log
233+ LOG_FILE_CSV=$( sudo ls -t " $LOG_DIR " | grep .csv | head -n 1)
234+ if sudo test -d " $LOG_DIR "
235+ then
236+ if [[ $( sudo tail -n 10 " $LOG_DIR " /" $LOG_FILE_CSV " | grep -c ' received fast shutdown request\|database system is shut down' ) = 2 ]]
237+ then
238+ echo " INFO: database system was properly shut down - OK"
239+ else
240+ echo " ERROR: database system was not properly shut down" && exit 1
241+ fi
242+ else
243+ echo " ERROR: the log directory \" $LOG_DIR \" does not exist" && exit 1
244+ fi
245+
211246# # Stop control containers.
212247cleanup_service_containers
213248
0 commit comments