From acd934793052ae22ece5fcb0e910d446bfaeaa17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Z=C3=BClke?= <dzuelke@gmail.com>
Date: Mon, 23 Jan 2017 07:29:02 +0100
Subject: [PATCH] Handle and produce leading 0 in WEB_CONCURRENCY (#355)

The Node buildpack now exports a leading zero in its numbers. This lets us detect that it (or another buildpack) set the value, and overwrite it accordingly.

Fixes the issue where adding the node buildpack to a Python app would cause only one gunicorn worker to be spawned for a 1X dyno, and not two.

We also need to again produce leading zeroes in the value, so that e.g. the PHP buildpack can do the same on boot.
---
 vendor/python.gunicorn.sh | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/vendor/python.gunicorn.sh b/vendor/python.gunicorn.sh
index e8226579..9a1c395f 100755
--- a/vendor/python.gunicorn.sh
+++ b/vendor/python.gunicorn.sh
@@ -1,32 +1,38 @@
+if [[ "${WEB_CONCURRENCY:-}" == 0* ]]; then
+  # another buildpack set a default value, with leading zero
+  unset WEB_CONCURRENCY
+fi
+
 case $(ulimit -u) in
 
 # Automatic configuration for Gunicorn's Workers setting.
+# Leading zero padding so a subsequent buildpack can figure out that we set a value, and not the user
 
 # Standard-1X (+Free, +Hobby) Dyno
 256)
   export DYNO_RAM=512
-  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-2}
+  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-02}
   ;;
 
 # Standard-2X Dyno
 512)
   export DYNO_RAM=1024
-  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-4}
+  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-04}
   ;;
 
 # Performance-M Dyno
 16384)
   export DYNO_RAM=2560
-  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-8}
+  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-08}
   ;;
 
 # Performance-L Dyno
 32768)
   export DYNO_RAM=6656
-  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-11}
+  export WEB_CONCURRENCY=${WEB_CONCURRENCY:-011}
   ;;
 
 esac
 
 # Automatic configuration for Gunicorn's ForwardedAllowIPS setting.
-export FORWARDED_ALLOW_IPS='*'
\ No newline at end of file
+export FORWARDED_ALLOW_IPS='*'
-- 
GitLab