From 2477cf339ec0086bf9264e635f68f45a907a2990 Mon Sep 17 00:00:00 2001 From: thespad Date: Mon, 23 Dec 2024 21:08:58 +0000 Subject: [PATCH 1/4] Autoconfigure fds for readiness checks in mods --- docker-mods.v3 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docker-mods.v3 b/docker-mods.v3 index a77d2e3..97e3399 100755 --- a/docker-mods.v3 +++ b/docker-mods.v3 @@ -255,6 +255,13 @@ run_mods() { write_mod_debug "Running in debug mode" write_mod_debug "Mod script version ${MOD_SCRIPT_VER}" mkdir -p /modcache + # Fetch internal fds + FD_MAX=0 + while IFS= read -r -d '' FD; do + if [[ $(cat "${FD}") -gt "${FD_MAX}" ]]; then + FD_MAX=$(cat "${FD}") + fi + done < <(find /etc/s6-overlay/s6-rc.d -type f -name 'notification-fd' -print0) for DOCKER_MOD in $(echo "${DOCKER_MODS}" | tr '|' '\n'); do # Support alternative endpoints case "${DOCKER_MOD}" in @@ -421,6 +428,11 @@ run_mods() { if [[ -d /tmp/mod/etc/services.d ]]; then rm -rf /tmp/mod/etc/services.d fi + # Rationalise fds + while IFS= read -r -d '' FD; do + (( FD_MAX++ )) + echo $FD_MAX > "${FD}" + done < <(find /tmp/mod/etc/s6-overlay/s6-rc.d -type f -name 'notification-fd' -print0) shopt -s dotglob cp -R /tmp/mod/* / shopt -u dotglob From 2aeca57ad9433d8db0c0b6a081dc6e27f6008de4 Mon Sep 17 00:00:00 2001 From: thespad Date: Mon, 23 Dec 2024 21:09:41 +0000 Subject: [PATCH 2/4] Increment version --- docker-mods.v3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-mods.v3 b/docker-mods.v3 index 97e3399..2a09dc8 100755 --- a/docker-mods.v3 +++ b/docker-mods.v3 @@ -5,7 +5,7 @@ # Version 3 # 2022-09-25 - Initial Release -MOD_SCRIPT_VER="3.20241222" +MOD_SCRIPT_VER="3.20241223" # Define custom folder paths SCRIPTS_DIR="/custom-cont-init.d" From 5395e2d5a8fd6fbe56332b275680b76edace53ce Mon Sep 17 00:00:00 2001 From: thespad Date: Mon, 23 Dec 2024 21:11:35 +0000 Subject: [PATCH 3/4] FD_MAX needs to start at 3 to be safe --- docker-mods.v3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-mods.v3 b/docker-mods.v3 index 2a09dc8..c77c7d4 100755 --- a/docker-mods.v3 +++ b/docker-mods.v3 @@ -256,7 +256,7 @@ run_mods() { write_mod_debug "Mod script version ${MOD_SCRIPT_VER}" mkdir -p /modcache # Fetch internal fds - FD_MAX=0 + FD_MAX=3 while IFS= read -r -d '' FD; do if [[ $(cat "${FD}") -gt "${FD_MAX}" ]]; then FD_MAX=$(cat "${FD}") From 1bfdc3532253995cd05a4947a9000e957d405a5e Mon Sep 17 00:00:00 2001 From: thespad Date: Tue, 24 Dec 2024 15:54:32 +0000 Subject: [PATCH 4/4] Add opt-out --- docker-mods.v3 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docker-mods.v3 b/docker-mods.v3 index c77c7d4..721e791 100755 --- a/docker-mods.v3 +++ b/docker-mods.v3 @@ -429,10 +429,12 @@ run_mods() { rm -rf /tmp/mod/etc/services.d fi # Rationalise fds - while IFS= read -r -d '' FD; do - (( FD_MAX++ )) - echo $FD_MAX > "${FD}" - done < <(find /tmp/mod/etc/s6-overlay/s6-rc.d -type f -name 'notification-fd' -print0) + if [[ ! -f "/tmp/mod/fd-static" ]]; then + while IFS= read -r -d '' FD; do + (( FD_MAX++ )) + echo $FD_MAX > "${FD}" + done < <(find /tmp/mod/etc/s6-overlay/s6-rc.d -type f -name 'notification-fd' -print0) + fi shopt -s dotglob cp -R /tmp/mod/* / shopt -u dotglob