From 54e3f10202ec4af524e6ecbccf7aa372dccb61c2 Mon Sep 17 00:00:00 2001 From: Sameer Naik Date: Thu, 1 Oct 2015 20:51:57 +0530 Subject: [PATCH] added circuit breaker logic for frequent and repeated failures --- .../rootfs/etc/services.d/php-fpm/finish | 22 ++++++++++++++++++- .../php-fpm/rootfs/etc/services.d/php-fpm/run | 2 ++ 2 files changed, 23 insertions(+), 1 deletion(-) mode change 120000 => 100755 bitnami/php-fpm/rootfs/etc/services.d/php-fpm/finish diff --git a/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/finish b/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/finish deleted file mode 120000 index 63b10de42114..000000000000 --- a/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/finish +++ /dev/null @@ -1 +0,0 @@ -/bin/true \ No newline at end of file diff --git a/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/finish b/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/finish new file mode 100755 index 000000000000..9f54f1ccfc16 --- /dev/null +++ b/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/finish @@ -0,0 +1,21 @@ +#!/usr/bin/with-contenv bash + +failcount=0 +if [ -f $BITNAMI_APP_DIR/tmp/failcount ]; then + failcount=$(cat $BITNAMI_APP_DIR/tmp/failcount) +fi + +start=$(cat $BITNAMI_APP_DIR/tmp/start) +stop=`date '+%d%H%M%S'` +interval=`expr $stop - $start` +if test $interval -lt 30 ; then + failcount=`expr $failcount + 1` +else + failcount=0 +fi +echo -n $failcount > $BITNAMI_APP_DIR/tmp/failcount + +# bring down container on frequent failures. something is definitely wrong +if test $failcount -ge 3 ; then + s6-svscanctl -t /var/run/s6/services +fi diff --git a/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/run b/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/run index 0e180c3ba01d..5bb6c87f2f29 100755 --- a/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/run +++ b/bitnami/php-fpm/rootfs/etc/services.d/php-fpm/run @@ -2,4 +2,6 @@ set -e source $BITNAMI_PREFIX/bitnami-utils.sh +mkdir -p $BITNAMI_APP_DIR/tmp +date '+%d%H%M%S' > $BITNAMI_APP_DIR/tmp/start exec s6-setuidgid $BITNAMI_APP_USER php-fpm -F ${EXTRA_OPTIONS:+"$EXTRA_OPTIONS"}