From 55de9c1909a0e932d3d44d57e8e77c4bc30859ad Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Sun, 1 Dec 2019 16:56:11 +0100 Subject: [PATCH] fix: [mongo,odoo-tecnativa,mattermost,peertube,synapse,rocketchat,redis] avoid using ``find``'s ``-exec`` option as it fails With large compose, shell environment is too big to be handled correctly by ``find``. Signed-off-by: Valentin Lab --- mattermost/hooks/init | 4 ++-- mongo/hooks/init | 5 +++-- odoo-tecnativa/hooks/init | 4 +++- peertube/hooks/init | 6 +++--- redis/hooks/init | 6 +++--- rocketchat/hooks/init | 6 +++--- synapse/lib/common | 8 ++++++-- 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/mattermost/hooks/init b/mattermost/hooks/init index c29d44c0..216ceaa0 100755 --- a/mattermost/hooks/init +++ b/mattermost/hooks/init @@ -19,9 +19,9 @@ dirs=("$SERVICE_CONFIGSTORE/mattermost/"{config,plugins} "$SERVICE_DATASTORE/mat for dir in "${dirs[@]}"; do mkdir -p "$dir" find "$dir" \! -uid 2000 -print0 | while read-0 f; do - chown -v 2000 "$f" + chown -v 2000 "$f" || exit 1 done find "$dir" \! -gid 2000 -print0 | while read-0 f; do - chgrp -v 2000 "$f" + chgrp -v 2000 "$f" || exit 1 done done diff --git a/mongo/hooks/init b/mongo/hooks/init index 8cc5bb27..d2e6a605 100755 --- a/mongo/hooks/init +++ b/mongo/hooks/init @@ -39,8 +39,9 @@ for dir in "${dirs[@]}"; do done mkdir -p "${host_dirs[@]}" -find "${host_dirs[@]}" \! -user "$uid" \ - -exec chown -v "$uid" {} + || true +find "${host_dirs[@]}" \! -user "$uid" -print0 | while read-0 f; do + chown -v "$uid" "$f" || exit 1 +done config_hash=$(cat "$CONFIG" | md5_compat) || exit 1 diff --git a/odoo-tecnativa/hooks/init b/odoo-tecnativa/hooks/init index 8f4c985c..e208b4b0 100755 --- a/odoo-tecnativa/hooks/init +++ b/odoo-tecnativa/hooks/init @@ -21,7 +21,9 @@ odoo_uid=$(get_odoo_uid) mkdir -p "$LIB" ## XXXvlab: this one can fail if files are removed (from sessions dir) -find "$LIB" \! -user "$odoo_uid" -exec chown -v "$odoo_uid" {} + || true +find "$LIB" \! -user "$odoo_uid" -print0 | while read-0 f; do + chown -v "$odoo_uid" "$f" || exit 1 +done ## workers management workers=$(options-get workers 2>&1) || true diff --git a/peertube/hooks/init b/peertube/hooks/init index b883f62b..f87180e7 100755 --- a/peertube/hooks/init +++ b/peertube/hooks/init @@ -80,8 +80,8 @@ for dir in "${dirs[@]}"; do done mkdir -p "${host_dirs[@]}" -find "${host_dirs[@]}" \! -user "$peertube_uid" \ - -exec chown -v "$peertube_uid" {} + || true - +find "${host_dirs[@]}" \! -user "$peertube_uid" -print0 | while read-0 f; do + chown -v "$peertube_uid" "$f" || exit 1 +done true \ No newline at end of file diff --git a/redis/hooks/init b/redis/hooks/init index c2db0ff5..1fff55d9 100755 --- a/redis/hooks/init +++ b/redis/hooks/init @@ -47,9 +47,9 @@ for dir in "${dirs[@]}"; do done mkdir -p "${host_dirs[@]}" -find "${host_dirs[@]}" \! -user "$uid" \ - -exec chown -v "$uid" {} + || true - +find "${host_dirs[@]}" \! -user "$uid" -print0 | while read-0 f; do + chown -v "$uid" "$f" || exit 1 +done config_hash=$(cat "$CONFIG" | md5_compat) || exit 1 init-config-add " diff --git a/rocketchat/hooks/init b/rocketchat/hooks/init index 4713f0db..583c4063 100755 --- a/rocketchat/hooks/init +++ b/rocketchat/hooks/init @@ -21,6 +21,6 @@ for dir in "${dirs[@]}"; do done mkdir -p "${host_dirs[@]}" -find "${host_dirs[@]}" \! -user "$uid" \ - -exec chown -v "$uid" {} + || true - +find "${host_dirs[@]}" \! -user "$uid" -print0 | while read-0 f; do + chown -v "$uid" "$f" || exit 1 +done \ No newline at end of file diff --git a/synapse/lib/common b/synapse/lib/common index 2ee6d02e..ae3fb1a5 100644 --- a/synapse/lib/common +++ b/synapse/lib/common @@ -36,8 +36,12 @@ setup_dirs() { gid="${uid_gid[1]}" for dir in "${dirs[@]}"; do mkdir -p "$dir" - find "$dir" \! -uid "$uid" -exec chown -v "$uid" {} \; - find "$dir" \! -gid "$gid" -exec chgrp -v "$gid" {} \; + find "$dir" \! -uid "$uid" -print0 | while read-0 f; do + chown -v "$uid" "$f" || return 1 + done + find "$dir" \! -gid "$gid" -print0 | while read-0 f; do + chgrp -v "$gid" "$f" || return 1 + done done dirs=(