From b8e6a44ca749268539f6405a78da4f33295188f1 Mon Sep 17 00:00:00 2001 From: Andrew Wiegers Date: Thu, 30 Oct 2025 16:08:38 -0600 Subject: [PATCH 1/4] PLAT-12806: bash: updating 600 and 610 entry point scripts to lock if other services are initializing or upgrading database. --- deployment/entrypoint.d/600_init_db.sh | 27 ++++++++++++++++++++++- deployment/entrypoint.d/610_upgrade_db.sh | 26 +++++++++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/deployment/entrypoint.d/600_init_db.sh b/deployment/entrypoint.d/600_init_db.sh index 95a6ab1..6e05c08 100644 --- a/deployment/entrypoint.d/600_init_db.sh +++ b/deployment/entrypoint.d/600_init_db.sh @@ -2,6 +2,31 @@ #assumes database was created (300-ensure-database script) +log() { + echo "[$(date '+%a %b %d %H:%M:%S.%6N %Y')] $1" +} + +initialize_database() { # START SECTION db init - if you edit these lines manually note that your change will get lost if you run the IQGeo Project Update tool if ! myw_db $MYW_DB_NAME list versions --layout keys | grep myw_comms_schema | grep version=; then myw_db $MYW_DB_NAME install comms; fi -# END SECTION \ No newline at end of file +# END SECTION +} + +log "Checking for shared-directory..." + +if [ -n "${SHARED_DIRECTORY}" ]; then + log "Found shared-directory attempting to lock file..." + LOCKFILE="${SHARED_DIRECTORY}/600_init_db.lock" + + ( + if ! flock -n 200; then + flock 200 + fi + + initialize_database + + ) 200>"${LOCKFILE}" +else + log "shared-directory not found, upgrading database." + initialize_database +fi diff --git a/deployment/entrypoint.d/610_upgrade_db.sh b/deployment/entrypoint.d/610_upgrade_db.sh index a114810..fd84315 100644 --- a/deployment/entrypoint.d/610_upgrade_db.sh +++ b/deployment/entrypoint.d/610_upgrade_db.sh @@ -1,7 +1,31 @@ #!/bin/bash +log() { + echo "[$(date '+%a %b %d %H:%M:%S.%6N %Y')] $1" +} + +upgrade_database() { if [ "${MYW_DB_UPGRADE}" == "YES" ]; then # START SECTION db upgrade - if you edit these lines manually note that your change will get lost if you run the IQGeo Project Update tool if myw_db $MYW_DB_NAME list versions --layout keys | grep myw_comms_schema | grep version=; then myw_db $MYW_DB_NAME upgrade comms; fi # END SECTION -fi \ No newline at end of file +fi +} + +log "Checking for shared-directory..." + +if [ -n "${SHARED_DIRECTORY}" ]; then + log "Found shared-directory attempting to lock file..." + LOCKFILE="${SHARED_DIRECTORY}/610_upgrade_db.lock" + ( + if ! flock -n 200; then + flock 200 + fi + + upgrade_database + + ) 200>"${LOCKFILE}" +else + log "shared-directory not found, upgrading database." + upgrade_database +fi From 47886b9b844129b933c8973f38ee35f8e4ae5d54 Mon Sep 17 00:00:00 2001 From: Andrew Wiegers Date: Mon, 3 Nov 2025 10:39:44 -0700 Subject: [PATCH 2/4] PLAT-12806: bash: improving log comments. --- deployment/entrypoint.d/600_init_db.sh | 8 ++------ deployment/entrypoint.d/610_upgrade_db.sh | 8 +------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/deployment/entrypoint.d/600_init_db.sh b/deployment/entrypoint.d/600_init_db.sh index 6e05c08..8ffc349 100644 --- a/deployment/entrypoint.d/600_init_db.sh +++ b/deployment/entrypoint.d/600_init_db.sh @@ -2,10 +2,6 @@ #assumes database was created (300-ensure-database script) -log() { - echo "[$(date '+%a %b %d %H:%M:%S.%6N %Y')] $1" -} - initialize_database() { # START SECTION db init - if you edit these lines manually note that your change will get lost if you run the IQGeo Project Update tool if ! myw_db $MYW_DB_NAME list versions --layout keys | grep myw_comms_schema | grep version=; then myw_db $MYW_DB_NAME install comms; fi @@ -15,7 +11,7 @@ if ! myw_db $MYW_DB_NAME list versions --layout keys | grep myw_comms_schema | g log "Checking for shared-directory..." if [ -n "${SHARED_DIRECTORY}" ]; then - log "Found shared-directory attempting to lock file..." + log "Found shared-directory attempting to lock 600_init_db..." LOCKFILE="${SHARED_DIRECTORY}/600_init_db.lock" ( @@ -27,6 +23,6 @@ if [ -n "${SHARED_DIRECTORY}" ]; then ) 200>"${LOCKFILE}" else - log "shared-directory not found, upgrading database." + log "shared-directory not found, initializing database." initialize_database fi diff --git a/deployment/entrypoint.d/610_upgrade_db.sh b/deployment/entrypoint.d/610_upgrade_db.sh index fd84315..07d7fd7 100644 --- a/deployment/entrypoint.d/610_upgrade_db.sh +++ b/deployment/entrypoint.d/610_upgrade_db.sh @@ -1,9 +1,5 @@ #!/bin/bash -log() { - echo "[$(date '+%a %b %d %H:%M:%S.%6N %Y')] $1" -} - upgrade_database() { if [ "${MYW_DB_UPGRADE}" == "YES" ]; then # START SECTION db upgrade - if you edit these lines manually note that your change will get lost if you run the IQGeo Project Update tool @@ -12,10 +8,8 @@ if myw_db $MYW_DB_NAME list versions --layout keys | grep myw_comms_schema | gre fi } -log "Checking for shared-directory..." - if [ -n "${SHARED_DIRECTORY}" ]; then - log "Found shared-directory attempting to lock file..." + log "Found shared-directory attempting to lock 610_upgrade_db..." LOCKFILE="${SHARED_DIRECTORY}/610_upgrade_db.lock" ( if ! flock -n 200; then From 26a6c8fb4774f84cf5aa5a520dcbac59e384b5af Mon Sep 17 00:00:00 2001 From: awiegers <52088072+awiegers@users.noreply.github.com> Date: Mon, 3 Nov 2025 10:56:15 -0700 Subject: [PATCH 3/4] Update deployment/entrypoint.d/600_init_db.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- deployment/entrypoint.d/600_init_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/entrypoint.d/600_init_db.sh b/deployment/entrypoint.d/600_init_db.sh index 8ffc349..1b87305 100644 --- a/deployment/entrypoint.d/600_init_db.sh +++ b/deployment/entrypoint.d/600_init_db.sh @@ -11,7 +11,7 @@ if ! myw_db $MYW_DB_NAME list versions --layout keys | grep myw_comms_schema | g log "Checking for shared-directory..." if [ -n "${SHARED_DIRECTORY}" ]; then - log "Found shared-directory attempting to lock 600_init_db..." + log "Found shared-directory, attempting to lock 600_init_db..." LOCKFILE="${SHARED_DIRECTORY}/600_init_db.lock" ( From ff5102b519ac580df0ae8c6c937a0f52248b220d Mon Sep 17 00:00:00 2001 From: awiegers <52088072+awiegers@users.noreply.github.com> Date: Mon, 3 Nov 2025 10:56:23 -0700 Subject: [PATCH 4/4] Update deployment/entrypoint.d/610_upgrade_db.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- deployment/entrypoint.d/610_upgrade_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/entrypoint.d/610_upgrade_db.sh b/deployment/entrypoint.d/610_upgrade_db.sh index 07d7fd7..6d198e6 100644 --- a/deployment/entrypoint.d/610_upgrade_db.sh +++ b/deployment/entrypoint.d/610_upgrade_db.sh @@ -9,7 +9,7 @@ fi } if [ -n "${SHARED_DIRECTORY}" ]; then - log "Found shared-directory attempting to lock 610_upgrade_db..." + log "Found shared-directory, attempting to lock 610_upgrade_db..." LOCKFILE="${SHARED_DIRECTORY}/610_upgrade_db.lock" ( if ! flock -n 200; then